このMQL5コードは、価格の動きとオーサムオシレーター(AO)との間のダイバージェンスを検出し、可視化するために設計されたカスタムインジケーターです。ダイバージェンスとは、価格の動きとオシレーターの動きが一致しないときに発生し、市場の反転や継続の可能性を示唆します。このインジケーターは、売買シグナル、AOのヒストグラム、およびダイバージェンスを強調するトレンドラインをプロットします。


インジケーターの主な特徴:
-
ダイバージェンス検出:
- ブルリッシュダイバージェンスを検出(価格が下値を切り下げる一方で、AOが上値を切り上げる)。
- ベアリッシュダイバージェンスを検出(価格が上値を切り上げる一方で、AOが下値を切り下げる)。
-
可視化:
- 売買矢印: ダイバージェンスに基づいてチャート上に売買シグナルを示す矢印をプロットします。
- ヒストグラム: オーサムオシレーター(AO)の値をヒストグラムとして表示します。
- トレンドライン: 価格とAOのダイバージェンスを強調するためにチャート上にトレンドラインを描画します。
-
カスタムバッファ:
- データを格納するために4つのバッファを使用します:
- 売買シグナル用のBuyBufferとSellBuffer。
- AO値用のHistogramBuffer。
- ダイバージェンスの確認のために整列したポイントを追跡するPointsCounterBuffer。
- データを格納するために4つのバッファを使用します:
-
動的トレンドライン描画:
- CChartObjectTrendを使用して、価格とAOのトレンドラインを動的に描画します。
-
クロッシングチェック:
- 価格またはAOがトレンドラインを越えたかどうかを確認する関数(CheckCrossing)を含んでおり、ダイバージェンスの確認または無効化に役立ちます。
-
補間:
- 2つのポイント間の中間値を計算するために線形補間(CalculateIntermediateValue)を使用し、クロッシングの確認に利用します。
動作の仕組み:
-
初期化:
- OnInit()関数がインジケーターバッファを設定し、プロパティ(色、スタイルなど)を割り当て、オーサムオシレーター(AO)のハンドルを初期化します。
-
主要計算:
- OnCalculate()関数が価格とAOデータを処理してダイバージェンスを検出します:
- 価格とAOの両方におけるボトム(下値)とトップ(上値)を特定します。
- 価格とAOのトレンドを比較してダイバージェンスをチェックします。
- ダイバージェンスが確認されると、売買シグナルをプロットし、トレンドラインを描画します。
- OnCalculate()関数が価格とAOデータを処理してダイバージェンスを検出します:
-
ダイバージェンス確認:
- IsBullishTrendやIsBearishTrendなどの条件を使用してダイバージェンスを確認します。
- ダイバージェンスを確認するために価格とAOのトレンドライン間にクロッシングが発生しないことを保証します。
-
動的更新:
- インジケーターは新しいバーごとに動的に更新され、必要に応じてダイバージェンスを再計算し、トレンドラインを再描画します。
主な機能:
-
IsBottom()とIsTop():
- 配列(価格またはAO)の局所的な最小値(ボトム)と最大値(トップ)を検出します。
-
CheckCrossing():
- 価格またはAOがトレンドラインを越えるかどうかをチェックし、ダイバージェンスを無効にする可能性があります。
-
CalculateIntermediateValue():
- トレンドライン分析のために線形補間を使用して中間値を計算します。
-
AddUniqueCoordinates():
- トレンドライン描画のためにユニークな座標が配列に追加されることを保証します。
-
TotalAligned():
- ダイバージェンスの強さを確認するために整列したポイントの数をカウントします。
使用方法:
- このインジケーターは、ダイバージェンス戦略を利用して市場の反転や継続の可能性を特定するトレーダーにとって非常に役立ちます。
- 視覚的な手がかり(矢印、トレンドライン、ヒストグラム)を提供して、トレーダーが情報に基づいた意思決定を行うのを助けます。
例シナリオ:
- 価格が下値を切り下げている(ベアリッシュ)が、AOが上値を切り上げている(ブルリッシュ)場合、ブルリッシュダイバージェンスが検出されます。インジケーターは買い矢印をプロットし、ダイバージェンスを強調するためにトレンドラインを描画します。
- 逆に、価格が上値を切り上げている(ブルリッシュ)が、AOが下値を切り下げている(ベアリッシュ)場合、ベアリッシュダイバージェンスが検出されます。インジケーターは売り矢印をプロットし、トレンドラインを描画します。
技術的詳細:
- プラットフォーム: MetaTrader 5 (MT5)。
- 言語: MQL5。
- 依存関係: 計算にオーサムオシレーター(iAO)を使用。
- カスタムオブジェクト: トレンドライン描画にCChartObjectTrend、座標管理にCArrayIntを利用。
このインジケーターは、ダイバージェンスの検出と可視化を自動化したいトレーダーにとって強力なツールであり、時間を節約し、取引戦略の精度を向上させる助けとなります。
コメント 0