MetaTrader 5用理想的ジグザグインジケーターの紹介

Mike 2012.07.20 23:07 22 0 0
添付ファイル

皆さん、こんにちは!今日はMetaTrader 5で使える非常に高速でシンプルなジグザグインジケーター「理想的ジグザグ」をご紹介します。

理想的ジグザグ

メリット:

  • 最も重い計算処理であるiBarShiftが完全に排除され、ArrayBSearchに置き換えられました。これにより、従来のMQL4版よりも効率的に動作します。
  • 各バーの必要なデータが常にアクセス可能で、EAでも履歴の任意の瞬間に利用できます。
  • 無駄なピークがありません。
  • インジケーター値を検索せずにピークを効率的に見つける方法を採用しています。
  • 非常に高速です。
  • 履歴挿入や時間枠の切り替え時にも正しく動作します。
  • EAでの使用に最適です。

デメリット:

  • メモリの要件が高いです。ジグザグには正確な描画のために2つのバッファが必要で、ここでは5つのバッファが使用されています。この欠点は、他の速いジグザグと比べて履歴挿入を適切に処理できるため、完全に相殺されます。
  • EAにデータを見せるための追加のラインがありますが、これらは決して表示されるべきではありません。

原理:

ジグザグはチャネリングの原理に基づいて描画されます。チャネルの幅はポイント(IdealZZ)またはパーセンテージ(IdealZZP)で定義できます。

ピークの取得:

input int ChannelWidth=100;

#property indicator_chart_window

datetime LastTime;
int ZZHandle;
//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数 |
//+------------------------------------------------------------------+
void OnInit()
  {
   LastTime = 0;
   ZZHandle = iCustom(_Symbol, Period(), "IdealZZ", ChannelWidth);
  }
//+------------------------------------------------------------------+

このインジケーターは、各バーに対して1回ピークをマークします。
注意!ゼロバー モードが有効な場合、コードが正しく動作しないことがあります。

ゼロバー モード:

このモードは、DrawZeroBar変数のコードで有効にできます。デフォルトでは無効になっています。特にEAで使用する場合は、無効にしておくことをお勧めします。

ぜひ使ってみてください。何か問題があれば教えてくださいね!

リスト
コメント 0