MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 113

 
Alexey Kozitsyn:

現在の価格を知るには、いくつかの方法があります。

1.任意のシンボルについて:保証された現在の価格を取得したい場合は、使用する前に正しい識別子でSymbolInfoDouble()を呼び出してください。

2.現在のシンボルについて、定義済みの変数BidとAskを通じて現在の価格を取得することもできます。これらは古くなる可能性があるので、OnTick()が実行されている場合は、RefreshRates()でリフレッシュする必要があります。

ありがとうございました。
 
Compiler warning:

"possible loss of data due to type conversion"

この警告を克服するにはどうしたらよいですか?
string singleElement+=CharToString(StringGetCharacter(stringOfSymbols,i));
 
Maksym Mudrakov:
Compiler warning:

"possible loss of data due to type conversion" この警告はどのようにすれば克服できますか?


string singleElement+=CharToString(StringGetCharacter(stringOfSymbols,i));

関数が返す値の型を正確に把握し、明示的な変換を行う必要があります。https://www.mql5.com/ru/docs/basis/types/casting

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:
ウィザードで、計算されたデータを書き込むインジケータ・バッファを設定していないのでしょう。

しかし、ほとんどの指標の基本原理は次のとおりです。

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<1) return(0);              // проверка достаточности данных для расчёта индикатора, если не достаточно - выходим
                                             // если для расчёта требуются некое количество баров слева от индекса цикла, ...
                                             // ... то проверять нужно это количество, а не 1
  
   //--- Действия для полного перерасчёта индикатора
   int limit=rates_total-prev_calculated;    // количество посчитанных уже баров
   if(limit>1) {                             // если количество больше 1, значит имеем новые данные, и нужно полностью пересчитать индикатор
      limit=rates_total-1;                   // задаём количество требуемых для расчёта баров равным количеству баров в истории,
                                             // если для расчёта требуются некое количество баров слева от индекса цикла, ...
                                             // ... то это количество тоже нужно вычесть из rates_total чтобы не выйти за пределы массива
                                             // так же тут нужно при необходимости произвести инициализацию буферов индикатора
      }
  
   //--- Основной цикл индикатора
   for(int i=limit; i>=0; i--) {
      // тут выполняем нужные расчёты и записываем их результат в нужные буферы, например:
      ExtMapBuffer[i]=(open[i]+high[i]+low[i]+close[i])/4.0;   // Выведем на график среднюю цену каждой свечи (OHLC/4.0)
      }
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Artemさん、コンパイラーにエラーがあります。'ExtMapBuffer' - 未宣言の識別子

 
Andrey Koldorkin:
Artemさん、コンパイラがエラーになりました。'ExtMapBuffer' - 未宣言の識別子

もちろん、そうなります。いきなり書きました。そして、例を書く前に、テンプレートに外部変数が指定されていないこと(必要ない)、インジケータ計算を 表示するためのバッファが指定されていないことをお伝えしました。もちろん、バッファ出力を使用しないインジケータもありますが、あなたの場合は違います。

だから、このバッファを入れたんです。テンプレートを再作成する必要がありますが、この単純な動作にもっと責任を持ち、「でも、ウィザードは私に何を求め、何を必要としているのだろう?
 
こんにちは!4ヶ月ほど前から、Kovalevさんのチュートリアルを参考にMQL4の勉強を始めました。動画もありますよ。ビデオを見て、チュートリアルを勉強して、そこで使われているコードをコピーしているんだ。これは非常に深刻な問題で、マスターするには時間がかかることは理解しています。しかし、私は練習が必要なことをよく理解しています。簡単なタスクを書き、誰かがそれをチェックすることで、私はさらに前進することができます!もう一つの問題は、本とビデオが更新されたことです。本からコードを繰り返し、コンパイルしてもエラーが起こり、新しいゲートで羊を見ているようです・・・それは悲しいことです
 
FOTOGRAF14:
こんにちは!4ヶ月ほど前から、Kovalevさんのチュートリアルを参考にMQL4の勉強を始めました。動画もありますよ。ビデオを見て、チュートリアルを勉強して、そこで使われているコードをコピーしています。 もちろん、理論はたくさん学びましたが、自分でコードを書くことはできません。これは非常に深刻な問題で、マスターするには時間がかかることは理解しています。しかし、私は練習が必要なことをよく理解しています。簡単なタスクを書き、誰かがそれをチェックすることで、私はさらに前進することができます!もう一つの問題は、本とビデオが更新されたことです。本からコードを繰り返し、コンパイルしてもエラーが起こり、私は新しい門で羊を見ているようです・・・それが悲しいのです

一度、ドキュメントを読んでみてください。教科書が古くなっているところがある。ドキュメントがその手助けをしてくれるでしょう。課題については......教科書に書かれているのと同じ課題を解いてください。問題を読み、解決策を見る、それを繰り返す。といった具合に、コツがつかめるまで。できるだけ自分で実装できるようになりたい課題に近いものを取り上げるとよいでしょう。

もちろん、すべてIMHOです。

 
Sergey Gritsay:
私の場合、問題なくコンパイルできます。

では、なぜそのようなものが差別化されないのか、その理由を教えてください。

オブジェクトタイプを変更すると、プロパティは2つのラベルまたはトレンドラインで折りたたまれます

 
Alexey Kozitsyn:

一度、ドキュメントを読んでみてください。教科書が古くなっているところがある。ドキュメントがその手助けをしてくれるでしょう。課題については......教科書に書かれているのと同じ課題を解いてください。問題を読み、解決策を見る、それを繰り返す。といった具合に、コツがつかめるまで。できるだけ自分で実装できるようになりたい課題に近いものを取り上げるとよいでしょう。

もちろん、すべてIMHOです。

ありがとうございました。

 
trader781:

では、なぜそのようなものが差別化されないのか、その理由を教えてください。

オブジェクトタイプを変更すると、プロパティは2つのラベルまたはトレンドラインで折りたたまれます

R どのオブジェクトが差別化されていないのでしょうか?また、オブジェクトタイプを置き換えると、プロパティが崩れるとはどういうことでしょうか?