記事「多銘柄多期間指標におけるカラーバッファ」についてのディスカッション

 

新しい記事「多銘柄多期間指標におけるカラーバッファ」はパブリッシュされました:

この記事では、多銘柄多期間指標における指標バッファの構造体を確認し、これらの指標のカラーバッファのチャート上での表示を整理します。

単色指標バッファは、通常の二重配列で、指標を計算するときにデータで満たされます。この配列からデータを取得し、CopyBuffer()関数を使用してチャート上に表示することができます。ただし、受信側の配列が指標のプロットバッファとして設定されたdouble配列である必要があります(SetIndexBuffer())。指標の計算部のバッファからプロット部のバッファにデータをコピーする場合、データはプロット部のバッファ配列に設定された1色でチャート上に表示されます。マルチカラーのバッファに関しては、状況は少し異なります。データ配列に加えて、カラーバッファはカラーインデックスの配列も持ちます。

以上のことから、次のことがわかります。

  1. 指標プロットバッファは、描画スタイルに応じて、プロット用に1つまたは複数の配列を使用することができます。
  2. どのカラー配列でも、もう1つの追加配列が使用されます。これは、プロットバッファのカラーインデックスの配列であり、そのインデックスは、プロットバッファに割り当てられた最後の配列のインデックスより1大きいものです。

よりよく理解するために、複数の配列を使用して単純なプロットや色付きのプロットなど、複数のプロットバッファを使用する新しい指標を作成してみましょう。

作者: Artyom Trishkin

 

Artemさん、こんにちは!独自のインジケーターを追加する方法は?私にはできません!何か間違っているのでしょうか?例題があれば...一歩一歩コードを通して、それは明らかであろう!でも、すぐにインジケーター作成 エラー...OnInitのリターンコードが-1...。一般的なヘルプをお願いします!

  MqlParam mql_params[];
   ArrayResize(mql_params, 2);

   mql_params[0].type          = TYPE_STRING;
   mql_params[0].string_value  = "My_Indicators\\INDI_MSMT\\Test";
//---
   mql_params[1].type          = TYPE_INT;
   mql_params[1].integer_value = 10;

   handle_ind2 = indicators.AddNewCustom(NULL, PERIOD_CURRENT, "My_Indicators\\INDI_MSMT\\Test.ex5", "DON_MFI_SIS", 1, mql_params);

//handle_ind1 = IndicatorCreate(NULL, PERIOD_CURRENT, IND_CUSTOM, 1, mql_params);

 
Igor Bakhrushen インジケーター作成 エラー...OnInitのリターンコードが-1...。一般的なヘルプをお願いします!


画像からでは、何を間違えているのか理解するのは難しいです。使用しているカスタムインジケーターと一緒に動作しないコードを添付してください。
 
Artyom Trishkin #:
画像からは、何が間違っているのか理解できません。使用しているカスタムインジケーターと一緒に動作しないコードを添付してください。

あなたのライブラリは何も変更していません。このテストは1つのバッファでテストするために行ったもので、20個のバッファがある場合にどのように動作するのかがよく理解できません!とにかくステップ・バイ・ステップ!....ありがとう!

ファイル:
INDI_MSMT_1.mqh  638 kb
Test.mq5  8 kb
DON_MFI_SIS.mq5  10 kb
 
Igor Bakhrushen #:

あなたのライブラリは何も変更していない。このテストは、ただ1つのバッファでテストするために行ったもので、20個のバッファがあるときに、これがどのように機能するのか、私にはよく理解できない!とにかく、ステップ・バイ・ステップだ!....ありがとう!

あなたのコードを見ました。動作するカスタム・インジケータはどこにありますか?色のついていないバッファが1つあるだけのダミーです。https://www.mql5.com/ja/articles/13578。 この記事には、1色のカスタム・インジケータを操作するためのすべてが書かれています。

Готовим мультисимвольные мультипериодные индикаторы
Готовим мультисимвольные мультипериодные индикаторы
  • www.mql5.com
В статье рассмотрим принципы создания мультисимвольных мультипериодных индикаторов и получение от них данных в советниках и индикаторах. Рассмотрим основные нюансы использования мульти-индикаторов в советниках и индикаторах, и их отрисовку через буферы пользовательского индикатора.
 
Artyom Trishkin #:

あなたのコードを見ました。機能しているカスタム・インジケータはどこにありますか?色のついていないバッファが1つあるだけのダミーです。https://www.mql5.com/ja/articles/13578。 この記事には、1色のカスタム・インジケータを操作するためのすべてが書かれています。

Artemさん、こんにちは!ノンカラーバッファで動作するようにしましたが、ちょっと暫定的です...。なぜかロードに時間がかかるんだ...。たぶん日曜日かな?履歴は必要ですか?ターミナルを再起動すると、一度に描画されますか?フレーム内の写真では3つのバッファが同じ値になっています。フレーム内でも1本分ずれています。色のついたものは問題です!見ていただけますか?ありがとう!


 
すみません、バッファを間違えてしまいました!うっかりタイプを変えてしまって...正しいタイプに持ってきていなかったんです!それで0を追加しました!CIndMSTF::Calculate::Test_Indi_MSMT:CopyBuffer(0) failed.エラー4806 data cannot be found!しかも違うバッファでも起こる!

 
Igor Bakhrushen CopyBuffer(0) failed.エラー4806 data cannot be found!しかも違うバッファでも起こる!

データが受信されない場合、インジケータは単にゼロ値を返して OnCalculate()を終了します。この場合、必要だが受信していないデータへの最初のアクセスが、このデータのページング処理を開始します。

 
Artyom Trishkin #:

データが受信されない場合、インジケータは単にゼロ値を返して OnCalculate()を終了しますが、これはまだ計算されていないことを示すのと同じです。この場合、必要だが受信していないデータへの最初のアクセスが、このデータのページング処理を開始します。

なぜ端末を再起動するとこの問題が発生しないのでしょうか?すべてが一度に描画されます!別のTFに切り替えたときに発生する...そして、この「INDI_MSMT_!.mqh'の配列が範囲外です(680,51)」は、常に十分なサイズがあるときとないときが あります。謎である!


 
Igor Bakhrushen #:
INDI_MSMT_。

私はそのファイルを持っていない。どうすればいいのかわからない...。

 
Artyom Trishkin #:

そのファイルを持っていないんだ。どうすればいいのかわからない...。

ファイル

昨日、私は一番最初の「INDI_MSMT_!.mqh」を 添付した