「プラススワップの方向でロールオーバーをまたげば、寝ているあいだに金利差がもらえる」—— この考えを、10通貨ペア × エントリー8通り × 決済8通り=640通り、 2020〜2025年の全ロールオーバーで、ひとつも選抜せずに検証しました。 結果は実測コスト後にプラスとなった組み合わせがゼロ。 損益分岐に必要なスワップは 0.80〜2.71 pip で、実際に受け取れるのは 0.03〜1.14 pip/日でした。 3倍スワップ日なら額面上は届くペアが3つあります。ところがその夜だけを集計すると、やはり全ペアで負のままでした。 受け取る額が大きいペアほど、その夜の価格が逆方向へ動いていました(10ペア横断の相関 −0.897)。 検証仕様を事前登録した上での記録と、途中で自分たちが犯した5件の誤りも公開します。
スワップポイントは、ロールオーバー(多くの業者でサーバー時刻00:00=ニューヨーク17:00)を またいでポジションを保有した瞬間に発生します。時刻が完全に決まっていて、 方向も金利差から決まっている——だから「再現可能な収益源」に見えます。
私たちが検証したのは、次の帰無仮説です。
ロールオーバーをまたいで保有する取引には、取引コスト控除後の持続的な超過収益は存在しない。
十分な統計的根拠でこれを棄却できたときにだけ、戦略候補として扱う。「利益が出る設定を探す」ことは目的にしない。
検証の設計(対象通貨・期間の3分割・合格基準・必須の反証項目・コストモデル・停止条件)は、 データを一度も見ないうちに文書として固定しました。 あとから条件を足したり、都合の良い期間だけを使ったりできないようにするためです。
検証を始める前、私たちはスワップを「USDJPY で 0.1〜0.3 pip/日程度」と見積もっていました。 MT5から実際の値を取得すると、その3〜8倍ありました。
| 通貨ペア | 受取方向 | IC Markets Raw | 同・3倍スワップ日 | XMTrading |
|---|---|---|---|---|
| GBPJPY | 買い | +1.140 | +3.420 | +0.309 |
| USDJPY | 買い | +0.807 | +2.421 | +0.211 |
| AUDJPY | 買い | +0.800 | +2.400 | +0.404 |
| EURJPY | 買い | +0.397 | +1.191 | −0.569(受取不可) |
| NZDJPY | 買い | +0.228 | +0.684 | −0.151(受取不可) |
前提が3〜8倍動いたのですから、結論もひっくり返る可能性がありました。 実際、ロールオーバーの時間帯を避けて約定できれば、往復コストは USDJPY で 1.6 pip 程度です。 1日分のスワップ 0.81 pip では届きませんが、3倍日の 2.42 pip なら上回ります。 ここに勝ち目があるかどうかが、この検証の焦点になりました。
なお本記事では、スワップの過去の履歴は一切使っていません。 小売業者はスワップ履歴を公開しておらず、現在の値を過去5年に当てはめれば 「2020年のゼロ金利期に2026年の金利差を適用する」という致命的な誤りになるからです。 代わりに「この戦略が成立するには、1日あたり何 pip のスワップが必要か」を価格側から先に計算し、 現在の実測スワップと突き合わせています。
640通りのうち、実測コスト控除後にプラスの期待値を持つ組み合わせはひとつもありませんでした。 通貨ペアごとの最良でも −0.80 〜 −2.71 pip/1回です。
図1で注目していただきたいのは菱形です。3倍スワップ日の受取額なら、3ペアで損益分岐を超えています。 額面だけを見れば、ここに勝ち目があるはずでした。
ところが、実際に3倍スワップの夜だけを取り出して集計すると、10ペアすべてで負のままでした (3日分のスワップを加えた上で、最良の組み合わせでも −1.07 pip)。 棒グラフの算数は合っているのに、実際にその夜を数えると合わない。 その理由が、この検証で最も重要な発見です(第07節)。
なおコストを引く前の段階でも、すでにスワップ受取方向の価格リターンは負でした。 次の3節で、コスト側・価格側・時刻の順に分解します。
まずコスト側です。ロールオーバー前後のスプレッドを、 「その1分ちょうど」の分位として2020〜2025年で実測しました。 時間帯の平均ではありません。時刻を固定する戦略では、平均を使うと必ずコストを過小評価します。
この図が示す構造は、戦略設計に直接効きます。
そして、この構造こそが私たちが最初に踏んだ罠でもありました。詳しくは第08節に書きます。
次に価格側です。ロールオーバーの瞬間、BID(売値)は急落します。 JPYクロスでは −5分から0分のあいだに平均で USDJPY −3.98 pip、EURJPY −7.57 pip、GBPJPY −9.51 pip。 チャートだけを見ていると、「毎晩この時刻に一瞬だけ安く買える」ように見えます。
買い注文が約定するのは ASK です。BIDが 5 pip 下がっても、同時にASKが同じだけ上がっていれば、 買い手にとって価格は1 pip も改善していません。 ロールオーバーの「谷」は、流動性が消えたことの表示であって、割安の表示ではありません。
では、この気配の動きを取り除いた「本当の価格変化」はどうだったのか。 それを測るために、24通りの基準時刻で同じ計算を繰り返しました。
同じ「−X分に入って+Y分に出る」規則を、基準時刻をロールオーバーから1時間ずつずらして 24通り試し、順位をつけました。機序が本物なら、ロールオーバーは上位に来るはずです。
ロールオーバーの順位は、24時刻中の中央値で 23位でした(640通りの組み合わせ全体)。 さらに、保有時間を変えずに時刻だけをランダムに1000通り振った分布と比べると、 実際のロールオーバーは下位4.5%に位置します。
つまり、スワップを受け取る方向のポジションにとって、 ロールオーバー前後は1日のうちで最も価格が不利に動く時間帯のひとつでした。
比較対象も同じ結論を指しています。「ロールオーバーの直前に決済してスワップを受け取らない」 という設計(=またがない設計)は、640通り中405通りで、またぐ設計を上回りました。 またぐこと自体が損失を持ち込んでいます。
さらに、スワップを支払う側(受取方向の逆)に立つと、USDJPYでは最良の組み合わせで +0.84 pip とプラスに転じました。支払うスワップを差し引けば残りませんが、 価格そのものは受取方向の逆へ動いていたことの裏付けになります。
検証設計には「利益の出どころ」を切り分けるための比較対象を置いてあります。 そのひとつがロールオーバーから次のロールオーバーまで24時間持ち続けるという、 いちばん素朴な保有です。結果は次のとおりでした。
| 通貨ペア | 1日あたり(pips) | 1日の標準偏差 | p値 |
|---|---|---|---|
| GBPJPY | +9.33 | 100.9 | 0.002 |
| EURJPY | +6.13 | 80.7 | 0.009 |
| AUDJPY | +4.80 | 62.1 | 0.007 |
| USDJPY | +4.54 | 79.9 | 0.053 |
| NZDJPY | +4.04 | 54.2 | 0.009 |
| EURUSD/NZDUSD | −0.87/−0.49 | 51.8/40.8 | 0.56/0.69 |
この表は「JPYクロスを買って持て」という話ではありません。 2020〜2025年は円が一方向に下落した期間であり、この数字はスワップでもロールオーバーの歪みでもなく、 単なる方向性(相場観)の結果です。1日の標準偏差が 54〜101 pips ある—— 平均+4.5 pipsに対して振れ幅が20倍近くあることに注意してください。 別の5年で同じ方向に動く保証はどこにもありません。
本記事の要点はむしろ逆です。「スワップ狙いのロールオーバーまたぎ」で成績が出たように見えたとき、 その正体はほぼ確実にこの方向性です。だから比較対象を置く必要があります。
ここが本検証で最も予想外だった部分です。 週に一度、決済日が土日をまたぐために3日分のスワップが付与される夜があります。 「コストは3倍にならないのに受取だけ3倍になる」——事前には、ここだけが唯一勝ち目のある部分だと考えていました。 実際、スプレッドはその夜も他の夜と同水準でした(USDJPY 5.40 pip 対 他曜日 5.30〜5.85 pip)。
ところが価格の方が違いました。曜日別に分解すると、その夜だけ、すべての通貨ペアで スワップ受取方向のリターンが余分に悪化していたのです。
傾きが −1.345 ということは、上乗せされるスワップ1 pip につき、価格がおよそ1.3 pip 逆へ動いていた ということです。受け取る分を打ち消すどころか、上回っています。
これが第03節の「棒グラフの算数は合うのに、実際に数えると合わない」の答えです。 損益分岐(図1の棒)は全ての夜の平均から計算した値でした。 しかし3倍スワップの夜だけは、価格が他の夜より余分に不利に動いています (USDJPY −4.79 pip 対 他曜日 −1.36〜−1.93 pip、GBPJPY −7.31 対 −3.55〜−4.07)。 受取が3倍になる夜は、価格の条件も3倍分だけ悪くなっている—— だから3日分を足し込んでも、最良の組み合わせで −1.07 pip にしかなりませんでした。
3倍スワップは「無料の3日分」ではなく、価格に織り込まれています。 カバードインタリストパリティ(金利差は為替レートで相殺される)が、 日中の、しかも特定の1つの夜に、はっきり観測できる形で現れたと解釈できます。
この関係は10ペアの断面で確認したものであり、因果を証明したものではありません。 またこの分析は事前登録に含まれていません(曜日別の集計結果を見た後に気づいた構造です)。 当研究所の規則では、事前登録外の観察は探索回数に算入した上で「開示のみ」として扱い、 規則化するには新しい研究IDを立て直す必要があります。本記事でも結論としては扱いません。
掲載している数値は、検証の途中経過そのままではありません。 実行中に5件の計算上の誤りを自分たちで発見し、そのつど訂正しています。 うち4件は「利益が出る方向」への誤りでした。これは偶然ではないと考えています。
| 誤り | 誤った値 | 訂正後 |
|---|---|---|
| 時間帯平均のスプレッドを約定コストに使った ロールオーバー1分前の実測は 1.66 pip だが、23時台の平均は 0.60 pip |
EURJPY で +2.4 pip の「エッジ」 |
消滅 (分単位実測に差し替え) |
| 平均の差でイベント効果を測った 薄商いで欠測する分が多く、時刻ごとに標本の中身が入れ替わっていた |
USDJPY で −17.7 pip |
−2.36 pip (取引単位の差分へ) |
| 両側p値で候補を選んだ 「有意にマイナス」の組み合わせが候補に混入していた |
候補27件 | 候補0件 (正方向の片側検定へ) |
| コスト欠測を「合格」と判定した 欠損値との比較が常に偽になる実装上の穴 |
6ペアが 「コスト的に成立」 |
判定不能に変更 |
| 平常帯のコストに週明けの値が混入していた 標本の薄いペアで曜日をまとめる際、月曜(週次再開)を除外していなかった |
NZDJPY のコストが 7.61 pip |
3.59 pip (火〜金のみに限定) |
1件目は、当研究所が過去に同じ形で失敗した誤り(時間帯平均を約定コストに使う)の再発です。 再発防止のために作った検査ライブラリが、今回は作業の初期段階で警告を出して止めました。 それでも、その警告を回避する実装を一度書いてしまったことは記録に残します。
5件目だけは悲観方向の誤りでした。コストを実際より高く見積もっていたため、 訂正によって全ペアの成績が改善しています(それでも全ペアが負のままでした)。 誤りの向きが揃っていないことを確認するのは、検証の一部です。 楽観方向の誤りだけを探していると、悲観方向の誤りが残って「安全な結論」に見えてしまいます。
検証前に固定した基準と結果は次のとおりです。判定は文章で書かず、規則をコードに落とした戻り値をそのまま転記しています。
| 基準 | 内容 | 結果 |
|---|---|---|
| G | コスト前で統計的に有意な組み合わせが1件以上ある | 充足 |
| A | 実測コスト後にプラス、かつ多重検定補正後も有意 | 不充足(0/640) |
| B | Aの組み合わせがスプレッド1.5倍でもプラス | 不充足 |
| C | Aの組み合わせが検証期間と未使用期間の両方でプラス | 不充足 |
| D | 近傍のパラメータ(隣接する時刻設定)でもプラス | 不充足 |
| E | 年別に見て2/3以上の年でプラス | 不充足 |
ウォークフォワード検証(訓練12ヶ月→テスト6ヶ月・全100窓)も行いました。 訓練期間で最も成績の良いエントリー/決済時刻を選んでテスト期間に適用すると、 選ばない場合より平均で 1.5〜5.5 pip 改善します——それでもテスト期間の平均は −3.77 pipでした。 最適化そのものには意味がありましたが、赤字の幅が縮むだけでした。
スワップの過去履歴は入手できていません。 そのため主判定は価格側の効果だけで行い、スワップは「損益分岐に必要な額」との対比として提示しています。 過去の金利環境で当時のスワップがどうだったかは、この検証では再現できていません。
3倍スワップが付く夜のサーバー曜日は、確定していません。 MT5は「水曜」と報告しますが、サーバー時刻での解釈が2通りあり得ます。 本検証では両方を独立に集計し、どちらの解釈でも候補となる組み合わせはゼロでした。 第07節で示した価格調整はサーバー木曜(=ニューヨーク水曜17時)の夜に観測されたもので、 これは標準的な決済日の考え方と整合しますが、確認には業者の約定履歴が必要です。
そのほか。価格は1分足のBID終値のみ(ティックのBID/ASKではありません)。 コスト実測はDukascopy(ECN系)由来で、一般的なブローカーの提示スプレッドとは水準が異なります。 価格とコストは別ソースであり、分単位の時刻は揃えていますが気配水準の差は残ります。 サーバー月曜のロールオーバーは、エントリー側が週末で市場閉鎖のため構造的に評価できず、 全ロールオーバーの約1/5が対象外です。 GBPJPYの2025年は当研究所の別研究で既に開封済みのため、未使用期間としては汚染されています。 仕様上必要だった USDCHF/CADJPY/CHFJPY はデータを保有しておらず対象外としました。
戦略としては NO-GO ですが、副産物として 15銘柄のロールオーバー前後・分単位スプレッド表(2020–2025)が得られました。 これは時刻を固定する他の戦略のコスト評価にそのまま使えます。 「拡大は約40分前から始まり、サーバー01:00で階段状に終わる」という構造は、 エントリーとイグジットをどこに置くかの設計に直接効きます。
バックテストの好成績を発表するのではなく、それが崩れる条件を先に開示することを方針としています。 本件は事前登録つきで検証し、H0を棄却できなかった記録です。 同じ検証に時間を使う前に読んでいただくために公開します。
検証条件: 研究ID=RO-2026-001/対象=USDJPY・EURJPY・GBPJPY・AUDJPY・NZDJPY・EURUSD・GBPUSD・AUDUSD・NZDUSD・USDCAD(10ペア)/ 価格=1分足OHLC・BID基準・ブローカーサーバー時刻(GMT+2冬/+3夏・米国DSTカレンダー)/ 期間=2020-01-01〜2025-12-31(Discovery ≤2023-06-30/Validation ≤2024-12-31/未使用OOS=2025年)/ 検証セル=10ペア×エントリー8通り(−120〜−1分)×決済8通り(+1〜+120分)=640、選抜なしで全件報告/ コスト=Dukascopy BID/ASK の分単位実測分位+ECN往復手数料1.0 pip(悲観系列は1.3 pip)、固定スプレッドは不使用/ スワップ=MT5から取得した現在値(IC Markets Raw/XMTrading)。過去期間への金額適用は行っていません。/ 多重検定=Bonferroni(7.81×10⁻⁵)およびBH-FDR(q=0.10)。 掲載した数値はすべてヒストリカルデータ上の計算値であり、フォワードテスト・実口座運用の結果ではありません。
免責: 本ページは検証プロセスと棄却記録の開示を目的とした研究ノートです。投資助言ではありません。 特定の金融商品・ブローカーの利用を推奨するものではなく、記載したスワップ値は取得時点のものであり随時変動します。 バックテスト結果は過去データに基づくものであり、将来の利益を保証するものではありません。FX取引には元本割れのリスクがあります。 図表はすべて実測データからPythonで再描画したものであり、生成AIによる作画は含みません。