5 分足の合図を 1 分足に写すとき、4 分の先読みが紛れ込んだ
5 分足で決まる合図を、1 分足の細かい表に書き写して検証していました。その書き写し方に、未来の値を使ってしまう誤りがありました。気づきにくく、成績を良く見せる方向にだけ効く種類の誤りです。
何が起きたかWHAT HAPPENED
M5 の 10:00 の足は 10:00〜10:04 の 5 本の 1 分足から成り、終値が決まるのは 10:05。修正前はその足のシグナルを 10:00 の 1 分足から有効にしていたので最初の建玉は 10:01 (4 分早い)、修正後は 10:05 の 1 分足から有効で最初の建玉は 10:06 になる。 (当サイト実測 / 出典 / 2026-10-21)
5 分足の合図は、その 5 分が終わって終値が出るまで分かりません。修正前の版は、まだ分からないはずの合図で取引していたことになり、合図を生んだ値動きそのものを利益として数えていました。
直した後の成績AFTER THE FIX
修正後、MTF ダウ合流ショート (mtfdow) を M1 の時間軸に載せて測ると、GBPJPY 24 年・保有 500 分で母集団平均との差は +1.9892bp (n=1,417、t=+1.375、80% 検出限界 4.05bp) だった。 (当サイト実測 / 出典 / 2026-10-21)
M1 に載せ替えず M5 の時間軸のまま測った mtfdow は +2.3299bp (n=1,413、t=+1.605) で、修正後の M1 版 +1.9892bp と近い。 (当サイト実測 / 出典 / 2026-10-21) 書き写しをしない測り方と近い値になったことが、直した版を正しいと判断した根拠です。
同じ誤りを繰り返さないためにPREVENTION
- 同じ研究の上位足フィルタ (4 時間足・日足・週足の 200EMA、4 時間足 RSI) は、どれも『足の開始時刻 + 足の長さ』(confirm_time) 以降にだけ使う形で 1 分足に結合している。 (当サイト実測 / 出典 / 2026-10-21)
- バグのあった関数 m5_signal_to_m1 (M5 シグナルを 1 分足に載せる処理) には単体テストが無い。既存の先読みテスト (データを途中で切っても過去の値が変わらないか) は、スイングの判定 structure_bias だけを対象にしている。 (当サイト実測 / 出典 / 2026-10-21)
直しただけでなく、「書き写した後の時刻が、足の確定より前にならないこと」をテストとして固定するのが次の一手です。
Pine Script で同じことが起きる場面IN PINE SCRIPT
TradingView の Pine Script でも、上位足の値を下位足のチャートで使うときに同じ種類の誤りが起きます。上位足の値を取り込む関数で、確定前の足の値まで過去の足に当てはめてしまう設定にすると、過去のチャートの上では「未来が見えている」状態で計算されます。バックテストの成績が実際より良く見えるのに、リアルタイムでは同じようには動きません。確定した足の値だけを使う書き方にしているかを、まず確かめてください。
この結果から言えること・言えないことWHAT THIS DOES NOT SHOW
- 言えること: 長い足の合図を短い足で使う処理に、足が閉じる前の時刻から使う誤りがあり、直すと成績は書き写しをしない測り方と近い値になった。
- 言えないこと: 先読みで成績が何倍になったかは言えません。修正前の値が再現できていないからです。また、この 1 つの手法・この保有期間に限った話です。
自分で同じ点検をするにはTRY IT YOURSELF
先読みは、長い期間を細かい足で確かめるほど影響が見えやすくなります。どのプランで何本まで遡れるかは、TradingView の無料プランで、バックテストはどこまでできるかにまとめました。
検証の数値と条件の要約: lookahead-bug.json。内容は投資助言ではありません。過去の検証結果は将来の成績を保証しません。
最終更新日: