【移植#69】アンディの雲転換を縦線で記録 — 確定H1だけで陽転・陰転を追う¶

この記事の3行まとめ
- 確定したH1の先行スパンAとBを比べ、上下関係が入れ替わった位置だけを記録する
- 雲を26本先へ表示するバー差も縦線へ反映し、見えている雲の転換位置へそろえる
- EURUSD・M15で直近40回を独立再計算し、陽転19回・陰転21回の時刻と色が全件一致した
原典はアンディの雲へ転換線を加える相談¶
2010年3月17日の原典では、H1の一目をM5へ描くアンディの雲MTF版について、陽転雲と陰転雲が入れ替わった位置へ縦線を自動描画できないか、という相談が扱われています。公開された回答は、雲の反転位置へラインを加えるものでした。
元記事の配布ファイルは後に公開停止となり、第三者への再配布も禁止されています。今回のMQL5版は元ファイルを転用せず、公開されている目的と一目均衡表の計算式から独立して実装しました。
連載順では、この前に環境音ソフトとWindowsの設定を扱う2010年3月15日の記事、外部のコード整形ツールを紹介する3月16日の記事があります。どちらもMQLのロジックをMT5へ移す題材ではなく、古いソフトのためにセキュリティ機能の対象を外す手順を現在向けに勧めることもできません。そのため、この2本は移植対象にせず、次のMQL技術記事から続けています。
「雲の転換」をどう決めるか¶
計算する2本の境界は、移植#65と同じです。
転換線 = 過去9本の最高値と最安値の中間
基準線 = 過去26本の最高値と最安値の中間
先行スパンA = (転換線 + 基準線) / 2
先行スパンB = 過去26本の最高値と最安値の中間
陽転 = ひとつ前は A < B、今回は A > B
陰転 = ひとつ前は A > B、今回は A < B
比較するのは確定済みH1だけです。形成中のH1は高値・安値が変わるため、途中で一時的に上下が入れ替わっても転換には数えません。AとBが同値の状態も、方向が決まっていないため線を出しません。
縦線は「計算時刻」ではなく「表示位置」へ置く¶
一目の先行スパンは、計算した位置から先へずらして表示します。標準設定ではH1で26本先です。M15チャートならH1の1本がM15の4本なので、雲は26 × 4 = 104本先へ移動します。
縦線を元のH1時刻へ置くと、画面上の雲が入れ替わる位置より26本ぶん左へずれてしまいます。そこでインジケーターは、転換した確定H1より26本新しい側にある実在バーの開始時刻をiTime()で取り、実際に雲が表示される位置へOBJ_VLINEを置きます。
ここは単純に26時間を足していません。PLOT_SHIFTが動かすのは時間ではなくバーなので、週末をまたぐと26時間後と26本後は一致しないためです。投影先のH1バーがまだ存在しない転換は先回りして描かず、その位置が実際の履歴になってから記録します。
緑が陽転、紫が陰転です。直近の転換から最大40本を残し、時間足の変更やインジケーターの取り外しでは、自分が作った接頭辞のオブジェクトだけを削除します。手作業で引いた別のラインには触れません。
雲そのものはDRAW_FILLINGで塗り、境界線も重ねています。H1とM15の時刻対応にはiBarShift()を使い、上位時間足が現在足の整数倍にならない組み合わせは受け付けません。
69_Andy_Kumo_Transition_Lines_v1_00.mq5 をダウンロード
主なパラメーター¶
| パラメーター | 初期値 | 役割 |
|---|---|---|
InpSourceTimeframe | H1 | 雲を計算する上位時間足 |
InpTenkan | 9 | 転換線の期間 |
InpKijun | 26 | 基準線と先行スパンBの期間 |
InpShiftSourceBars | 26 | 上位時間足で右へ移動する本数 |
InpMaxTransitionLines | 40 | 残す直近の転換線数 |
InpBullishLineColor | Lime | 陽転時の縦線色 |
InpBearishLineColor | Magenta | 陰転時の縦線色 |
検証結果¶
専用MT5(Build 6090、EURUSD・M15、参照時間足H1)で、配布インジケーターと独立検証プログラムを各0エラー・0警告でコンパイルしました。
撮影前にインジケーターを実チャートへ追加し、26本の描画シフトを反対向きに補正して4つの表示バッファを各600本取得しました。600本すべてが有効値で、先行スパンAとBに差があるバーは584本、雲用と境界線用の値の不一致は0でした。
独立検証プログラムは、配布インジケーターの配列計算を使わず、H1の最高値・最安値を標準系列APIから取り直しています。新しい側と一つ古い側の雲状態を比較して直近40回を再計算したところ、陽転19回・陰転21回でした。40本すべてで、26本先にある実在バーの時刻、オブジェクト名、色、チャート上の縦線が一致しています。
検証中に注文やポジションの操作は行っていません。
注意点¶
縦線が示すのは、先行スパンAとBの上下関係が変わった表示位置だけです。価格が雲を抜けた時刻でも、売買シグナルでもありません。雲は26本先へ投影されるため、縦線の時刻も計算元のH1より先にあります。
H1の区切りはブローカーのサーバー時刻に依存します。別業者では高値・安値のまとまりが変わり、転換位置もずれることがあります。時間足や期間を変えて比較するときは、同じ銘柄、同じサーバー時刻、同じ設定にそろえてください。
陽転・陰転の回数や色だけでは、方向の継続、反転幅、収益性を測れません。価格と雲の位置、基準線・転換線、相場環境、リスク管理は別に確認してください。
まとめ¶
アンディの雲へ縦線を加えるときは、AとBを比べるだけでは足りません。確定足だけを使い、上位足を下位足へ正しく対応づけ、さらに先行表示の時間差まで縦線へ反映して初めて、画面上の転換位置と記録がそろいます。
今回のMQL5版は、確定H1の転換をM15へ投影し、直近40回を独立計算と全件照合しました。緑と紫の縦線は、雲の状態変化をあとから見直すための目印として使ってください。
前: 【移植#68】5本引けばどれかは当たる — ラインの「当たり判定」が値幅の何割かを測る
次: 【移植#70】1970年ダミー足をやめる — MT5履歴を指定日まで段階取得