なるほどFXよく聞く手法を、図とデータで確かめる

移動平均クロスを1時間足でバックテストしてみた(USDJPY・EURJPY・AUDJPY)

公開

定番の「移動平均クロス」(短期の線が長期の線を上抜けたら買い、下抜けたら売りに切り替えるルール)を、USDJPY・EURJPY・AUDJPYの1時間足で2015年から約11年半ぶん、1組の設定だけで機械的に売買させ、実際に記録したスプレッドを払ったあとの成績を調べました。

対象:USDJPY/EURJPY/AUDJPY ・ 1時間足 ・ 2015年1月〜2026年6月 ・ 外為ファイネストの実測スプレッド

このルールで売買したら、利益は出たのか?

3銘柄とも、偶然と区別できる利益は出ませんでした。USDJPYの合計プラスも、コイン投げの売買で出る範囲です。

銘柄ごとの2つの問いと判定
銘柄コストを払った後もプラス?コイン投げ1000人の中の順位判定
USDJPYはい(+2,047 pips)241位(上位50位に届かず) 偶然と区別できない
EURJPYいいえ(コスト前からマイナス)624位 マイナス
AUDJPYいいえ(コスト前からマイナス)519位 マイナス

判定の基準は、検証の前に決めています。コストを払った後もプラスで、かつ上位50位以内に入ったものだけを、「プラス」または「プラスだが弱い」と判定します。

USDJPYはプラスでしたが、コイン投げで売買する1000人と比べると

「コイン投げの1000人」とは、コイン投げで買いか売りかを決め、同じ回数・同じ保有時間で売買した人を1000人つくったものです。相場の上げ下げだけでも、でたらめな売買がプラスになることがあるため、これと比べています。

241位/1000人中(USDJPY)

上位50位以内なら「実力の可能性あり」と判定する基準。届きませんでした。

コイン投げで売買した1000人の合計pipsの分布(USDJPY)山の中央は約−614 pips。移動平均クロスの+2,047 pipsは241位で、上位50位の範囲(約+5,262 pips以上)の手前にある。上位50位の範囲−10,0000+10,000移動平均クロス(241位)合計pips(右ほど成績が良い)

山の高さは人数です。旗より右の240人が、移動平均クロスと同じかそれ以上の成績でした。

試した組み合わせ:

1通り

一番成績の良い組み合わせを探して載せると、見かけだけ良くなります。そのため1通りだけ試しています。なぜ?

ルールは1組だけに固定し、コストは3通りで試した

試した設定は、短期25本と長期75本の1組だけで、結果を見てからの調整はしていません。移動平均線:直近の一定本数の終値の平均を、1本ずつずらしながらつないだ線です。細かい上下をならして、大まかな流れを見やすくします。 くわしくの短期線が長期線を上抜けたら買い、下抜けたら売りに切り替えます。損切りも利確も置かず、常にどちらかの建玉を持ち続けます。

売買の判定は、1時間足の終値:ローソク足1本の、最後の価格です。移動平均線は、この終値を使って計算します。で行い、約定は次の足の始値です。対象はUSDJPY、EURJPY、AUDJPYの3銘柄で、期間は2015年1月から2026年6月までです。設定を1組に絞ったのは、多数の組み合わせから成績の良いものだけを載せると、過剰最適化:過去のデータで一番成績の良い設定を探し当てた結果、その期間にだけ合った設定を選んでしまうことです。別の期間では、成績が元に戻りやすくなります。 くわしくで見かけだけ良くなるためです。

コストは3つの条件で計算しました。

  • コストなし:スプレッド:買うときの値段と売るときの値段の差です。取引のたびに払う、実質的な手数料にあたります。をゼロとした場合。
  • 実測スプレッド:外為ファイネストで記録した、時間帯ごとの平均値。この記事の主な数字は、この条件のものです。
  • 保守的:同じ時間帯ごとのp90(10回に9回はこれ以下に収まる水準)。
前提の全文スワップなし・損切りなし。スプレッドの実測は17営業日だけで、全期間に同じ値を当てはめている。
  • スワップは考慮しない。
  • 損切り・利確は設定しない。
  • 価格は HistData の bid(1分足)から作った1時間足で、時刻はアメリカ東部時間(夏時間あり)。使用した実データは2026年6月下旬までで、最後の数日分は含まれていない。
  • スプレッドは外為ファイネストの17営業日の実測値(アメリカ東部時間の時間帯ごと)。それ以外の期間にも同じ値を当てはめる。
  • 買いはエントリー時、売りは決済時にスプレッドを払う(bidのみのデータのため)。
  • pips:為替の値動きを測る単位です。ドル円などの円が絡む通貨では、0.01円の動きが1 pipsにあたります。で評価し、取引数量やレバレッジは考慮しない。

USDJPYは合計プラスだが、コイン投げの売買でも同じくらいは出る

USDJPYの合計損益は、実測スプレッドを払ったあともプラスの2047.2 pipsでした。取引数は1080回、勝率は35.7%で、勝つ取引は少数派です。

USDJPYの累積損益(コスト3シナリオ)。①累積の最高点、②その後の最大の落ち込みの底、③期間末の位置に番号を付けている

損益曲線の山は、期間の途中にあります。図の①は2022年9月の最高点で、累積は4988.0 pipsでした。そこから②の2025年4月まで、累積は1563.4 pipsまで落ち込み、③の期間末は2047.2 pipsです。①から②までは2年半あまりかかっていて、この間の落ち込み幅が最大ドローダウン:資産が、直前の最高点からどれだけ減ったかを表します。期間中でいちばん大きい減り幅を「最大ドローダウン」と呼びます。の3424.6 pipsです。期間末の合計損益を上回っています。

コイン投げの売買:実際の取引と同じ本数・同じ保有時間で、売買の時刻と向きをでたらめに決めた売買です。手法の成績が、偶然でも出せる程度かどうかを測る物差しに使います。専門用語では「偽薬」と呼びます。と比べると、USDJPYの順位は1000人中241位で、基準の上位50位に届きませんでした。でたらめに売買した1000人のうち240人は、移動平均クロスと同じかそれ以上の合計損益を出しています。基準の50位の人は5261.9 pipsで、USDJPYの合計2047.2 pipsとは開きがあります。

コイン投げの売買は、成績の幅がとても広い点にも注意が必要です。1000人の合計損益は、下から50番目で-6830.6 pips、上から50番目で5238.7 pipsでした。でたらめに売買しても、大きく勝つことも負けることもあるため、黒字の損益曲線が1本あるだけでは、手法の実力の証拠になりません。

USDJPYの9指標の表実測スプレッドでは、PFが1.05、t値が0.54です。
USDJPY のシナリオ別成績
指標コストなし実測スプレッド保守的(p90)
取引数108010801080
勝率35.9%35.7%35.6%
PF1.071.051.04
合計pips2836.52047.21741.8
平均pips2.61.91.6
t値0.760.540.46
最大DD(pips)3255.43424.63491.2
平均保有時間(時間)93.193.193.1
年間取引数93.993.993.9

PF:プロフィットファクターの略です。勝ちの合計を負けの合計で割った値で、1より大きければ全体としてプラスです。は1より大きければ全体としてプラス、t値:1回の取引あたりの平均損益が、取引ごとのばらつきに比べてどれだけ大きいかを表す値です。0に近いほど偶然のぶれと区別できず、絶対値がおよそ2を超えて初めて、偶然とは言いにくくなります。は0に近いほど偶然のぶれと区別できません。

USDJPYの年別の損益プラスの年とマイナスの年が入り混じっていて、毎年安定して勝つ形ではない。

年別の表は、成績が年によってどれだけ安定しているかを見るためのものです。特定の年に使うべきだという意味ではありません。

USDJPY の年別成績(実測スプレッド、エントリー年で集計)
年取引数合計pipsPF
201598-234.80.92
2016941369.71.37
201790735.61.29
201896603.71.26
201998-461.60.78
202098992.81.50
202189532.71.33
202285449.91.10
202386-819.70.83
2024100-489.40.91
2025971.61.00
202649-633.30.73

USDJPYの年別損益(実測スプレッド)

EURJPYとAUDJPYは、コストを払う前からマイナスだった

EURJPYとAUDJPYは、スプレッドをゼロにしても合計損益がマイナスで、負けの原因はコストではなく値動きの側にあります。EURJPYはコストなしで-911.5 pips、実測スプレッドで-2570.2 pipsでした。AUDJPYはコストなしで-270.2 pips、実測スプレッドで-1853.5 pipsです。

EURJPYは、最高点のあとに落ち込み、底に近いまま期間が終わった

EURJPYの累積損益(コスト3シナリオ)。①②③の番号を付けている

①の最高点は2022年10月で、累積は1650.2 pipsでした。その後の落ち込みの底である②は2026年6月で、累積は-2675.8 pipsです。③の期間末は-2570.2 pipsで、②とほぼ同じ位置です。底を打ってから回復する前に、期間が終わっています。

AUDJPYは、一度もプラスにならなかった

AUDJPYの累積損益(コスト3シナリオ)。①②③の番号を付けている

AUDJPYの累積は、期間を通して一度もプラスになりませんでした。①は最高点ですが、2015年1月の序盤で、累積は-10.5 pipsとすでにマイナスです。そこから②の2017年3月に-2906.0 pipsまで下がり、その後は上下しながらも0を超えることなく、③の期間末は-1853.5 pipsでした。

コイン投げの売買との順位は、EURJPYが1000人中624位、AUDJPYが519位でした。どちらも、1000人の真ん中あたりです。この2銘柄では、でたらめに売買した人の半数以上が、移動平均クロスより良い成績を出しています。

EURJPYの表実測スプレッドでは、PFが0.94、t値が-0.65です。
EURJPY のシナリオ別成績
指標コストなし実測スプレッド保守的(p90)
取引数107310731073
勝率36.0%35.3%35.0%
PF0.980.940.93
合計pips-911.5-2570.2-3297.5
平均pips-0.8-2.4-3.1
t値-0.23-0.65-0.84
最大DD(pips)3746.34326.04604.9
平均保有時間(時間)93.493.493.4
年間取引数93.393.393.3
EURJPY の年別成績(実測スプレッド、エントリー年で集計)
年取引数合計pipsPF
201598564.71.13
201699-1515.30.71
201786430.71.14
201889858.91.31
20199073.21.03
202092-200.80.94
202199-1122.80.67
2022852373.31.62
202388-2073.40.61
202492218.41.04
2025106-1229.70.74
202649-947.60.56

EURJPYの年別損益(実測スプレッド)

AUDJPYの表実測スプレッドでは、PFが0.95、t値が-0.59です。
AUDJPY のシナリオ別成績
指標コストなし実測スプレッド保守的(p90)
取引数107610761076
勝率34.8%33.9%33.9%
PF0.990.950.93
合計pips-270.2-1853.5-2368.7
平均pips-0.3-1.7-2.2
t値-0.09-0.59-0.75
最大DD(pips)2619.72906.03262.9
平均保有時間(時間)93.493.493.4
年間取引数93.693.693.6
AUDJPY の年別成績(実測スプレッド、エントリー年で集計)
年取引数合計pipsPF
2015113-841.70.79
201698-1480.20.71
20179287.51.04
2018101448.21.18
2019100-646.30.77
202087908.91.37
202192694.11.33
2022101-30.90.99
202384-1568.50.55
202482683.21.25
202584-174.30.94
20264266.51.05

AUDJPYの年別損益(実測スプレッド)

スプレッドは全銘柄の成績を削ったが、結果を逆転させるほどではなかった

コストなしと実測スプレッドで、合計損益を比べると次のようになります。

銘柄 コストなし 実測スプレッド
USDJPY 2836.5 pips 2047.2 pips
EURJPY -911.5 pips -2570.2 pips
AUDJPY -270.2 pips -1853.5 pips

USDJPYでは、コストを入れても合計はプラスのまま残りましたが、1取引あたりの平均は、コストなしの2.6 pipsから、実測スプレッドでは1.9 pipsに減りました。この平均は、取引ごとのばらつき(標準偏差が114.3 pips)に比べるとごく小さく、偶然のぶれに埋もれます。t値が0に近いのは、そのためです。

EURJPYとAUDJPYは、コストなしの時点ですでにマイナスでした。コストを下げれば結果が逆転する、という形ではありません。

条件で絞って見つかった差は、USDJPYの中ボラ1つだけで、他の銘柄では再現しなかった

売買を条件で切り分けると、成績のよい局面が見つかるかもしれません。そこで、シグナルが出た時点で分かる情報だけから、次の3つの切り口を作りました。

  • ボラティリティ:直近約1年の中での、その時点の値動きの大きさ(ATR)の順位で、低・中・高の3つに分ける。
  • 日足トレンド:日足の終値と200日移動平均の位置関係で、売買の向きが順張りか逆張りかを分ける。
  • 時間帯:エントリーした足の時間帯で、東京・ロンドン・NY・NY引け後の4つに分ける。

補正後に有意な差が残ったのは、USDJPYの中ボラだけでした。中ボラの取引は303回、1取引あたりの平均は-11.9 pipsと、同じ切り口の残りより悪く、補正後のp値は0.04でした。

ただし、これを「中ボラでは見送る」という条件にする根拠はありません。理由は次の3つです。

  • 悪かったのは中ボラだけで、低ボラ(平均6.1 pips)と高ボラ(平均12.0 pips)はどちらもプラスです。値動きの大きさに応じて単調に変わる形ではなく、理屈で説明しにくい並びです。
  • 補正後のp値が基準の0.05をわずかに下回っただけで、ぎりぎりの結果です。
  • 他の銘柄で再現していません。EURJPYの中ボラは平均-4.3 pipsで補正後は有意ではなく、AUDJPYの中ボラは平均2.8 pipsと、符号が逆です。

EURJPYとAUDJPYでは、補正後に有意になったバケットはありませんでした。偶然の産物である可能性を排除できないため、この1つの結果だけで条件を足すことはしません。

USDJPYの条件別の表補正後に有意な差があったのは、中ボラの1つだけ。
USDJPY の条件別成績(実測スプレッド)
条件取引数勝率平均pips合計pipst値補正後p値補正後の有意性
ボラティリティ:低ボラ38235.1%6.12318.91.201.00有意でない
ボラティリティ:中ボラ30334.7%-11.9-3611.0-2.230.04有意
ボラティリティ:高ボラ29738.7%12.03574.01.361.00有意でない
日足トレンド:日足トレンド順張り47737.3%1.8836.20.331.00有意でない
日足トレンド:日足トレンド逆張り52935.0%3.31740.00.661.00有意でない
時間帯:東京35134.2%0.146.40.021.00有意でない
時間帯:ロンドン27038.5%3.4910.60.481.00有意でない
時間帯:NY33833.7%0.8256.90.121.00有意でない
時間帯:NY引け後12139.7%6.9833.20.651.00有意でない

各条件と「同じ区分の残り」との差を検定し、全9条件をまとめてHolm法で補正しています。

EURJPYの条件別の表補正後に有意な差があった条件は、なし。
EURJPY の条件別成績(実測スプレッド)
条件取引数勝率平均pips合計pipst値補正後p値補正後の有意性
ボラティリティ:低ボラ37239.0%7.22686.31.270.23有意でない
ボラティリティ:中ボラ29832.2%-4.3-1286.8-0.721.00有意でない
ボラティリティ:高ボラ30533.1%-14.9-4534.4-1.870.47有意でない
日足トレンド:日足トレンド順張り48337.3%-0.1-25.1-0.011.00有意でない
日足トレンド:日足トレンド逆張り51932.8%-6.1-3157.7-1.191.00有意でない
時間帯:東京32732.4%0.3105.60.041.00有意でない
時間帯:ロンドン27841.0%2.5697.40.371.00有意でない
時間帯:NY33435.0%-7.2-2390.8-1.121.00有意でない
時間帯:NY引け後13431.3%-7.3-982.3-0.701.00有意でない

各条件と「同じ区分の残り」との差を検定し、全9条件をまとめてHolm法で補正しています。補正後に有意な差のある条件はありません。

AUDJPYの条件別の表補正後に有意な差があった条件は、なし。
AUDJPY の条件別成績(実測スプレッド)
条件取引数勝率平均pips合計pipst値補正後p値補正後の有意性
ボラティリティ:低ボラ35635.1%-0.4-139.4-0.101.00有意でない
ボラティリティ:中ボラ29736.4%2.8824.00.471.00有意でない
ボラティリティ:高ボラ30931.7%-6.6-2037.4-1.071.00有意でない
日足トレンド:日足トレンド順張り48134.9%-0.1-31.6-0.011.00有意でない
日足トレンド:日足トレンド逆張り51633.7%-3.3-1716.6-0.831.00有意でない
時間帯:東京32633.4%-5.6-1839.5-1.161.00有意でない
時間帯:ロンドン27231.2%-1.8-478.5-0.291.00有意でない
時間帯:NY33736.8%3.31106.80.571.00有意でない
時間帯:NY引け後14133.3%-4.6-642.3-0.681.00有意でない

各条件と「同じ区分の残り」との差を検定し、全9条件をまとめてHolm法で補正しています。補正後に有意な差のある条件はありません。

勝率が低く、含み損の期間も長いので、クロスだけでは判断材料として弱い

3銘柄とも、勝つ取引は少数派でした。勝率は、USDJPYが35.7%、EURJPYが35.3%、AUDJPYが33.9%です。平均保有時間は93.1時間ほど、トレンドフォロー:価格が一方向に動き出したら、その流れに乗る考え方の売買です。小さな負けを重ね、まれに出る大きな動きで取り返す形になりやすい手法です。型らしく、小さな負けを重ねる形です。大きな勝ちが十分に出たかというと、PF:プロフィットファクターの略です。勝ちの合計を負けの合計で割った値で、1より大きければ全体としてプラスです。が1前後にとどまっていて、そうは言えない結果でした。

裁量でトレードする人にとっての示唆は、次の2点です。

  • クロスが出たこと自体には、その後の値動きを予測する力があまり見られませんでした。移動平均クロスは、それ単体では売買の判断材料として弱い可能性があります。
  • トレンドフォロー型は、含み損を抱える期間が長くなりやすい手法です。USDJPYでは、最大ドローダウンが合計損益を上回りました。通算でプラスかどうかだけでなく、そこに至る過程に耐えられるかも考える必要があります。

言えるのは、この設定・この3銘柄・この期間では偶然と区別できなかった、というところまで

この検証から言えるのは、「25本と75本の移動平均クロスを1時間足で機械的に売買するだけでは、この3銘柄のこの期間において、偶然と区別できる成績は得られなかった」ということまでです。この手法が将来にわたって通用しないと断定するものではありませんし、逆に通用するという根拠も得られませんでした。この範囲を超えて一般化しないでください。

検証の限界スワップなし、損切りなし、スプレッドの標本は短く、設定は1組だけ。
  • スワップを考慮していません。 数日保有する手法では、スワップ損益が成績を左右する場合があります。
  • スプレッドの標本が小さい。 外為ファイネストの2026年夏の17営業日だけです。他の季節や過去の期間、他の業者の値とは異なる可能性があります。
  • 損切りを入れていません。 実際の運用では、損切りの有無で最大ドローダウンは変わります。
  • データ源は HistData の bid(1分足)のみで、約定の滑りや約定拒否は再現していません。
  • 設定は25本と75本の1組だけで、最適化はしていません。他の組み合わせや他の時間足では、結果が異なる可能性があります。
  • 銘柄は3つ、期間は約11年半です。トレンドが長く続く時期と続かない時期の割合によって、結果は大きく変わります。
  • 条件別の分析は探索的なもので、結論を出すためではなく、何が見えるかを確かめるためのものです。

この記事は過去データの検証結果であり、売買の助言ではありません。