初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1034

 
The_Sheikh:

こんにちは、MQL5の「プロット」とは何か、どなたかわかりやすく説明してください。 バッファとは関係ありませんが、indicator_plots プロパティでバッファに似た描画オブジェクトのプロパティリストを 作成します。MQL4ツールを使用した場合、特定の描画オブジェクトを参照していることが明らかでしたが、今回新たにプリプロセッサのプロパティとしてindicator_plotsが 用意され、何が不明なのかを定義することができるようになりました。

MQL4では、表示するバッファの数を指定するために

#property indicator_buffers 1

OnInit()関数の 中で、計算のためにいくつかのバッファを追加することができます。

IndicatorBuffers(3);

そして、MQL5では、同じことが2つのディレクティブで書かれています。

#property indicator_buffers 3
#property indicator_plots   1

合計で3つのバッファがあることを意味し、チャートには1つのバッファが表示されます。残りの2つは計算に使用されます。また、MQL5では、追加された1つをカラー表示に使用することができます。

 
fxsaber:

このインジケータをMT4とMT5で動かしてみると、より分かりやすいかもしれませんね。MT5に変換する際、プロットを使用する必要がありました。

なぜなら、バッファは2つだけ描画すればよいからです。

すでに真実に近づいている。しかし、その場合、2番目と6番目のバッファを描画する必要があるとしたらどうでしょうか。方法はないのでしょうか?

アレクセイ・ヴィクトロフ

OnInit()関数で 計算のためのバッファをいくつか追加することができます。

ところで、MQL5でこの関数に代わるものはあるのでしょうか?

 
The_Sheikh:

こちらの方が真実に近い。しかしその場合、2番目と6番目が描かれることになったらどうでしょう?何もない?

どうだろう。

 
The_Sheikh:

こちらの方が真実に近い。しかしその場合、2番目と6番目が描かれることになったらどうでしょう?まさか?

1) 「2番目と6番目」 - 番号の配分を決めるのはあなたです ;)

2) INDICATOR_CALCULATIONS と DRAW_NONE 対 INDICATOR_DATA と非 DRAW_NONE (その他) はどのシーケンス番号でも機能します。

 
The_Sheikh:

こちらの方が真実に近い。しかしその場合、2番目と6番目が描かれることになったらどうでしょう?まさか?

バッファの種類、どれを表示するか、どれに色を入れるか、どれに補助的な値だけを入れるかを設定するだけです。


INDICATOR_DATA

図面データ

インジケーターカラーインデックス

レンダリングカラー

インジケータ計算

中間計算の ための追加バッファ

 
The_Sheikh:

ところで、MQL5でこの関数に代わるものはあるのでしょうか?

mql5ではそのような関数は必要ありません。書き方の例をあげました。mql4との違いは、配列とスペルだけです。

 
皆様、ご回答ありがとうございました。
 

チャートのバーの最大本数を10000本に設定したとします。そして、スクリプトとインジケータでは、Bars()関数が、設定で指定された数+新しいローソク足の出現数を返します。

では、チャートに表示されるローソク足の数は10000本に限定されないのですね。

端末の 設定で指定した数値をMQLで正確に知るにはどうしたらよいですか?

バーの数が最大のint型に達した場合、ローソク足の数や配列要素の位置はどうなるのでしょうか?

 
The_Sheikh:

ターミナル 設定で設定されているバーの本数をMQLで正確に知るにはどうしたらよいですか?

TerminalInfoInteger(TERMINAL_MAXBARS))
The_Sheikh です。

もしバーの数がint型の最大値に達した場合、ローソク足の数はどうなるのか

バーの数が増える、つまりTERMINAL_MAXBARS 値を超える。

そして、未知のアルゴリズムによって、ターミナルは「余分なバーを落とす」 - チャートの実際のバー数が const int rates_total になるとき、それは iBars()https://www.mql5.com/ru/docs/series/ibars になります。

すなわち、上記のように、TERMINAL_MAXBARSはターミナルウィンドウからのデータ、iBars()はチャート上のバーの実測値です


The_Sheikh です。

と、array-timeseries の要素の位置?

インジケータ・バッファについて話している場合、端末はそれらのためにメモリを割り当て、インジケータ・バッファに関連付けられた配列のサイズは、常にrates_total要素に等しくなっています。

インジケータをテストすることができます。

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[])
  {
//---
   static datetime t=0;
   if(t!=time[rates_total-1])
     {
      Print("rates_total = ",rates_total, ", TERMINAL_MAXBARS = ",TerminalInfoInteger(TERMINAL_MAXBARS));
      t=time[rates_total-1];
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

インジケーターログを表示します。

2019.04.30 19:10:12.247 rates (EURUSD,M1) rates_total = 50000, TERMINAL_MAXBARS = 50000

2019.04.30 19:10:29.699 rates (EURUSD,M1) rates_total = 50001, TERMINAL_MAXBARS = 50000

2019.04.30 19:11:29.392 rates (EURUSD,M1) rates_total = 50002, TERMINAL_MAXBARS = 50000

2019.04.30 19:12:30.125 rates (EURUSD,M1) rates_total = 50003, TERMINAL_MAXBARS = 50000


Документация по MQL5: Доступ к таймсериям и индикаторам / iBars
Документация по MQL5: Доступ к таймсериям и индикаторам / iBars
  • www.mql5.com
Количество баров в истории по соответствующему символу и периоду, но не более чем задано в настройках платформы параметром "Макс. баров в окне" ("Max bars in chart")
 

EasyAndFastGUIでMQL5でのインターフェース開発に触れたい

2015年の「グラフィカル・インターフェイス」記事を10部(何部?

質問があるのですが、どれも一貫しているのでしょうか、古いものを読んでも意味がないのでしょうか?

理由: