記事一覧
公開著者検証証拠水平線サポートラインレジスタンスラインプライスアクションブレイクバックテストドル円

水平線トレードは本当に勝てる?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件になります。

444750535650.1349.2450.15+15分足 買い50.2350.3450.25+15分足 売り50.6354.5452.05+1時間足 買い52.0349.3445.25+1時間足 売り10本後に反発方向へ動いていた割合(%)
3回持ちこたえた線4回5回以上太線=50%
線で反発した足のうち、10本後に反発方向へ動いていた割合です。線がそれまでに何回持ちこたえていたかで分けています。15分足の6本は49.24%から50.25%の中に収まりました。1時間足の売りは回数が増えるほど下がり、52.04%から45.24%です。

エンジンで水平線が一度も売買していなかった

この記事のために最初のスイープを回したところ、2,592通りすべてが取引0件でした。原因は2つです。

1つ目は、ATRが渡っていなかったことです。 水平線の許容幅は「ATRの何倍」で指定します。ゴールドとユーロドルで「同じ価格」の意味が違うので、pipsではなくATR倍率にしてあります。ところがエンジンには「どの条件がATRを必要とするか」の一覧があり、水平線がそこに入っていませんでした。結果、許容幅の計算に渡るATRが空になり、幅が0になります。幅が0だと、線を作る段階でスイングがすべて捨てられ、売買判定も幅が0より大きいという条件の後ろにあるので通りません。

2つ目は、抜けの判定が成立しない形で書かれていたことです。 レジスタンスは定義上「いまの終値より上でいちばん近い線」です。その線に対して「いまの終値がレジスタンスより上か」を聞いていました。この比較は絶対に真になりません。 サポート側も同じで、「いまの終値がサポートより下か」を聞いていました。抜けは、1本前の足が下にいた線を越えたかどうかで判定するのが正しいので、そう直しました。

どちらも「相場の性質」に見える形で壊れます。条件は画面に出ていて、バックテストは走り、レポートは「取引0件」と表示します。このシリーズが同じ形の不具合を見つけたのは、時間帯フィルター・フェアバリューギャップの描画・GMMAの決済に続いて4件目です。

以下の数字はすべて修正後のものです。

水平線とは何を指しているのか

エンジンが線を引く手順は4段です。

  1. スイングを見つける。 左右それぞれ指定本数のあいだ、その足の高値がいちばん高い(安値がいちばん安い)ならスイングです。左右が必要なので、スイングはその足から指定本数あとに確定します
  2. 近い価格をまとめる。 2つのスイングがATR倍率の許容幅より近ければ、同じ線として扱います。線の価格は、まとまったスイングの平均へ寄せます
  3. タッチ回数を数える。 まとまった回数がその線のタッチ回数です
  4. 指定回数に達した線だけを出す。 いまの終値より下でいちばん近いものをサポート、上でいちばん近いものをレジスタンスとして返します

確定を待つのが大事です。 スイングは右側の足がそろって初めてスイングなので、確定前の足で線を読むと、テスターがまだ見ていない安値からサポートを引くことになります。バックテストでいちばん都合のいい不具合がこれです。

遡る本数の外に出た線は捨てられます。これは速さのためだけではありません。「この線は3回持ちこたえた」の3回は、遡る本数の中で数えた3回です。 1万本前に一度かすっただけの価格は、もう数に入りません。

水平線の設定と読み方

この条件はチャートに線を描きません。 バックテストの中だけで計算されます。MT4のように画面に引いた線を見ながら判断する形にはなっていないので、以下は数字の上での話です。

項目初期設定中身
読み方反発反発(線で止まったら線の側へ)/抜け(線を越えたら越えた側へ)
最低タッチ回数3何回まとまった線から使うか。2が下限
許容幅0.52つのスイングを同じ線とみなす距離。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分足202524,893本81.28%59.90%4回38回
15分足202424,999本86.72%58.20%4回24回
1時間足20256,216本85.52%65.75%5回23回
1時間足20246,250本84.24%52.64%4回15回
4時間足20251,600本85.50%61.63%5回15回
4時間足20241,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.5ATR2,748本47.49%0.46
15分足+2ATR1,695本47.67%0.49
1時間足引いた線2,851本52.02%0.48
1時間足+1.5ATR624本50.48%0.46
1時間足+2ATR415本47.95%0.48
4時間足引いた線679本53.31%0.51
4時間足+1.5ATR172本54.07%0.52
4時間足+2ATR122本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年122157
反発2024年497991
抜け2025年326130
抜け2024年499592

2024年は反発が91/108、抜けが92/108(4時間足)まで届きます。2025年は57と30です。 年で大きく振れます。

2つの年をそろえ、さらに2025年を前半後半に割った4つの期間すべてで黒字だった数も出します。

読み方時間足2年連続で黒字4期間すべてで黒字
反発15分足115
反発1時間足197
反発4時間足5021
抜け15分足2310
抜け1時間足5832
抜け4時間足2311

いちばん多いのは1時間足の抜けで108通り中58通り、4期間すべてでも32通りです。 反発は4時間足で50通り・21通りでした。

勝率と1回あたりの幅も出しておきます。初期設定(遡る200本・スイング3・許容幅0.5ATR・3タッチ)です。

読み方時間足取引回数勝率平均利益平均損失年間損益平均保有
反発15分足20256,372回40.68%+11.11pips−8.56pips−3,544.0pips5.0本
反発1時間足20251,799回44.41%+19.66pips−15.86pips−151.3pips4.2本
反発4時間足2024261回45.59%+63.49pips−33.52pips+2,794.6pips7.9本
抜け15分足20253,407回28.29%+22.42pips−9.95pips−2,682.4pips10.3本
抜け1時間足2025938回30.38%+43.26pips−18.05pips+542.8pips9.3本
抜け4時間足2024131回38.93%+121.24pips−46.84pips+2,436.1pips16.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.9735.21,000.9357.9
抜け1,524.31,970.7322.1569.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.6pips26位−1,531.7pips
15分足2025年反発・100/5本/0.5/4回+2,194.7pips+2,983.4pips4位−113.8pips
1時間足2024年抜け・200/2本/1.0/2回+3,247.4pips+339.8pips67位−394.6pips
1時間足2025年抜け・400/2本/0.25/4回+2,323.4pips+377.2pips148位+1,033.2pips
4時間足2024年抜け・200/8本/1.0/3回+3,237.1pips−1,205.0pips170位−314.8pips
4時間足2025年反発・400/8本/1.0/4回+2,569.7pips+1,463.4pips77位+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分足202494→49+1,339.7→−99.14,738.5回
反発1時間足202539→21−545.6→−987.71,428.0回
反発4時間足202561→57+224.9→+154.8364.5回
反発4時間足202493→91+912.5→+845.2196.0回
抜け15分足202557→32+172.7→−760.32,739.5回
抜け1時間足202566→61+472.9→+230.4751.5回

15分足の反発は、2024年に0.3pipsのスプレッドだけで94通りから49通りへ落ちます。 中央値も+1,339.7pipsから−99.1pipsです。取引回数の中央値が4,738.5回なので、スプレッドだけで1,421.5pipsを払っています。

4時間足では93通りから91通りへしか減りません。 取引回数の中央値が196回だからです。このシリーズが毎回確認している「コスト=取引回数×スプレッド」の形どおりでした。

関連記事

補足

  • 対象は米ドル/円のみです。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ツールです。 チャートを開く、または無料プランでできることをご覧ください。