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

 
Alexey Viktorov:

Artyomさん、型がDRAW_COLOR_HISTOGRAM2で、2つのデータバッファと3つ目のカラーバッファを持っていることにお気づきでなかったようですね。

はい、その通りです。注意を払わなかった。

 
Artyom Trishkin:

はい、その通りです。

一般的には、そうですね。最初のバッファは計算に使用され、DRAW_COLOR_HISTOGRAM2は2つの座標/バッファを使用して描画され、色用にもう1つのバッファが必要です。


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

なぜこの行はコメントアウトされているのか

他の色も含まれているはずですが。少なくとも1つは、しかし宣言はそうであるべきだ。

のどちらかを使用しています。

#プロパティ indicator_color2 GreenC,RedC

または

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);

すなわち、MQL4のように互換性がある、つまり色設定のためのプリプロセッサディレクティブがないことをPlotIndexSetInteger()に 置き換えているのだと思い込んでいたのですが、一つでした。MQL5では、このようなことはないのでしょうか?

 
The_Sheikh:

一般的には、そうですね。最初のバッファは計算に使用され、DRAW_COLOR_HISTOGRAM2は2つの座標/バッファを使用して描画され、色用にもう1つのバッファが必要です。


のどちらかを使用しています。

#プロパティ indicator_color2 GreenC,RedC

または

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);

すなわち、MQL4のように互換性がある、つまり色設定のためのプリプロセッサディレクティブがないことをPlotIndexSetInteger()に 置き換えているのだと思い込んでいたのですが、一つでした。MQL5では、このようなことはないのでしょうか?

なるほど......ドキュメントの断片を与えているんですね。しっかり勉強したらどうでしょう。なぜなら、この例では、PlotIndexSetIntegerに関係なく、ディレクティブが存在するからです。

 
Alexey Viktorov:

まあ、ドキュメントから抜粋しているんでしょうけど。しっかり勉強したらどうでしょう。このディレクティブは、PlotIndexSetIntegerに関係なく、サンプルに存在するものです。

はい、ドキュメントを勉強したところ、例ではディレクティブが存在するのですが、すみません、その中にディレクティブが存在しなければならないという段落がなかったので、習慣的にMQL4と同様にディレクティブを除外しています。

また、ドキュメントによると、 プロットには 最大64色まで使用できるそうです。しかし、そのようなパレットの数を、指示の後に各色を単調に並べることなく割り当てる方法は見つかりませんでした。

とはいえ、問題は解決している。

 
The_Sheikh:

はい、ドキュメントを勉強しました、例ではディレクティブは存在しますが、すみません、ディレクティブが存在しなければならないという段落に気づかず、習慣でMQL4と同様にディレクティブを除外してしまいました。

また、ドキュメントによると、 プロットには 最大64色まで使用できるそうです。しかし、ディレクティブの後に各色を単調に列挙することなく、そのようなパレットの数を設定する方法を私は見つけられませんでした。

とはいえ、質問はもういい。

そして、この

#define  GreenC 0x00FF00
#define  RedC 0x0000FF

はループの中で変更できないのでしょうか?全く詳しくないため、わからない。

結局のところ、色配列はループの中で別の配列から埋めることもできるのです。この例では、配列color colors = {}; があり、ここに色が列挙されています。そして、その「サービス」配列に PlotIndexSetInteger(1,PLOT_LINE_COLOR, index_in_array, color) を入力するのです。

 

私は様々な場所から引用をダウンロードし、しばしば1-2バーのギャップを参照してください、データはちょうどそこにありません。

どうすれば、情報の損失を最小限に抑えて埋めることができるのか。アルゴリズムはあるのでしょうか?

メタトレーダーがやってくれるはず

 
Roman Sharanov:

私は様々な場所から引用をダウンロードし、しばしば1-2バーのギャップを参照してください、データはちょうどそこにありません。

どうすれば、情報の損失を最小限に抑えて埋めることができるのか。アルゴリズムはあるのでしょうか?

メタトレーダーはきっとそうなんでしょうね。

MetaTraderは穴を埋めません。バーがあれば描画され、バーがなければスキップされます。

 
Vladimir Karputov:

これがテスト受験者です。すべて正常に動作しています。

と結果が出ました。

詳しい回答ありがとうございました。このエラーは、Expert Advisorを 履歴上でテストした ときにのみ観測され、実際のデータに接続した場合は すべてがOKであることが判明しました。

履歴データでエキスパートをデバッグ中に実行すると、正しく計算されない。

2019.10.08 02:10:14.425 2019.01.01 00:00 ボリューム1.0、利益→-50.00

2019.10.08 02:10:16.226 2019.01.01 00:00 ボリューム0.5、利益→-50.00


 
aveshoff:

詳しい返信ありがとうございました。このエラーは、Expert Advisorを 履歴上でテストした 場合にのみ観測され、実際のデータに接続した場合は すべて問題ないことが判明しました。

履歴データでエキスパートをデバッグ中に実行すると、正しく計算されない。

2019.10.08 02:10:14.425 2019.01.01 00:00 ボリューム1.0、利益→-50.00

2019.10.08 02:10:16.226 2019.01.01 00:00 ボリューム0.5、利益→-50.00


フルコード、シンボル、タイムフレーム、ポジション数、どのシンボルでオープンしているかなど、状況を再現できるような情報を提供してください。

 

こんにちは。

IDでどのエキスパートかを調べる方法を教えてください。

ID 11032019、どこにあるのかわからない?

理由: