利用しているインジケーターの紹介 Swing High Low
更新履歴:
過去の更新履歴はこちら
2026/02/22:ZigZag作成ルールを補足として追記
2026/07/05:
SwingHL 3.06
macOS版Google日本語入力の「英数モード」におけるキー判定の不具合を修正
上記の変更に伴い、キー入力の指定をキーコードからキー状態コード(スキャンコード)に変更
KeyCodeViewer 1.04
キーコード表示からスキャンコード表示に変更
はじめに
私のトレードスタイルは、基本的にトレンドフォローに基づいた押し目買い、あるいは戻り売りをデイトレード(最長でも2日程度)で行います。
トレードはMetaTraderで行っていて、主に以下のインジケーターを使っています。(「MetaTrader」は「MT」と記載することがあります。「MT4」「MT5」のようにバージョンを付けることもあります。)
Bollinger Bands(+2σ/20MA/-2σ)
GMMA(自作)
SwingHL(自作)
Stochastics
Force Index MTF(自作)
本記事では私の利用しているSwingHLインジケーターを説明します。
SwingHLについて
私は、高値・安値の定義付けをルール化するために、スイングハイ・スイングローを使っています。スイング・ハイは、高値の左右にそれぞれ高値が低いローソク足がn本存在して高値と認識します。スイング・ローは、安値の左右にそれぞれ安値が高いローソク足がn本存在して安値と認識します。
SwingHLインジケーターは、スイングハイ・ローによる高値・安値を結びZigZagを描画します。描画ルールの詳細については、こちらのURLを参照してください。

これはnを6本で描画した図です。ラリー・ウィリアムズは「n=6本」と定義していますが、nを3本で描画すると以下のようになります。

どの本数がするかは個人の好みになります。なお、本記事ではこの「n」を「Depth」と呼んでいます。
Ver2.01 追加機能
SwingHLインジケーターがZigZagや水平線を描画すると、ローソク足や他のインジケーターが見づらくなることがあります。Ver2.01では、そのような場合にキーボードの「d」キーを押すことで、SwingHLインジケーターの表示を一時的に非表示にできます。再度「d」キーを押すと再描画され、元の表示に戻ります。
設定方法
設定は以下のようになっています。

Depth of Swing
高値あるいは安値の左右のローソク足の本数です。デフォルト値は6本です。
Start Bar Index
スイングハイ・ローの開始ローソク足のインデックス値を指定します。最新足(一番右端のローソク足)のインデックスは0になります。デフォルト値は3です。Depthの値より小さい場合、頂点から左側のみ判断でZigZagを描画します。
たとえば、前述のSwingHL(n=3)の例で開始インデックスを0にすると、以下のように黄色の点線で囲った部分もZigZagが描画されます。

Draw ZigZag
trueを指定すると、スイングハイ・ローによる高値と安値でZigZagを描画します。デフォルト値はtrueです。
No Repaint ZigZag
trueを指定すると、ZigZagのリペイントを行いません。デフォルト値はfalseです。
Draw Band
trueを指定すると、高値だけを結んだ線と安値だけを結んだ線を描画します。デフォルト値はfalseです。
以下は、No Repaint ZigZag=true、Draw Band=trueの例です。Depthは3本にしています。

Number of High and Low Horizontal Lines respectively
チャートに高値と安値の水平線を引くことができます。最新の高値と安値からの本数を指定します。デフォルト値は2本です。
Delete Lines OnDeinit()
trueを指定すると、OnDeinit関数が呼ばれたときに、SwingHLインジケーターの現在のタイムフレームのオブジェクトを削除します。デフォルト値はtrueです。
Delete All Lines OnDeinit()
trueを指定すると、OnDeinit関数が呼ばれたときに、SwingHLインジケーターのすべてのオブジェクトを削除します。デフォルト値はtrueです。
High Horizontal Line Color
高値の水平線の色を指定できます。
Low Horizontal Line Color
安値の水平線の色を指定できます。
Draw BandおよびZigZagの色・線種・線幅の変更方法
MT4の場合は、設定画面の「色の設定」タブで変更してください。#0が高値の線、#1が安値の線、#2がZigZagの指定です。
MT5の場合は「カラー」タブです。Swing Hが高値の線、Swing Lが安値の線、最後がZigZagの指定です。
利用上の注意
MT5では、EAの記述を工夫することで、ストラテジーテスターのビジュアルモード実行時に、複数の時間足を切り替えて表示させることが可能です。ただし、MT5のストラテジーテスターをビジュアルモードで実行した場合、SwingHLインジケーターは、メインチャートの時間足以外では水平線が表示されないという制約があります。
補足:SwingHLにおけるZigZag作成ルール詳細
用語について
SH: Swing High
SL: Swing Low
SHH: This Swing High higher is than previous Swing High.
SLH: This Swing High lower is than previous Swing High.
SHL: This Swing Low higher is than previous Swing Low.
SLL: This Swing Low lower is than previous Swing Low.
ZH: ZigZag High
ZL: ZigZag Low
ZHH: This ZigZag High higher is than previous ZigZag High.
ZLH: This ZigZag High lower is than previous ZigZag High.
ZHL: This ZigZag Low higher is than previous ZigZag Low.
ZLL: This ZigZag Low lower is than previous ZigZag Low.
ZigZag決定のルール
ルール1:
ZigZagは古いバーから順に決定する。
ルール2:
ZHとZLは交互でなければならない。
ルール3:
ZHの次のZLはZHより小さい値でなければならない。また、ZLの次のZHはZLより大きい値でなければならない。
ルール4:
同一バーでSLとSHが共存する場合は、以下の判定ルールに従う。上昇トレンド示唆(切り上げ)の場合:
前回のSHより現在のSHが高く、かつ前回のSLより現在のSLが高い場合は、SHとして扱う。下降トレンド示唆(切り下げ)の場合:
前回のSHより現在のSHが低く、かつ前回のSLより現在のSLが低い場合は、SLとして扱う。その他の場合:
陽線の場合はSHとして扱い、陰線の場合はSLとして扱う。
ルール5:(未決定の動作)
Depth内のバーは、右n本をすべてを考慮する必要はなく、暫定でSHあるいはSLとみなす。
バー描画が進んだときに変更があれば修正する。
ルール6:(再描画)
ZHの後がSHの場合、後のSHがZHより高いときはZHを後のSHに変更する。
ZLの後がSLの場合、後のSLがZLより低いときはZLを後のSLに変更する。
ルール7:(再描画)
同一バーにSLとSHが出現した後の状態や再描画などによって、ZHとZLの間にZHより高いSHが存在した場合はSHをZHに変更する。
同様にZLとZHの間にZLより低いSLが存在した場合はSLをZLに変更する。
ルール8:(再描画)
新規バー出現後などで、前述までのルールに従わない場合には適合するように再計算する。
ダウンロード
ここまでの機能は無償でご利用いただけます。なお、一部機能の仕様につきましては、「【追記】Ver2.01における機能強化について」にて有償で公開しております。
本ソフトウェアのご利用にあたっては、以下の利用規約への同意が必要です。必ずソフトウェアをダウンロードする前に、利用規約をご確認ください。本ソフトウェアのダウンロードをもって、利用規約のすべてに同意したものとみなされます。
MT4版のダウンロード
ダウンロードしたファイルは、「データフォルダ\MQL4\Indicators」フォルダ直下に置いてください。
MT5版のダウンロード
ダウンロードしたファイルは、「データフォルダ\MQL5\Indicators」フォルダ直下に置いてください。
最後に
トレンドを波として捉えるなら、高値、安値を一貫した基準で決定することは非常に重要なことだと思います。
SwingHLをVer2.01にアップデートしたため、記事を追記しました。従来のInputパラメーターとの互換を考慮した仕様策定および検証作業には、結構、苦労しました……
それでは。
【追記】Ver2.01における機能強化について
機能概要
Ver2.01では、以下の3点の機能強化を行いました。
キーボード操作(「d」キー)による表示/非表示の切り替え機能
上記1の機能を「d」キー以外の英数字キーに割り当てる機能
入力パラメータ(Depth、StartBarIdex)の設定値を強制的に上書きする機能
なお、1の「キーボード操作による表示/非表示の切り替え」は標準で利用できます。前述の通り、「d」キーを押下することで、表示と非表示が切り替わります。
2および3の機能ついては、有償での公開となります。有償機能の閲覧には、以下の利用規約への同意が必要です。必ず記事を購入する前に、利用規約をご確認ください。本記事の購入をもって、利用規約のすべてに同意したものとみなされます。
ここから先は
¥ 2,000
よろしければ応援お願いします!
