【移植#68】5本引けばどれかは当たる — ラインの「当たり判定」が値幅の何割かを測る¶

この記事の3行まとめ
- 1日の値幅へ5本ラインを引き±5pipsを許容すると、値幅の半分が「当たり判定」で埋まる
- 確定したスイング高安が帯へ入った割合を数え、帯が占める面積の割合と比べる
- GBPJPY・M30の確定10日ではカバー率55.69%に対しヒット率53.28%、比は0.96倍だった
原典は「なぜ5本なのか」への自問¶
2010年3月14日の原典は、前半でMetaTraderを接続させずに起動させる小技を扱い、後半で読者から寄せられた「5本線を引けばどれかが当たる」という言葉を掘り下げています。著者はそこで、1日の値幅が100pipsのときにラインを5本引くと平均20pips間隔になり、ラインの±5pips以内で反転や停滞が起きたら機能したと見なすなら、10pips×5本=50pipsぶん、つまり値幅の半分が「機能したように見える領域」になる、と自分で計算しています。
前半の起動テクニックは、つながらないプロキシ設定を書いたテキストを端末へ渡してログインを止める、というMT4の端末設定の話です。MT5の起動設定については移植#43で扱っているため、今回は後半の「引いた本数と許容幅で当たり判定の面積が決まる」という指摘のほうをMQL5へ移植しました。この計算はチャート上で実測できます。
測っているもの¶
インジケーターは、確定した日を新しいほうから順に取り、日ごとに次の手順で数えます。形成中の当日は含めません。
値幅 = その日の高値 - その日の安値
ライン = 値幅をN等分した各区間の中央(N本)
帯 = 各ラインの上下±T pips
カバー率 = 帯の合計幅 ÷ 値幅
(帯どうしの重なりと、値幅からはみ出した部分は除く)
スイング高 = 左右k本すべてより高い高値
スイング安 = 左右k本すべてより低い安値
ヒット率 = 帯の中に入ったスイング点 ÷ 全スイング点
最後に、ヒット率をカバー率で割った値を求めます。ここでは倍率と呼びます。1.0倍なら、ラインへ寄ったように見えるのは帯が占める面積ぶんでしかない、という読み方になります。1.0倍を大きく超えて初めて、その価格に何かが起きていた可能性を検討できます。
チャート上では、帯を灰色の矩形、ラインの中心を点線、スイング点を丸で表示します。帯の中に入った点は水色、外れた点は赤です。
68_Daily_Line_Coverage_Auditor_v1_00.mq5 をダウンロード
主なパラメーター¶
| パラメーター | 初期値 | 役割 |
|---|---|---|
InpDays | 10 | 集計する確定日数(当日は除外) |
InpLineCount | 5 | 1日あたりのライン本数 |
InpTolerancePips | 5.0 | ラインの許容幅(±pips) |
InpSwingBars | 2 | スイング判定で比べる左右の本数 |
InpMaxScanBars | 4000 | さかのぼるバー数の上限 |
InpDrawBands | true | 帯と中心線を描画するか |
pipsは3桁・5桁銘柄では最小単位の10倍として計算します。集計はバーが確定したときに1回だけやり直します。
検証結果¶
専用MT5(Build 6090)で、配布インジケーターと独立検証プログラムを各0エラー・0警告でコンパイルしました。
GBPJPY・M30の確定10日では、1日の平均値幅が114.3pipsでした。原典が例に挙げた100pipsに近い値です。ここへ5本のラインと±5pipsの帯を置くと、カバー率は55.69%になりました。同じ期間のスイング点は137個(高値70・安値67)で、そのうち帯に入ったのは73個、ヒット率は53.28%です。倍率は0.96倍でした。
独立検証プログラムは、インジケーターの4本のバッファを2,000本ぶん読み出して点の数を数え、同時に生の4本値から同じ手順を別実装で計算し直しています。帯に入った高値33・外れた高値37・入った安値40・外れた安値27まで、両者は完全に一致しました。注文・ポジションの操作はありません。
値幅が狭い銘柄では、この帯はさらに飽和します。同じ設定をEURUSD・M30の確定10日へ当てると、平均値幅41.3pipsに対してカバー率95.21%、ヒット率89.74%、倍率0.94倍でした。5本×±5pipsの帯だけで、その日の値動きのほぼ全域が「当たり判定」になっていたことになります。
注意点¶
このインジケーターが測るのは、帯の面積と、そこへ点が入った割合の比だけです。反発の大きさ、そこから伸びた値幅、方向、収益性は測っていません。倍率が1.0倍を超えたとしても、それだけで売買の根拠にはなりません。
結果はスイングの定義に強く依存します。InpSwingBarsを大きくすると点は減って選び抜かれ、小さくすると点が増えて細かい揺れも拾います。時間足を変えても点の数は変わります。比較するときは、この2つをそろえてください。
等間隔のラインは、実際に多くの人が見ている水準(前日高安、キリ番、ピボット)とは別物です。今回の数字は「等間隔に引いたラインでも、面積ぶんは当たる」という基準線であり、意味のあるラインを否定するものではありません。むしろ、自分のラインが基準線を超えているかを確かめるための物差しとして使ってください。
まとめ¶
「どれかが当たる」は、当たり方の問題ではなく面積の問題でした。5本のラインと±5pipsの帯は、100pips前後の値幅なら半分を、40pips程度の値幅ならほぼ全域を覆ってしまいます。ラインが効いたかどうかを語る前に、まず自分が何割の領域を「当たり」と呼んでいるのかを数えておくと、同じ画面がずいぶん違って見えます。
前: 【移植#67】QQEを同じ物差しで重ねる — 50中央の高速・低速2ライン
次: 【移植#69】アンディの雲転換を縦線で記録 — 確定H1だけで陽転・陰転を追う