Articles

2026-08-19 公開 / やらかした話

売買ルールを自分で検証するとき、測る前に決めておく3つの基準

価格データを毎日取得して、決めたルール通りに売買したらどうなるかを記録する仕組みを作りました。3か月回して、約35通りのルールのうち1つも有意水準に届きませんでした。これは失敗談ですが、途中で何度も「良い数字」が出ています。その数字が何を確かめると消えたのか、順番に書きます。同じ検証をこれから作る人が、同じ3か月を使わずに済むように。

この記事は検証手法の話で、特定の銘柄や商品の売買を勧めるものではありません。投資判断はご自身の責任でお願いします。筆者は金融商品取引業の登録事業者ではありません。

最初に出た「良い数字」

作ったのは、ルールを定義して、過去の価格データを流し込み、1回あたりの平均損益・勝率・累計を出す仕組みです。ルールは「こういう条件の日に買って、何%下がったら切り、何%上がったら利確する」という形で書きます。

最初の検証で、3つのルールが1回あたりプラス0.15〜0.23%という数字を出しました。74回分の記録があり、勝率も損益分岐点を上回っています。ここで止めていたら「見つけた」と思ったはずです。

確かめ1: 利益はどこから出ているか

成績を銘柄ごとに分解しました。これが一番効きました。

つまり「ルールが効いている」のではなく、たまたまその期間に強く動いた数銘柄を拾っていただけでした。ルールの性質ではなく、期間の性質です。

さらに、候補にする銘柄の幅を広げてみました。上位10銘柄から上位30銘柄に広げただけで、1回あたり +0.224% が +0.002% に落ちました。ほぼゼロです。効果が候補の切り方にここまで依存するなら、それは効果ではありません。

確かめ2: 74件は74件ではなかった

もう1つ、記録の件数そのものに落とし穴がありました。

候補にしていた銘柄群は、毎日ほぼ同じ顔ぶれです。同じ相場つきの日には、同じような銘柄が同じように動きます。74件の記録は、74回の独立した観測ではありません。実質はもっと少ない。

為替のほうでも同じ問題が出ました。14通貨ペアを測っていたのですが、そのうち7本が円がらみのペアです。円が全面高になった日は、7本が揃って同じ方向に動きます。ペアごとに個別に検定すると、同じ1つの出来事を7回数えることになり、有意性が水増しされます。

直し方は単純で、全ペアを等加重で持ったときの日次の損益系列を1本作って、そこで検定するようにしました。これで「独立した観測の数」が実態に近づきます。数字は当然、下がりました。

確かめ3: 測る前に判定基準を書いておく

ここが記事の中心です。約35通りのルールを試すなら、「プラスが出たかどうか」で判断してはいけません。35回コインを投げれば、何かは必ず表が続きます。

そこで、測る前に3つの基準を紙に書いてから流しました。

1. 用量反応があるか

パラメータを少しずつ動かしたとき、効果が滑らかに増えたり減ったりするかを見ます。本物の効果には傾きがあります。

逆に、1点だけ突出していて、その両隣がゼロかマイナスなら、それはノイズの形です。実際、私の検証で最も成績が良かった設定はまさにこの形をしていました。前後の設定は負けていて、その1点だけが勝っている。「最適なパラメータを見つけた」ではなく「パラメータを当てにいった」と読むべきものでした。

2. 期間を前半と後半に割って、符号が一致するか

全期間で平均を取ると、前半の大勝ちが後半の負けを隠します。半分に割って、両方でプラスかどうかを見ます。片方だけで稼いでいるなら、それは市場環境が変わっただけです。

3. 有意性の閾値を先に決めておく

私は t 値の絶対値が 2 を超えることを条件にしました。数字そのものより、測る前に決めておくことが重要です。あとから決めると、出た数字に合わせて基準のほうが動きます。

結果は、35通り試して1つも |t| > 2 に届きませんでした。ここは強調したいところで、偶然だけで動いていても、35通り試せば普通は2つくらいは基準を超えます。それすら出なかった。これは「弱い効果が見つからなかった」ではなく、「何も無い」と読むのが正しい結果です。

コストで結論の符号が変わるなら、それは効果ではない

売買には手数料と、注文が想定した値段からずれる分(スリッページ)がかかります。私はこれを2通りの仮定で計算しました。片道0.10%と、片道0.20%です。

この2つで、最終的な損益の符号が反対になりました。楽観的な仮定ならプラス、現実的な仮定ならマイナス。

ここから引き出せる基準は、はっきりしています。コストの仮定の幅より小さい「効果」は、無いのと同じです。効果を精密に測る前に、自分が払うコストの幅を先に測っておくと、測る価値のない領域が最初から分かります。

いちばん皮肉だった結果

為替でトレンドを追う手法を試したとき、ある通貨ペアで期間全体で +34.6% という成績が出ました。単体で見れば成功です。

ところが、同じ期間、何もせずただ持っていた場合が +45.8% でした。

トレンドを取りにいって、トレンドそのものに負けています。しかも最も大きくトレンドした3つのペアでは、軒並みマイナスでした。細かく売買した分だけ、往復のたびに削られていたわけです。

成績を「プラスかどうか」で見ていると、この負けは見えません。比較対象を置いて初めて見えます。何もしなかった場合、あるいは市場全体の平均を、必ず横に並べて測る。ここを省くと、相場に乗っただけの結果を自分の実力だと誤認します。

持ち帰れること

これから同じような検証を作る人が、最初にやると効く順に並べます。

まとめ

3か月かけて出た結論は「取れるものが無い」でした。数字としては何も残っていません。

ただ、途中で何度か「見つけた」と思う瞬間があり、そのたびに上のどれかで消えています。消し方を先に用意していなかったら、たぶん今も見つけたと思っていました。

検証の仕組みを作るとき、つい「成績を計算する部分」を丁寧に作ります。実際に効いたのは、出た成績を疑う部分のほうでした。分解する、独立性を数える、基準を先に書く。この3つは計算式より地味ですが、これが無い検証は、時間をかけた分だけ強く自分を納得させてしまいます。