水平線トレードは本当に勝てる?5,184通り検証
何度も反発した価格に線を引く定番を、線の定義を決める4つの設定を変えながらドル円2年分で測りました。タッチ回数を増やしても反発率は上がらず、線らしさを決める設定がいちばん結果を動かしません。
「何度も反発している価格に線を引く」。オシレーターが1つも説明しない、裁量トレーダーが最初に描くものです。効くとされる理由もはっきりしています。その価格で以前も止まったから。
検証できる形にすると、確かめるべきことが2つ出てきます。1つは用量です。「3回止まった線だから信頼できる」なら、5回止まった線は2回の線より止まるはずです。もう1つは対照群で、誰も止まらなかった価格に同じ線を引いたらどうなるかです。
先に結果を3つ書きます。
1つ目。タッチ回数は効きませんでした。 線で反発した足を、その線が何回持ちこたえていたかで分けると、15分足の買いは3回で50.13%、4回で49.24%、5回以上で50.10%です。
2つ目。価格が線に来ている足は、全体の41.40%から65.75%あります。 おおむね2本に1本で、特別な状態ではありません。
3つ目。線の定義を決める4つの設定のうち、年間損益をいちばん動かさなかったのがタッチ回数でした。 いちばん動かしたのは許容幅で、中央値の振れ幅は1,000.9pips対357.9pipsです。
そしてこの検証を始めたときに分かったことがもう1つあります。エンジンの水平線の条件は、一度も売買していませんでした。 2つの理由があり、どちらか一方だけでも売買は0件になります。
エンジンで水平線が一度も売買していなかった
この記事のために最初のスイープを回したところ、2,592通りすべてが取引0件でした。原因は2つです。
1つ目は、ATRが渡っていなかったことです。 水平線の許容幅は「ATRの何倍」で指定します。ゴールドとユーロドルで「同じ価格」の意味が違うので、pipsではなくATR倍率にしてあります。ところがエンジンには「どの条件がATRを必要とするか」の一覧があり、水平線がそこに入っていませんでした。結果、許容幅の計算に渡るATRが空になり、幅が0になります。幅が0だと、線を作る段階でスイングがすべて捨てられ、売買判定も幅が0より大きいという条件の後ろにあるので通りません。
2つ目は、抜けの判定が成立しない形で書かれていたことです。 レジスタンスは定義上「いまの終値より上でいちばん近い線」です。その線に対して「いまの終値がレジスタンスより上か」を聞いていました。この比較は絶対に真になりません。 サポート側も同じで、「いまの終値がサポートより下か」を聞いていました。抜けは、1本前の足が下にいた線を越えたかどうかで判定するのが正しいので、そう直しました。
どちらも「相場の性質」に見える形で壊れます。条件は画面に出ていて、バックテストは走り、レポートは「取引0件」と表示します。このシリーズが同じ形の不具合を見つけたのは、時間帯フィルター・フェアバリューギャップの描画・GMMAの決済に続いて4件目です。
以下の数字はすべて修正後のものです。
水平線とは何を指しているのか
エンジンが線を引く手順は4段です。
- スイングを見つける。 左右それぞれ指定本数のあいだ、その足の高値がいちばん高い(安値がいちばん安い)ならスイングです。左右が必要なので、スイングはその足から指定本数あとに確定します
- 近い価格をまとめる。 2つのスイングがATR倍率の許容幅より近ければ、同じ線として扱います。線の価格は、まとまったスイングの平均へ寄せます
- タッチ回数を数える。 まとまった回数がその線のタッチ回数です
- 指定回数に達した線だけを出す。 いまの終値より下でいちばん近いものをサポート、上でいちばん近いものをレジスタンスとして返します
確定を待つのが大事です。 スイングは右側の足がそろって初めてスイングなので、確定前の足で線を読むと、テスターがまだ見ていない安値からサポートを引くことになります。バックテストでいちばん都合のいい不具合がこれです。
遡る本数の外に出た線は捨てられます。これは速さのためだけではありません。「この線は3回持ちこたえた」の3回は、遡る本数の中で数えた3回です。 1万本前に一度かすっただけの価格は、もう数に入りません。
水平線の設定と読み方
この条件はチャートに線を描きません。 バックテストの中だけで計算されます。MT4のように画面に引いた線を見ながら判断する形にはなっていないので、以下は数字の上での話です。
| 項目 | 初期設定 | 中身 |
|---|---|---|
| 読み方 | 反発 | 反発(線で止まったら線の側へ)/抜け(線を越えたら越えた側へ) |
| 最低タッチ回数 | 3 | 何回まとまった線から使うか。2が下限 |
| 許容幅 | 0.5 | 2つのスイングを同じ線とみなす距離。ATRの倍率 |
| スイング判定 | 3 | 左右それぞれ何本を見てスイングと決めるか |
| 遡る本数 | 200 | 線を引ける過去の範囲 |
2つの読み方
反発は、足の安値がサポートの許容幅に入り、終値がサポートより上で終わったら買います。決済は1つ上のレジスタンスに届いたときです。売りはレジスタンスで鏡になります。
抜けは、終値が1本前のレジスタンスを越えたら買います。決済は反対側、つまりサポートを終値で下抜けたときです。
どちらも買いと売りの両方を作るので、エントリーと決済に同じ条件を使いました。
検証の条件
| 項目 | 値 |
|---|---|
| 通貨ペア | 米ドル/円 |
| 時間足 | 15分足・1時間足・4時間足 |
| 期間 | 2024年1月1日〜2025年12月31日。2025年は前半後半にも分割 |
| 読み方 | 反発・抜け |
| 遡る本数 | 100・200・400 |
| スイング判定 | 2・3・5・8 |
| 許容幅 | 0.25・0.5・1.0ATR |
| 最低タッチ回数 | 2・3・4 |
| 比べる相手 | 線から1.5・2・3ATR離した価格、および並べ替えた終値の系列 |
| 回した数 | 2読み方×3×4×3×3=216通り×3時間足×4期間×スプレッド2種=5,184通り |
| スプレッド | 0.3pips固定と0 |
| ロット | 0.1 |
| 約定 | 終値 |
スプレッド0でも回しています。 反発の読み方は1時間足で年1,000回を超えるので、負けたときに「線が効かない」のか「往復のコストで負けた」のかを分けないと読めません。
価格が線に来ている足は半分ある
線を評価する前に、線がどれくらいあって、価格がどれくらい線に来ているかを数えます。初期設定(遡る200本・スイング3・許容幅0.5ATR・3タッチ)です。
| 時間足 | 年 | 足の数 | サポートが引ける足 | 価格が線の幅に入った足 | タッチ回数の中央値 | 最大 |
|---|---|---|---|---|---|---|
| 15分足 | 2025 | 24,893本 | 81.28% | 59.90% | 4回 | 38回 |
| 15分足 | 2024 | 24,999本 | 86.72% | 58.20% | 4回 | 24回 |
| 1時間足 | 2025 | 6,216本 | 85.52% | 65.75% | 5回 | 23回 |
| 1時間足 | 2024 | 6,250本 | 84.24% | 52.64% | 4回 | 15回 |
| 4時間足 | 2025 | 1,600本 | 85.50% | 61.63% | 5回 | 15回 |
| 4時間足 | 2024 | 1,616本 | 84.90% | 41.40% | 3回 | 8回 |
価格が線の許容幅に入っている足は41.40%から65.75%です。 「水平線に来た」は、2本に1本で起きています。
タッチ回数の中央値は3回から5回で、最大は15分足の2025年で38回です。線そのものは足りないどころか、たくさんあります。
何度も反発した線は強いのか
用量を見ます。反発の判定が成立した足を、その線がそれまでに何回持ちこたえていたかで分け、10本後の終値までの値動きを測ります。回数はエンジンが数えているものをそのまま使っているので、新しい定義は入っていません。2025年です。
| 時間足 | 向き | タッチ回数 | 成立した足 | 10本後の勝率 | 10本後の平均 |
|---|---|---|---|---|---|
| 15分足 | 買い | 3回 | 2,759本 | 50.13% | −0.16pips |
| 15分足 | 買い | 4回 | 1,911本 | 49.24% | −0.55pips |
| 15分足 | 買い | 5回以上 | 4,996本 | 50.10% | −0.71pips |
| 15分足 | 売り | 3回 | 2,640本 | 50.23% | +1.19pips |
| 15分足 | 売り | 4回 | 1,825本 | 50.25% | −0.89pips |
| 15分足 | 売り | 5回以上 | 5,390本 | 50.20% | +1.17pips |
| 1時間足 | 買い | 3回 | 640本 | 50.63% | −0.01pips |
| 1時間足 | 買い | 4回 | 402本 | 54.48% | +3.18pips |
| 1時間足 | 買い | 5回以上 | 1,809本 | 51.96% | +0.72pips |
| 1時間足 | 売り | 3回 | 711本 | 52.04% | +3.12pips |
| 1時間足 | 売り | 4回 | 446本 | 49.33% | −1.22pips |
| 1時間足 | 売り | 5回以上 | 1,607本 | 45.24% | −3.77pips |
15分足は6つの区分すべてが49.24%から50.25%の中に収まりました。 コイン投げと区別がつきません。1時間足の買いは3回50.63%・4回54.48%・5回以上51.96%で、順番になっていません。売りは52.04%・49.33%・45.24%で、回数が増えるほど下がっています。
「その価格で以前も止まったから止まる」が理由なら、止まった回数は効くはずです。この検証では効きませんでした。
並べ替えた価格でも同じ線が引ける
対照群を2つ置きます。
1つ目は、線から離した価格です。 同じ判定を、サポートから1.5・2・3ATR上の価格で走らせます。線とは重ならない距離なので、許容幅も重なりません。2025年です。
| 時間足 | 線 | 成立した足 | 10本後の勝率 | 終値が線の何ATR上だったか |
|---|---|---|---|---|
| 15分足 | 引いた線 | 9,666本 | 49.94% | 0.49 |
| 15分足 | +1.5ATR | 2,748本 | 47.49% | 0.46 |
| 15分足 | +2ATR | 1,695本 | 47.67% | 0.49 |
| 1時間足 | 引いた線 | 2,851本 | 52.02% | 0.48 |
| 1時間足 | +1.5ATR | 624本 | 50.48% | 0.46 |
| 1時間足 | +2ATR | 415本 | 47.95% | 0.48 |
| 4時間足 | 引いた線 | 679本 | 53.31% | 0.51 |
| 4時間足 | +1.5ATR | 172本 | 54.07% | 0.52 |
| 4時間足 | +2ATR | 122本 | 45.08% | 0.51 |
引いた線が離した価格を勝率で上回ったのは18通り中13通りでした。**成立した瞬間の距離はそろっています。**終値が線の何ATR上で終わったかは、2025年の9行で引いた線が0.48〜0.51、離した価格が0.46〜0.54です。
そろっていないのは回数です。離した価格で成立した足の数は、引いた線の7.8%から41.6%しかありません。 サポートは定義上「いまの終値より下でいちばん近い線」なので、価格はそこへ何度も来ます。1.5ATR上に置いた線は、価格がそこまで上がった足でしか成立しません。同じ足数で比べたわけではないので、これだけでは足りません。
2つ目は、終値の変化を並べ替えた系列です。 終値から終値への変化を1回ずつ残して順番だけ崩すので、上昇の勢いも変動の大きさも太い尾も相場のものです。残らないのは、価格が反転した位置だけです。 並べ替えた足は実体も影も持たないので、判定は両方の系列で終値だけを読む形にそろえました(エンジンの反発は安値を読みます。ここでの数字は取引した結果ではなく、系列同士の比較です)。
| 時間足 | 年 | 系列 | 成立した足 | 10本後の勝率 | 10本後の平均 |
|---|---|---|---|---|---|
| 15分足 | 2025 | 実際 | 5,568本 | 49.69% | −0.45pips |
| 15分足 | 2025 | 並べ替え | 2,720本 | 50.04% | −1.83pips |
| 1時間足 | 2025 | 実際 | 1,637本 | 51.13% | −0.51pips |
| 1時間足 | 2025 | 並べ替え | 542本 | 47.23% | −0.15pips |
| 4時間足 | 2025 | 実際 | 376本 | 55.59% | +7.53pips |
| 4時間足 | 2025 | 並べ替え | 172本 | 52.91% | +3.58pips |
| 15分足 | 2024 | 実際 | 5,553本 | 53.97% | +0.80pips |
| 15分足 | 2024 | 並べ替え | 2,328本 | 49.44% | −1.00pips |
| 1時間足 | 2024 | 実際 | 1,179本 | 59.20% | +5.17pips |
| 1時間足 | 2024 | 並べ替え | 642本 | 52.80% | +1.24pips |
| 4時間足 | 2024 | 実際 | 249本 | 64.26% | +26.49pips |
| 4時間足 | 2024 | 並べ替え | 114本 | 36.84% | −24.74pips |
実際の価格が並べ替えた価格を勝率で上回ったのは6区分中5区分です。 15分足の2025年だけが逆でした(49.69%対50.04%)。
つまり、順番には何かあります。 ただし実際の系列の勝率自体は49.69%から64.26%で、49.69%の側にいる区分もあります。並べ替えを上回ることと、売買して残ることは別の話です。
2つの読み方を売買した結果
108通りを売買しました。年間損益がプラスで終わった設定の数です。
| 読み方 | 期間 | 15分足 | 1時間足 | 4時間足 |
|---|---|---|---|---|
| 反発 | 2025年 | 12 | 21 | 57 |
| 反発 | 2024年 | 49 | 79 | 91 |
| 抜け | 2025年 | 32 | 61 | 30 |
| 抜け | 2024年 | 49 | 95 | 92 |
2024年は反発が91/108、抜けが92/108(4時間足)まで届きます。2025年は57と30です。 年で大きく振れます。
2つの年をそろえ、さらに2025年を前半後半に割った4つの期間すべてで黒字だった数も出します。
| 読み方 | 時間足 | 2年連続で黒字 | 4期間すべてで黒字 |
|---|---|---|---|
| 反発 | 15分足 | 11 | 5 |
| 反発 | 1時間足 | 19 | 7 |
| 反発 | 4時間足 | 50 | 21 |
| 抜け | 15分足 | 23 | 10 |
| 抜け | 1時間足 | 58 | 32 |
| 抜け | 4時間足 | 23 | 11 |
いちばん多いのは1時間足の抜けで108通り中58通り、4期間すべてでも32通りです。 反発は4時間足で50通り・21通りでした。
勝率と1回あたりの幅も出しておきます。初期設定(遡る200本・スイング3・許容幅0.5ATR・3タッチ)です。
| 読み方 | 時間足 | 年 | 取引回数 | 勝率 | 平均利益 | 平均損失 | 年間損益 | 平均保有 |
|---|---|---|---|---|---|---|---|---|
| 反発 | 15分足 | 2025 | 6,372回 | 40.68% | +11.11pips | −8.56pips | −3,544.0pips | 5.0本 |
| 反発 | 1時間足 | 2025 | 1,799回 | 44.41% | +19.66pips | −15.86pips | −151.3pips | 4.2本 |
| 反発 | 4時間足 | 2024 | 261回 | 45.59% | +63.49pips | −33.52pips | +2,794.6pips | 7.9本 |
| 抜け | 15分足 | 2025 | 3,407回 | 28.29% | +22.42pips | −9.95pips | −2,682.4pips | 10.3本 |
| 抜け | 1時間足 | 2025 | 938回 | 30.38% | +43.26pips | −18.05pips | +542.8pips | 9.3本 |
| 抜け | 4時間足 | 2024 | 131回 | 38.93% | +121.24pips | −46.84pips | +2,436.1pips | 16.7本 |
抜けの勝率は25.45%から31.08%です。 3回に1回も当たりませんが、平均利益が平均損失の2倍を超えます。反発は勝率38.26%から42.80%で、利益と損失の比が1.3倍から1.9倍です。
反発は買いに偏る
反発の読み方は、取引の66.06%から67.73%が買いでした。 抜けは50.01%から50.19%です。
エンジンは1つの足で買いと売りの両方が成立したとき、買いを先に見ます。反発ではサポートの反発とレジスタンスの反発が同じ足で成立することがあり、そのとき必ず買いになります。上下対称のはずのルールが、上に偏った売買になります。 インサイドバーの記事でも同じ形が出ました。
線らしさを決める設定がいちばん効かない
4つの設定を1つずつ動かし、その値を含む設定群の年間損益の中央値を並べます。1時間足の2025年です。括弧の中が中央値です。
| 読み方 | 設定 | 値ごとの黒字数と中央値 |
|---|---|---|
| 反発 | 遡る本数 | 100:2/36(−1,291.5) 200:7/36(−1,131.0) 400:12/36(−384.6) |
| 反発 | スイング判定 | 2:7/27(−658.7) 3:7/27(−1,002.9) 5:5/27(−977.5) 8:2/27(−1,393.9) |
| 反発 | 許容幅 | 0.25:15/36(−315.4) 0.5:3/36(−1,316.3) 1.0:3/36(−1,049.7) |
| 反発 | タッチ回数 | 2:4/36(−1,020.5) 3:9/36(−1,183.6) 4:8/36(−825.7) |
| 抜け | 遡る本数 | 100:13/36(−521.9) 200:20/36(+97.2) 400:28/36(+1,002.4) |
| 抜け | スイング判定 | 2:24/27(+1,148.5) 3:21/27(+542.8) 5:13/27(−30.6) 8:3/27(−822.2) |
| 抜け | 許容幅 | 0.25:20/36(+261.3) 0.5:18/36(−36.0) 1.0:23/36(+286.1) |
| 抜け | タッチ回数 | 2:23/36(+441.4) 3:22/36(+423.7) 4:16/36(−128.3) |
中央値の振れ幅で並べ替えます。
| 読み方 | 遡る本数 | スイング判定 | 許容幅 | タッチ回数 |
|---|---|---|---|---|
| 反発 | 906.9 | 735.2 | 1,000.9 | 357.9 |
| 抜け | 1,524.3 | 1,970.7 | 322.1 | 569.7 |
反発ではタッチ回数がいちばん動きません(357.9pips)。抜けでは許容幅(322.1pips)に次いで小さく、569.7pipsです。
いちばん動くのは、抜けではスイング判定(1,970.7pips)と遡る本数(1,524.3pips)です。しかもどちらも線の本数が増える方向が良いという向きです。スイング判定を左右2本にすると、ほとんどの高値安値がスイングになります。遡る本数を400にすると、古い線も生き残ります。
線が効いたのか、線が増えて取引が増えたのかは、この集計では分けられません。 分かるのは、線を「らしく」する設定(何回止まったか、どれだけ近ければ同じ線か)よりも、線を多くする設定のほうが結果を動かしたということです。
前年の1位を翌年に当てる
片方の年で年間損益が1位だった設定を相手の年に当てます。216通り(2読み方×108)の中での順位です。
| 時間足 | 選んだ年 | 設定 | 選んだ年の損益 | 相手の年の損益 | 相手の年の順位 | 相手の年の中央値 |
|---|---|---|---|---|---|---|
| 15分足 | 2024年 | 抜け・100/2本/0.5/3回 | +3,513.9pips | +488.6pips | 26位 | −1,531.7pips |
| 15分足 | 2025年 | 反発・100/5本/0.5/4回 | +2,194.7pips | +2,983.4pips | 4位 | −113.8pips |
| 1時間足 | 2024年 | 抜け・200/2本/1.0/2回 | +3,247.4pips | +339.8pips | 67位 | −394.6pips |
| 1時間足 | 2025年 | 抜け・400/2本/0.25/4回 | +2,323.4pips | +377.2pips | 148位 | +1,033.2pips |
| 4時間足 | 2024年 | 抜け・200/8本/1.0/3回 | +3,237.1pips | −1,205.0pips | 170位 | −314.8pips |
| 4時間足 | 2025年 | 反発・400/8本/1.0/4回 | +2,569.7pips | +1,463.4pips | 77位 | +962.1pips |
6件のうち相手の年の中央値を上回ったのは4件です。 15分足はどちらの向きでも上位に残り(26位・4位)、4時間足の2024年は170位まで落ちました。
初期設定に近い「遡る200本・スイング3・許容幅0.5・3タッチ」の順位も出しておきます。反発の4時間足は2024年が216通り中6位(+2,794.6pips)で、2025年は72位(+278.8pips)です。抜けの4時間足は2025年が204位(−1,883.7pips)で、2024年は15位(+2,436.1pips)でした。同じ設定が同じ時間足で、年をまたぐと6位と72位、204位と15位に動きます。
スプレッドで消える分
年間損益がマイナスなのは線が効かないからかコストのせいか。スプレッドを0にして走らせ直します。左が0、右が0.3pipsのときの黒字設定数です。
| 読み方 | 時間足 | 年 | 黒字設定数 | 中央値 | 取引回数の中央値 |
|---|---|---|---|---|---|
| 反発 | 15分足 | 2024 | 94→49 | +1,339.7→−99.1 | 4,738.5回 |
| 反発 | 1時間足 | 2025 | 39→21 | −545.6→−987.7 | 1,428.0回 |
| 反発 | 4時間足 | 2025 | 61→57 | +224.9→+154.8 | 364.5回 |
| 反発 | 4時間足 | 2024 | 93→91 | +912.5→+845.2 | 196.0回 |
| 抜け | 15分足 | 2025 | 57→32 | +172.7→−760.3 | 2,739.5回 |
| 抜け | 1時間足 | 2025 | 66→61 | +472.9→+230.4 | 751.5回 |
15分足の反発は、2024年に0.3pipsのスプレッドだけで94通りから49通りへ落ちます。 中央値も+1,339.7pipsから−99.1pipsです。取引回数の中央値が4,738.5回なので、スプレッドだけで1,421.5pipsを払っています。
4時間足では93通りから91通りへしか減りません。 取引回数の中央値が196回だからです。このシリーズが毎回確認している「コスト=取引回数×スプレッド」の形どおりでした。
関連記事
- フェアバリューギャップ「埋まる」は本当?2年分の足で検証した結果:同じ「価格が覚えている水準」型の主張を、対照群を置いて測っています
- フィボナッチ「61.8%で反発」は本当?FXで2年分検証した結果:水準に固有の効果があるかを、非フィボナッチ数を混ぜて測った記事です
- ダブルトップ・ダブルボトムは反転する?2年分検証した結果:同じスイングから作る形を、別の読み方で測っています
- ドル円の設定は他の通貨ペアで通用する?3,024通り検証:この記事の設定もドル円で選んだものです
補足
- 対象は米ドル/円のみです。2024年と2025年の2年分で、時間足は15分足・1時間足・4時間足です
- 約定は終値、スプレッドは0.3pips固定と0の2種類、ロットは0.1、スリッページはありません
- この条件はチャートに線を描きません。数字はバックテストの中で計算した線のものです
- 離した価格の対照群は、成立した瞬間の距離はそろっていますが、成立する足の数が引いた線の7.8〜41.6%です。並べ替えた系列の対照群は、両方を終値だけで判定しています
よくある質問
- 何度も反発している線ほど強いのですか?
- この検証では強くなりませんでした。線で反発した足を、その線が何回持ちこたえていたかで分けると、15分足の買いは3回で50.13%・4回で49.24%・5回以上で50.10%です。売り側も50.20〜50.25%の範囲に収まりました。線の定義を決める4つの設定の中でも、タッチ回数は年間損益の中央値をいちばん動かしませんでした。
- 水平線は反発を狙うのと抜けを狙うのとどちらがいいですか?
- 2年連続で黒字だった設定の数では抜けのほうが多く、1時間足で108通り中58通り(反発は19通り)でした。ただし4時間足では逆で、反発50通り・抜け23通りです。勝率は抜けが25.45〜31.08%、反発が38.26〜42.80%で、どちらも50%を超えません。
- 水平線に来たら特別な状態なのですか?
- そうとは言えません。価格が線の許容幅(初期設定では0.5ATR)に入っている足は、時間足と年によって41.40%から65.75%あります。おおむね2本に1本です。
- 遡る本数やスイングの判定はどう決めればいいですか?
- 抜けの読み方では、遡る本数を長くしてスイング判定を小さくするほど良くなりました。1時間足の2025年で、遡る本数100は36通り中13通り・中央値−521.9pips、400では28通り・+1,002.4pipsです。スイング判定は左右2本で27通り中24通り・+1,148.5pips、8本では3通り・−822.2pipsでした。ただしこれは線の本数が増える方向なので、線が効いたのか回数が増えたのかはこの集計では分けられません。
- Formiqで水平線を検証できますか?
- できます。バックテストの条件一覧で水平線を有効にすると、読み方・遡る本数・スイング判定・許容幅・最低タッチ回数を指定できます。この記事の5,184通りもその形で回しました。なおチャート側にはこの線を描く機能がまだありません。
Formiqは、リプレイ練習とノーコードバックテストをブラウザだけで使える無料のFXツールです。 チャートを開く、または無料プランでできることをご覧ください。