条件を固定した戦略検証
条件をそろえてバックテストを比較する
結果を見る前に市場、データ、ルール、コスト、サイズ、約定仮定を固定し、比較可能な実験にします。
要点
二つの実行が同じ問いに答えるのは、銘柄、提供元、時間足、期間、売買方向、エントリー、決済、初期資金、ポジション size、手数料、スリッページ、損切り、利確、確定足ルールが同じときだけです。予定外の違いがあれば、成績表を並べても同じ実験ではありません。
良い比較では、結果を見る前に宣言した変数を一つだけ変えます。たとえば同じBTCUSDT 1時間足EMA(9/21)にRSI(14)>50を加える比較です。ETHや別期間の実行を同じ順位表に混ぜません。
研究の背景
TradingViewは銘柄、期間、入力、資金、手数料、スリッページ、証拠金、ブローカーエミュレーターの仮定を表示します。どれも取引列を変えるためです。scikit-learnのTimeSeriesSplitは時間順序を保ち、検証の前にギャップを置けます。
指標は、ある戦略・データセット・約定設定の条件付き結果です。エクスポージャーやcandle数が違う実行の高い収益率は、規則が優れている証拠ではありません。最初にフィンガープリントを照合し、その後で成績を読みます。
Backtest アプリでの設定例
LFL-001を作ります。BTCUSDT、1h、2026年1月〜6月、EMA(9/21)、long、資金10,000 USD、size 2%、SL 2%、TP 4%、手数料 0.10%、スリッページ 5 bps、確定足シグナルです。実行を保存します。
LFL-002として複製し、RSI(14)>50だけを追加します。結果を開く前に変更理由を書きます。提供元、足数、日付境界、engine versionが変わった場合は、別のcomparison groupに分けます。

結果の読み方
まず足数、期間、方向、コスト、サイズ設定、決済方式、規則フィンガープリントが一致するか確認します。次に取引、エクスポージャー、純損益、プロフィットファクター、平均R、ドローダウン、連敗、最大取引への依存を一緒に読みます。
filterでドローダウンが下がってもsampleも減ることがあります。win 比率が上がってexpectancyが下がることもあります。取引-offを明示し、候補を見る前に合格/不合格条件を決めます。
よくある誤り
- 異なる銘柄・時間足・期間を順位付けする
- エントリー、cost、sizeを同時に変える
- 初期資金が違うpercentageを混ぜる
- 欠落 candle、timezone、engine差を無視する
- 収益率だけで勝ち取引を決める
- 失敗したtrialを消す
実践チェックリスト
- 反証可能な仮説とgroup IDを書く
- market、提供元、時間足、期間を固定する
- rules、size、コスト、損切り、利確を固定する
- 予定した変数を一つだけ変える
- 成績より先にフィンガープリントを確認する
- sample、ドローダウン、プロフィットファクター、Rを同時に読む
- 外れ値と失敗も保存する
- 後のホールドアウトで再確認する
リスクに関する注意
Like-for-like比較は研究上の混同を一つ減らすだけで、安全性や将来収益を保証しません。Backtestは教育・研究用であり、金融助言、ブローカー、取引所、約定 serviceではありません。スプレッド、ギャップ、流動性、部分約定、遅延、資金調達料、regime変化により実損失はシミュレーションを上回り得ます。
関連ガイド
結果を見る前に市場、データ、ルール、コスト、サイズ、約定仮定を固定し、比較可能な実験にします。
調査資料
iOS 版 Backtest Trading
iPhone で検証を続ける
同じ設定を再実行し、各シミュレーション取引と戦略の根拠をアプリに保存できます。
App Store でダウンロード