コンテンツにスキップ

【移植#92】ZigZagの各スイングをpips/hで表示 — 変わる折れ点も見分ける

EURUSDのH1チャートにZigZagと各スイングの速度をpips/hで表示したMT5実画面

この記事の3行まとめ

  • ZigZagの隣り合う折れ点ごとに、価格差と時間差から平均速度を計算します
  • 直近の折れ点は価格の更新で移動・変更されるため、速度表示も変わることがあります
  • EURUSD・H1の実チャートで、MT5標準ZigZagから計算した値と表示ラベルを照合しました

ZigZagの区間ごとの速さを見る

2010年5月1日の原典は、前日の「pips/hour」表示をZigZagにも応用し、隣り合う折れ点の各辺に平均速度を表示したものです。コメントでは高値だけ、安値だけを結ぶ表示も提案され、作者は値幅予測用の延長線も試しています。

元記事「ZigZag に角度(pips/hour)を追加してみた。」を読む

今回の公開版は、中心にある「ZigZagの各辺のpips/hour表示」をMT5向けに独立実装しました。配布コードは原典の添付を移植したものではなく、記事の説明に基づきMT5標準のZigZagを読み込んで速度を表示します。#91は自分で置いた2点間の速度を測りますが、こちらはZigZagが選んだ折れ点を使います。前後N本の高値・安値と価格時刻を表示する#02 SwingPoint Viewとも役割が異なり、折れ点から折れ点までの変化率を並べて確認できます。

計算方法

隣接する古い折れ点と新しい折れ点を使い、時間はバーの時刻差から求めます。

Text Only
平均速度(pips/h)
  = (新しい折れ点価格 - 古い折れ点価格) / 1pip
    / (時刻差の秒数) × 3600

上向きの区間はプラス、下向きはマイナスになります。ラベルは各区間の中間時刻・中間価格に置き、小数1桁で表示します。現在のチャート時間足が異なっても、バー本数ではなく2つの折れ点の時刻差で計算します。

このインジケーターは、MT5標準のExamples\ZigZagをiCustom()で読み込みます。Depth・Deviation・Backstepを同じ値に合わせた標準ZigZagもチャートへ追加すると、速度ラベルと線を重ねて見られます。配布物は標準ZigZagを同梱しないため、MT5のExamplesインジケーターが必要です。

ZigZagの折れ点は確定値ではない

ZigZagは相場の山と谷を見やすくつなぐ表示で、右端の候補点が新しい値動きで移動したり、直近の線分が引き直されたりします。これは速度ラベルにも反映されます。過去の区間に表示された数値が、後から再計算される場合もあります。

そのため、この数値は現在のZigZag表示を区間ごとに要約したものです。確定した売買シグナルや将来価格の予測として扱うものではありません。原典にある高値同士・安値同士の補助線や延長による値幅予測は、この版の対象にしていません。

EURUSD・H1で表示値を照合

専用MT5 Build 6230で、配布インジケーターと検証用EAを各0エラー・0警告でコンパイルしました。チャートに標準ZigZagと速度インジケーターを重ね、標準ZigZagの折れ点を独立に走査して、各区間の価格差・時刻差からpips/hを再計算しました。

表示対象の30区間すべてで、1桁に丸めたラベル、区間の中間位置、速度の符号に応じた色が独立計算と一致しました。表示は小数1桁なので、未丸めの値との差は最大0.05pips/hでした。さらにインジケーターを一度外して自分のラベルだけが消え、標準ZigZagが残ることを確認したあと、再装着して表示が戻ることも検査しました。注文・ポジションは0件で、取引は行っていません。

使い方

92_ZigZag_Speed_v1_00.mq5 をダウンロード

  1. ファイルをMT5データフォルダのMQL5/Indicators/MQL_Portへ保存して、MetaEditorでコンパイルします。
  2. Examples\ZigZagをチャートへ追加し、Depth・Deviation・Backstepを速度インジケーターと同じ値にします。
  3. 92_ZigZag_Speed_v1_00を同じチャートへ追加します。各隣接区間の中間付近に速度ラベルが表示されます。

初期設定はMT5標準ZigZagと同じくDepth 12、Deviation 5 points、Backstep 3です。Deviationはpipsではなくpointsです。表示対象は直近30区間、走査は最大3,000本です。InpMaxSegmentsとInpLookbackBarsで範囲を調整できます。ラベルを隠す場合はInpShowSpeedLabelsをfalseにします。

3桁・5桁のFX銘柄では、初期設定で1pipを_Point × 10とします。2桁・4桁では_Pointです。独自のpip幅を使う銘柄ではInpPipSizeへ1pip分の価格幅を指定してください。初期値0は桁数から自動推定します。

注意点

1本の区間の平均速度だけでは、その途中の値動きや変動の大きさは分かりません。またZigZagの折れ点自体が更新されるため、同じ銘柄・時間足でも表示時点によりラベルが変わることがあります。速度の大小から売買成績を判断する機能ではありません。

参考

あわせて読みたい記事

前: 【移植#91】トレンドラインの平均速度をpips/hで表示 — 画面の角度に頼らない

次: 【移植#93】チャートスケールをオート/固定で切り替える — キー操作を2つのボタンへ

— SPONSORED —