バックテストで騙される典型例と実戦で使える検証の作り方

システムトレード

バックテストは、過去の相場データを使って売買ルールの有効性を確認する作業です。個人投資家にとっては非常に強力な武器になります。なぜなら、感覚や雰囲気で売買するのではなく、「この条件で買い、この条件で売った場合、過去にはどのような結果になったのか」を数字で確認できるからです。

しかし、バックテストには大きな落とし穴があります。最も危険なのは、バックテスト結果が良いだけで「この戦略は勝てる」と錯覚することです。実際には、過去データ上では右肩上がりの損益曲線を描いていても、実運用に入った途端に損失が続くケースは珍しくありません。これは、バックテストそのものが無意味という話ではありません。問題は、バックテストの使い方を間違えると、存在しない優位性を本物だと誤認してしまう点にあります。

本記事では、バックテストで騙される典型例を具体的に整理し、個人投資家が実戦で使える検証に近づけるための考え方を解説します。単に「過去成績が良かったか」ではなく、「なぜその成績になったのか」「将来も再現される可能性があるのか」「実際に注文したら同じように約定できるのか」まで踏み込んで考えることが重要です。

スポンサーリンク
【DMM FX】入金

バックテストは未来を当てる道具ではなく、仮説を壊す道具です

最初に押さえるべきことは、バックテストは未来の利益を保証するものではないという点です。バックテストは「このルールが過去の市場環境では機能したか」を確認する道具であり、未来の相場でも同じように利益が出ると約束するものではありません。

多くの投資家は、バックテストを「勝てる手法を探す作業」と考えます。もちろん、それ自体は間違いではありません。しかし、より実践的に考えるなら、バックテストは「自分の投資アイデアがどの条件で壊れるかを調べる作業」と見るべきです。利益が出た期間だけを見て満足するのではなく、負けた時期、機能しなかった相場、ドローダウンが深くなった場面を確認することに価値があります。

たとえば、移動平均線のゴールデンクロスで買い、デッドクロスで売る戦略を検証したとします。上昇トレンドが長く続いた期間では良い結果が出やすい一方、レンジ相場では売買が頻発し、小さな損失を何度も重ねることがあります。バックテストで全期間の最終利益だけを見ると優秀に見えても、実際には特定の相場環境に強く依存している可能性があります。

このように、バックテストでは「儲かったか」よりも「どんな時に儲かり、どんな時に負けたか」を見る必要があります。利益の発生源を理解できない戦略は、将来その利益が消えた時に対応できません。

典型例1:カーブフィッティングで過去だけに最適化してしまう

バックテストで最も多い失敗がカーブフィッティングです。これは、過去データに合わせすぎた結果、見かけ上は高成績でも、将来の相場では通用しにくいルールになってしまう状態です。

たとえば、RSIが30以下で買うと成績が悪かったので、28以下、25以下、23以下と条件を細かく変えていき、最も利益が大きかった「RSIが24.7以下で買う」というルールを採用したとします。さらに、利益確定は7.3%、損切りは3.1%、保有日数は11日まで、出来高条件は25日平均の1.62倍以上というように、細かい数値を何度も調整していくと、過去データでは非常にきれいな成績が出ることがあります。

しかし、その成績は「相場の普遍的な特徴」を捉えたものではなく、「過去の偶然に合わせただけ」の可能性があります。過去の値動きにぴったり合わせたルールは、過去という試験問題の答えを見ながら作った答案のようなものです。次の試験で同じ問題が出なければ機能しません。

カーブフィッティングを避けるには、パラメータの安定性を見る必要があります。たとえば、利益確定幅を5%、6%、7%、8%、9%と変えた時、7%だけが極端に良く、他がすべて悪いなら危険です。一方、5%から9%までおおむねプラスで、7%が少し良い程度なら、その戦略にはある程度の頑健性があると考えやすくなります。

実戦で使えるルールは、少し条件を変えただけで成績が崩れるものではありません。むしろ、多少雑に設定しても期待値が大きく変わらないルールの方が信頼できます。投資においては、精密すぎる戦略ほど脆いことがあります。

典型例2:未来の情報を使ってしまうルックアヘッドバイアス

ルックアヘッドバイアスとは、本来その時点では知り得ない未来の情報を使って検証してしまうミスです。これは非常に危険で、気づかないまま混入するとバックテスト成績が大きく良く見えます。

典型的な例は、決算情報を使った検証です。たとえば「営業利益が前年同期比20%以上増加した銘柄を買う」という戦略を検証する場合、その決算情報がいつ公表されたのかを正確に扱う必要があります。3月期決算の数字は3月末時点で確定していたとしても、投資家がその内容を知るのは決算発表日以降です。それにもかかわらず、3月末時点でその情報を使って買ったことにしてしまうと、未来の情報を使った不正確な検証になります。

株価指標でも同じ問題が起こります。PER、PBR、配当利回り、ROEなどのデータを使う場合、その数値が検証時点で実際に利用可能だったのかを確認しなければなりません。現在の財務データを過去の株価に当てはめると、過去の投資家が知らなかった情報で売買したことになり、成績は不自然に良くなります。

これを避けるには、データの「利用可能日」を意識することです。決算発表日の翌営業日から使用する、月次データは公表後から使う、指数採用銘柄は当時の構成銘柄を使うなど、現実の投資家がその時点で判断できた情報だけで検証する必要があります。

典型例3:上場廃止銘柄を除外して成績が良く見える

サバイバーシップバイアスも、バックテストを歪める代表的な要因です。これは、現在も生き残っている銘柄だけを対象に検証してしまうことで、過去の成績が実際より良く見える現象です。

たとえば、現在上場している銘柄だけを対象に「小型株の長期投資戦略」を検証した場合、過去に倒産、上場廃止、吸収合併、業績悪化で市場から消えた銘柄が除外されます。つまり、最初から生存者だけを集めて検証していることになります。これでは、小型株投資の本当のリスクを過小評価してしまいます。

特に、低PBR株、赤字縮小株、低位株、テーマ株などは、失敗した銘柄が市場から消えやすい領域です。現在残っている銘柄だけを見ると、「安い時に買っておけば大きく上がった銘柄」が目立ちます。しかし、同じ条件で買っていたら、実際には上場廃止や長期低迷に巻き込まれた銘柄も存在したはずです。

個人投資家が完全な過去構成データを用意するのは簡単ではありません。それでも、検証対象が現在の生存銘柄だけになっていないかを意識するだけで、バックテスト結果の読み方は大きく変わります。特に長期検証では、現在の銘柄リストだけを使った好成績をそのまま信じるべきではありません。

典型例4:売買コストとスリッページを軽視する

バックテスト上では利益が出ていても、実運用では手数料、スプレッド、税金、スリッページによって利益が削られます。特に短期売買では、これらの影響が非常に大きくなります。

スリッページとは、想定した価格と実際の約定価格のズレです。たとえば、バックテストでは終値1,000円で買えたことになっていても、実際に翌朝注文を出すと1,020円でしか買えない場合があります。逆に売る時も、想定より安く約定することがあります。この差が積み重なると、バックテスト上の利益は簡単に消えます。

特に危険なのは、出来高の少ない小型株や急騰銘柄を対象にした戦略です。過去データ上では安値近辺で買えて高値近辺で売れたように見えても、実際にはその価格に十分な板がなかった可能性があります。100株なら約定できても、1,000株、5,000株では価格を押し上げてしまうこともあります。

検証では、最低限でも売買ごとに一定のコストを差し引くべきです。株式なら売買代金に対して0.1%から0.3%程度、流動性の低い銘柄ならそれ以上のスリッページを仮定して保守的に見る必要があります。デイトレや数日以内の短期売買では、片道0.2%のズレでも期待値を大きく変えます。

バックテストで年利20%だった戦略が、売買コストを入れると年利3%に落ちることもあります。さらにスリッページを厳しめに入れるとマイナスになるケースもあります。コスト込みで生き残る戦略だけが、実戦に近い検証対象になります。

典型例5:終値で買える前提にしている

多くのバックテストでは「終値でシグナルが出たら終値で買う」という処理が行われます。しかし、これは現実的ではない場合があります。終値が確定するのは取引終了後であり、その終値を見てから同じ終値で買うことは通常できません。

たとえば、「終値が25日移動平均線を上回ったら買う」というルールを検証する場合、終値が確定した後に買うなら、実際の注文は翌営業日の始値以降になります。それにもかかわらず、バックテストで当日終値買いにしていると、現実より有利な価格で売買したことになります。

短期戦略ほど、この差は大きくなります。特にブレイクアウト戦略では、シグナルが出た翌日にギャップアップして始まることがあります。終値1,000円で買った検証では利益が出ていても、実際の翌日始値が1,050円なら期待値が大きく低下します。

現実に近づけるには、終値で判定したシグナルは翌営業日の始値、または翌営業日のVWAPに近い価格で約定したと仮定するのが基本です。寄り付きの価格変動が大きい銘柄では、さらに保守的に「翌日始値に一定のスリッページを加える」処理が必要です。

典型例6:最大ドローダウンを軽視する

バックテスト結果を見る時、多くの人は最終利益、年利、勝率に注目します。しかし、実運用で最も重要なのは、損失が続いた時に耐えられるかです。その判断に欠かせないのが最大ドローダウンです。

最大ドローダウンとは、資産曲線のピークからどれだけ下落したかを示す指標です。たとえば、100万円が150万円まで増えた後、90万円まで減った場合、ピークからの下落は60万円です。率で見ると40%のドローダウンになります。

年利30%の戦略でも、途中で50%のドローダウンがあるなら、多くの個人投資家は継続できません。資金が半分になるだけでなく、「この戦略は壊れたのではないか」という不安に耐える必要があります。実際には、バックテスト上で50%のドローダウンがあった戦略は、将来それ以上のドローダウンを経験する可能性もあります。

重要なのは、最大ドローダウンを単なる数字として見るのではなく、自分の資金量とメンタルで耐えられるかを考えることです。100万円の運用で30万円の含み損に耐えられても、1,000万円の運用で300万円の含み損に耐えられるとは限りません。同じ30%でも、金額が大きくなるほど心理的負担は増えます。

バックテストで実戦投入を判断する場合、最大ドローダウンの1.5倍から2倍程度の悪化を想定しておくべきです。過去最大が20%なら、将来30%から40%程度の下落が起きても継続できる設計にする必要があります。

典型例7:勝率だけを見て期待値を見ない

勝率が高い戦略は魅力的に見えます。しかし、投資で重要なのは勝率ではなく期待値です。勝率80%でも、勝つ時に1万円、負ける時に10万円なら、長期的には資金が減ります。逆に勝率40%でも、勝つ時に5万円、負ける時に2万円なら、期待値はプラスになります。

バックテストでは、勝率、平均利益、平均損失、損益比率をセットで見る必要があります。勝率だけが高い戦略は、コツコツ利益を積み上げて、たまに大きく負ける構造になっていることがあります。いわゆるコツコツドカン型です。

たとえば、逆張りナンピン戦略はバックテスト上で高勝率になりやすい傾向があります。下がったら買い増し、少し戻ったら利益確定するため、多くの局面では勝てます。しかし、強い下落トレンドや悪材料による急落に巻き込まれると、過去の利益を一度に失うことがあります。

期待値を見る時は、1回あたりの平均損益だけでなく、損失の偏りも確認すべきです。過去100回の取引で利益が出ていても、その利益の大半が数回の大勝ちに依存しているなら再現性に注意が必要です。逆に、損失の大半が数回の大負けに集中しているなら、その大負けを防ぐルールを追加できるか検討する価値があります。

典型例8:検証期間が短すぎる

検証期間が短いバックテストは、偶然の影響を強く受けます。たとえば、直近1年だけで検証して好成績だったとしても、その1年がたまたま戦略に合った相場だった可能性があります。

特に、上昇相場だけで検証した買い戦略は危険です。相場全体が強い時は、多くの買い戦略が利益を出します。しかし、それは戦略の優位性ではなく、単に地合いが良かっただけかもしれません。相場全体が下落した時、横ばいになった時、急落後に反発した時にも検証する必要があります。

理想的には、上昇相場、下落相場、レンジ相場、急落相場、金融緩和局面、金利上昇局面など、複数の環境を含む期間で検証します。日本株であれば、アベノミクス相場、コロナショック、金融引き締め局面、円安局面など、異なる相場をまたいで確認すると、戦略の性格が見えやすくなります。

ただし、長ければ良いというわけでもありません。市場構造は変化します。古すぎるデータは、現在の制度、取引環境、参加者構成と違う場合があります。そのため、長期検証と直近検証を分けて見るのが実践的です。長期で大きく崩れていないか、直近でも機能しているか、この両方を確認します。

典型例9:銘柄数が少なく、偶然の大当たりに依存している

バックテストで大きな利益が出ていても、取引回数や対象銘柄数が少ない場合は注意が必要です。数回の取引だけで高リターンになっている戦略は、統計的な信頼性が低くなります。

たとえば、10年間で取引が8回しかなく、そのうち1回の大勝ちが利益の大半を占めている場合、その戦略が本当に優位性を持っているのか判断しにくいです。次に同じような大勝ちが発生しなければ、期待した成績にならない可能性があります。

小型株やテーマ株の検証では、特定の大化け銘柄が損益を大きく押し上げることがあります。これは悪いことではありませんが、その大化けを事前に選べるロジックだったのか、それとも結果的に含まれていただけなのかを確認する必要があります。

実戦に近づけるには、取引回数、勝ち銘柄の分布、利益貢献上位の銘柄を確認します。上位1銘柄や上位3銘柄を除外しても利益が残るなら、戦略の信頼性は高まりやすくなります。逆に、特定銘柄を外した瞬間に成績が崩れるなら、その戦略は偶然の影響が大きいと考えるべきです。

実戦で使えるバックテストに近づける手順

ここからは、個人投資家がバックテストを実戦で使える形に近づけるための具体的な手順を整理します。

手順1:先に投資仮説を言語化する

まず、検証する前に「なぜその戦略で利益が出ると考えるのか」を文章で書き出します。たとえば、「決算後にギャップアップし、その後5日移動平均線を割らない銘柄は、機関投資家の継続買いが入りやすく、短期的な押し目買いが機能しやすい」という仮説です。

この仮説がないまま数値条件だけをいじると、カーブフィッティングに陥りやすくなります。仮説があれば、検証結果が良かった時も悪かった時も理由を考えられます。バックテストは、数字遊びではなく仮説検証です。

手順2:売買ルールを誰が見ても同じになる形にする

次に、売買ルールを曖昧さのない形にします。「強そうなら買う」「雰囲気が悪ければ売る」では検証できません。買い条件、売り条件、損切り条件、保有期間、資金配分、同時保有数を明確にします。

たとえば、「終値が過去60日高値を更新し、出来高が20日平均の2倍以上で、翌営業日始値で買う。買値から8%上昇で利益確定、5%下落で損切り、どちらにも到達しない場合は10営業日後の終値で売る。同時保有は最大5銘柄、1銘柄あたり資金の20%を上限とする」という形です。

ここまで具体化すると、検証結果の再現性が高くなります。また、実運用時にも迷いが減ります。

手順3:コストと約定条件を保守的に入れる

バックテストでは、最初から売買コストとスリッページを入れるべきです。最初にコストなしで検証し、良かったものだけ後からコストを入れると、都合の良い戦略だけを選びやすくなります。

短期売買なら、片道0.1%から0.3%程度のコストを仮定するだけでも結果は大きく変わります。小型株なら、出来高に対して自分の注文サイズが大きすぎないかも確認します。1日の売買代金が5,000万円の銘柄に対して、500万円分を売買する想定はかなり重いです。実際には価格を動かしてしまう可能性があります。

手順4:アウトオブサンプルで確認する

アウトオブサンプルとは、戦略作成に使っていない期間で検証することです。たとえば、2014年から2021年のデータでルールを作り、2022年から2025年のデータで確認します。作成期間で良く、未使用期間でも大きく崩れないなら、過去への合わせすぎをある程度避けられます。

さらに実践的には、ウォークフォワード分析も有効です。これは、一定期間でルールを検証し、その次の期間で運用したと仮定して、少しずつ期間をずらしていく方法です。実際の投資では未来データを見られないため、このような時間順序を守った検証が重要になります。

手順5:パラメータを少しずつ動かして頑健性を見る

利益確定幅、損切り幅、移動平均線の日数、出来高倍率などの条件を少し変えても成績が残るか確認します。ここで重要なのは、最高成績のパラメータを探すことではありません。成績が安定している範囲を探すことです。

たとえば、損切り幅を4%、5%、6%、7%に変えて、すべて大きくマイナスなら戦略自体が弱い可能性があります。5%だけがプラスで他がマイナスなら、過去への過剰適合の疑いがあります。一方、4%から7%までおおむねプラスなら、多少の相場変化にも耐えやすい可能性があります。

手順6:負け期間を詳細に見る

バックテストで本当に見るべきなのは、勝っている期間よりも負けている期間です。いつ、どのような相場で、なぜ負けたのかを確認します。日経平均が下落していたのか、マザーズ指数が弱かったのか、金利上昇局面だったのか、決算シーズン特有の値動きだったのかを見ます。

負け方が理解できる戦略は改善できます。たとえば、地合いが悪い時に大きく負けるなら、指数が200日移動平均線を下回っている時は新規買いを停止するルールを追加できます。急落相場で損切りが遅れるなら、ボラティリティ上昇時だけポジションサイズを半分にする方法もあります。

逆に、なぜ負けたのか説明できない戦略は危険です。原因が分からなければ、実運用で同じ損失が起きた時に継続すべきか停止すべきか判断できません。

具体例:ブレイクアウト戦略を検証する場合

具体例として、長期ボックスを上放れした銘柄を買うブレイクアウト戦略を考えます。単純な条件は次のようになります。

「過去60営業日の高値を終値で更新し、当日の出来高が20日平均出来高の2倍以上になった銘柄を、翌営業日始値で買う。買値から10%上昇で利益確定、5%下落で損切り、20営業日経過で手仕舞いする」

この戦略を検証する時、まず見るべきは最終利益ではありません。次のような点を確認します。上昇相場だけで利益が出ていないか。急落相場ではどれくらい負けるか。出来高の少ない銘柄に利益が偏っていないか。翌日始値で買った時も利益が残るか。利益確定幅を8%や12%に変えても成績が大きく崩れないか。損切り幅を4%や6%に変えても期待値が残るか。

さらに、実運用を想定するなら、同時にシグナルが多発した場合の優先順位も決める必要があります。売買代金が大きい順に買うのか、値上がり率が高い順に買うのか、時価総額が小さい順に買うのかで成績は変わります。ここを曖昧にすると、バックテストと実運用が一致しません。

また、ブレイクアウト戦略では地合いフィルターが重要になることがあります。たとえば、TOPIXや日経平均が25日移動平均線を上回っている時だけ新規買いする、または新興市場指数が弱い時は小型株の買いを控えるなどです。このようなフィルターを入れると取引回数は減りますが、大きなドローダウンを抑えられる場合があります。

バックテスト結果を見る時のチェックリスト

バックテスト結果を見た時は、最低限以下の点を確認します。

第一に、最終利益だけでなく最大ドローダウンを見ることです。資産曲線が右肩上がりでも、途中で耐えられない下落があるなら実運用には向きません。

第二に、取引回数を見ることです。取引回数が少なすぎる場合、偶然の影響が大きくなります。特に数十回未満の検証では、成績を過信しない方が安全です。

第三に、利益の偏りを見ることです。特定の期間、特定の銘柄、特定の1回のトレードに利益が集中していないか確認します。

第四に、コスト込みで利益が残るかを見ることです。手数料やスリッページを入れても期待値が残る戦略でなければ、実運用では厳しくなります。

第五に、パラメータを少し変えても成績が残るかを見ることです。最高値だけを追いかけると、過去に合わせただけの戦略を選びやすくなります。

第六に、実際に注文できるかを見ることです。流動性が低い銘柄、寄り付き直後の急変、ストップ高付近の売買などは、バックテスト通りに約定できない可能性があります。

個人投資家がやりがちな危険な判断

個人投資家が特にやりがちな危険な判断は、「バックテストで右肩上がりだから資金を一気に投入する」ことです。どれだけ検証しても、実運用では想定外が起こります。最初は小さな資金で運用し、バックテストと実績のズレを確認するべきです。

もう一つ危険なのは、実運用で数回負けただけでルールを変えることです。バックテスト上で10連敗があり得る戦略なら、実運用で5連敗しても異常ではありません。しかし、その前提を理解していないと、負けが続いた瞬間にルールを変更し、逆に成績を悪化させます。

反対に、バックテストで想定されていない負け方をした場合は注意が必要です。たとえば、過去最大ドローダウンが15%だった戦略が、短期間で30%下落したなら、相場環境が変わった可能性や、検証条件に漏れがあった可能性があります。この場合は盲目的に継続するのではなく、戦略停止基準を事前に決めておくべきです。

バックテストを実運用へ移す時の資金管理

バックテストで一定の優位性が確認できたとしても、最初から大きな資金を入れるべきではありません。実運用では、データ取得の遅れ、注文ミス、約定ズレ、心理的負担など、検証では見えなかった問題が出ます。

実践的には、最初は想定運用資金の10%から20%程度で開始し、数十回の取引を通じてバックテストとのズレを確認します。期待値、勝率、平均利益、平均損失、ドローダウンが検証結果と大きく違わないかを記録します。

資金を増やす時も、一気に増やすのではなく段階的に行います。たとえば、3カ月運用して検証範囲内なら資金を1.5倍にする、さらに3カ月問題なければ追加するという形です。戦略そのものよりも、資金投入の速度がリスクを決めることがあります。

また、1つの戦略に依存しすぎないことも重要です。ブレイクアウト戦略、押し目買い戦略、逆張り戦略、高配当中期保有戦略など、異なる収益源を組み合わせることで、特定環境への依存を下げられます。ただし、似たような買い戦略を複数持っても分散効果は限定的です。相場下落時に全部同時に負けるなら、実質的には同じリスクを取っていることになります。

実戦で使える検証とは何か

実戦で使える検証とは、単に過去成績が良い検証ではありません。実戦で使える検証とは、負け方が見えており、コストを入れても期待値が残り、条件を少し変えても成績が崩れず、現実の注文で再現できる可能性が高い検証です。

完璧なバックテストは存在しません。どれだけ精密に作っても、未来の相場は過去と同じにはなりません。だからこそ、バックテストでは楽観的な数字よりも、保守的な前提を重視すべきです。手数料を多めに見る、約定価格を不利にする、最大ドローダウンを大きめに想定する、取引できない銘柄を除外する。このような保守的な処理をしても利益が残るなら、その戦略は検討に値します。

逆に、少しコストを入れただけでマイナスになる戦略、特定期間だけで利益が出ている戦略、パラメータを少し変えると崩れる戦略は、実運用では慎重に扱う必要があります。バックテストの目的は、都合の良い数字を探すことではありません。自分の投資アイデアが、現実の市場でどこまで耐えられるかを確認することです。

まとめ:バックテストに騙されない投資家は、結果より前提を疑う

バックテストで騙される最大の原因は、結果だけを見て前提を疑わないことです。右肩上がりの損益曲線、高い勝率、低いドローダウン、魅力的な年利。これらはすべて重要な情報ですが、前提が間違っていれば意味がありません。

未来の情報を使っていないか。上場廃止銘柄を除外していないか。終値で買える前提になっていないか。売買コストやスリッページを入れているか。取引回数は十分か。特定銘柄や特定期間に利益が偏っていないか。パラメータを少し変えても機能するか。これらを確認するだけで、危険なバックテストをかなり避けられます。

投資で必要なのは、完璧な戦略を探すことではありません。不完全な戦略を、不完全であると理解した上で、資金管理と検証を組み合わせて運用することです。バックテストはそのための地図です。ただし、地図は現地そのものではありません。地図を信じすぎる投資家は道を誤り、地図の限界を理解して使う投資家は生き残りやすくなります。

バックテストの数字に興奮した時ほど、一度立ち止まって前提を疑うべきです。実戦で利益を残すためには、派手な成績よりも、壊れにくい検証、保守的な前提、継続できる資金管理が重要です。バックテストを「勝てる証拠」として使うのではなく、「負ける可能性を事前に見つける道具」として使うことが、長く市場に残るための現実的な姿勢です。

コメント

タイトルとURLをコピーしました