記事「多銘柄多期間指標のDRAW_ARROW描画タイプ」についてのディスカッション

 

新しい記事「多銘柄多期間指標のDRAW_ARROW描画タイプ」はパブリッシュされました:

この記事では、多銘柄多期間矢印指標の描画について見ていきます。また、現在のチャートの銘柄/期間と一致しない銘柄/期間で計算された矢印指標のデータを示す矢印を正しく表示するためのクラスメソッドを改善します。

多銘柄多期間指標の話題を続けます。本連載の前回の記事では、多銘柄多期間指標を取り上げました。今回の記事では、多指標クラスを矢印指標で動作するように修正します。

矢印指標は、その描画バッファでデータが常時利用可能ではないことを意味します。この値は、矢印が表示されているバッファに存在しますが、バッファに空の値が設定されていることもあります。通常はEMPTY_VALUEですが、空とみなされチャートに表示されない任意の値をバッファに設定することも可能です。これには次の関数を使用します。

PlotIndexSetDouble(buffer_index,PLOT_EMPTY_VALUE,empty_value);

ここで、buffer_indexは空に設定されたバッファインデックスであり、empty_valueはそのバッファに設定される「空の値」です。

バッファがギャップのあるデータで満たされる複数期間の指標では、矢印のない空の値の存在を考慮する必要があり、空でない値がすでに入力されているチャートバーにこれらの空の値を入力しないようにします。そうでなければ、先に配置された矢印は新しい空の値によって消去されます。これは、下位時間枠で計算された指標のデータが上位時間枠にコピーされた場合に当てはまります。

例を挙げてみます。М15バーがM5チャートに重ねられています。

ここではM5チャートのフラクタルを見ていますが、これはM15チャートのバーに取り付ける必要があります。

作者: Artyom Trishkin

 

あるトレーダーが、ほとんど聖杯の ような「高速フラクタル」を開発していると私に書いてきたことがある。

私は彼に「M5からM15までのフラクタルを使ってはどうか」と書いた。それがこの話だ。

 
Vitaliy Kuznetsov #:

あるトレーダーが「高速フラクタル」を開発していると書いてきた。

なぜM5からM15までのフラクタルを使っていないのですか?それがこの話だ。

フラクタルは原理的に速くも遅くもできないんだ。)

上から2つの小節ができるまでは、フラクタルは存在しない。


 
Vitaly Muzichenko #:

フラクタルは原理的に速くも遅くもならない。)

上から2本の棒ができるまでは、フラクタルは存在しない。


Artem、あなたのパネルをExpert Advisorに挿入しました。

 
Konstantin Seredkin #:

Artemさん、Expert Advisorにあなたのパネルを挿入しました。

答えは、ビジュアルテスト中にパネルで何を見る必要があるかによって異なります。

 
Artyom Trishkin #:

その答えは、目視検査の際にパネル上で何を確認する必要があるかによる。

例えば、以前の記事TestTrendADXのExpert Advisorをビジュアルで実行すると、データは初期化後にのみ表示され、その後は何も表示されません。



このようにすると、現在のバーのデータとインジケータのデータが表示されるようになります。

//+------------------------------------------------------------------+
//| エキスパート・ティック機能|
//+------------------------------------------------------------------+
void OnTick()
  {
//---
//--- パネルに現在のバーデータを表示する。
   DrawData(0,TimeCurrent());
  }



しかし、正しいかどうかはわかりません。

 
Konstantin Seredkin #:

さて、例えば、以前の記事TestTrendADXのExpert Advisorですが、ビジュアルで実行すると、データが表示されるのは初期化後だけで、その後は何も表示されません。



このようにすると、現在のバーのデータとインジケーターのデータ6が表示されます。



私のやり方が正しいのかどうかはわかりません。

問題は、Expert AdvisorsのテスターのビジュアルモードではOnChartEvent()が機能しないことです。あなたが話しているテストインジケータでは、パネルはマウスカーソルの下にデータを表示します。つまり、プログラムはカーソルの位置を追跡し、カーソルの下にあるバーからパネルにデータを送信します。テスターのビジュアル・モードでは、パネル上のデータを取得したいバーをクリックする必要があります。あるいは、OnTick()でデータを取得しますが、あなたが行ったように、現在のバーからのみデータを取得します。

 
Artyom Trishkin #:

問題は、Expert AdvisorsのテスターのビジュアルモードではOnChartEvent()が機能せず、インジケーターではチャート上のマウスクリックイベントのみが機能することです。あなたが話しているテストインジケータでは、パネルはマウスカーソルの下にデータを表示します。つまり、プログラムはカーソルの位置を追跡し、カーソルの下にあるバーからパネルにデータを送信します。テスターのビジュアル・モードでは、パネル上のデータを取得したいバーをクリックする必要があります。または、OnTick()でデータを取得しますが、あなたが行ったように、現在のバーからのみデータを取得します。

最初のトピックを読み直してください。

実際、私の情報をパネルに出力するには、イベント・ハンドラが必要で、OnTick()の中でDrawData()を呼び出すだけで、すべてが機能します。

というのも、なぜかComment()を通したビジュアライゼーションのテストのスピードは何倍も落ちるのです。

 
Konstantin Seredkin #:

最初のスレッドを読み直してみてください。

実際、私の情報をパネルに表示するには、イベント・ハンドラが必要で、OnTick()の中でDrawData()を呼び出すだけで、すべてがうまくいく。

ありがとうございます。私は長い間、デバッグ情報をパネルに出力するための最もシンプルなパネルを探していました。

よかった。あなたが自分でそれを理解したことをうれしく思います。

 
Artyom Trishkin #:

よかった。自分で解決できてよかった

申し訳ありません、多分オフトピックなのですが、私は長い間あなたのトピックを追っていました。あなたは、時が来たら、何をどこに挿入し、アルゴリズムを完全に使用し、収集するかが明確になるようなサンプルロボットをライブラリに作成すると書いていました。

まだその時は来ていないのですか? ライブラリに関するトピックが終わっているのを見ました。

 
Konstantin Seredkin #:

申し訳ありません、もしかしたら話がそれたかもしれません。私は長い間、あなたのスレッドを見てきました。あなたは、その時が来たら、アルゴリズムを完全に使用し、収集するために、何をどこに挿入すればよいかが明確になるようなサンプルロボットをライブラリに作成すると書いていました。

まだその時は来ていないのですか? ライブラリーに関するトピックが終わっているのを見ました。

オブジェクトの隠された部分の周期的な点滅に現れる不快なバグのために開発を中断している間、ライブラリの - グラフィックスとの継続について。原因がわかるまでは、バグを蓄積させないためにも、グラフィックは作らないことにしている。しかし、ライブラリの残りの機能はすぐに続けるつもりだ。そして、例題に取りかかる。