皆さん、こんにちは!今日は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