「株テック | Kabutech Lab.」は、日本株トレードを初心者向けに解説するメディアです。

ツールの使い方や考え方、環境構築方法を学ぶ場として、主に以下の内容を解説しています:

  • TradingViewを使ったバックテスト・ストラテジーの実践情報
    (プログラミング知識がなくても始めやすい検証ツールです)
  • 三菱UFJ eスマート証券のkabu APIを使った環境構築
    (日本株の発注が可能な数少ないAPI接続サービスです)

バックテストは自作プログラム(Pandasなど)で応用可能、発注は他の証券会社のRSSなどでも対応できます。
特定の証券会社やツールを強く推奨するものではありません。

以下の点にご留意ください:

  • 個別銘柄の売買や投資判断の助言は行いません。
  • サンプルのストラテジーやコードは学習・検証用の参考資料であり、実際の売買や利益を保証しません。
  • バックテストは過去データに基づく結果であり、将来の成果を保証しません。
  • 自動売買環境はエラーハンドリングと十分な整備が必須です。
  • 市場変動、システム障害、予期せぬ遅延やエラーなどのリスクがあります。

投資はあくまで自己責任です。リスクを理解して慎重に取り組んでください。

当サイトでは一部アフィリエイト広告を利用しています (プライバシーポリシー)。

ご質問はこちらまでお気軽にどうぞ。

カーブフィッティングの罠 | 過剰最適化を避ける戦略検証の視点

更新情報

STEPを刷新しました(📘 新構成は無料公開・旧版購入者様特典あり)

これまで有料で展開していた解説を、より分かりやすく、より実践的に全面リニューアルしています。

📢 旧シリーズをご購入いただいた方へ
これまで多くのフィードバックをお寄せいただき、誠にありがとうございます。
旧版をご購入いただいた皆様には、環境構築に関する優待特典をご用意しております。

特典の受け取り方法や詳細は、下記の案内ページをご確認ください。
👉 (FO) 環境構築・優待特典のご案内

📊 【TradingView ストラテジーテスター活用】カーブフィッティングの罠と過剰最適化を避ける戦略検証法

前回 までで、 バックテスト の基礎知識( 勝率 PF 期待値 ・ペイオフレシオなどの主要指標の見方) は完了しました。

ただし、 バックテスト の指標が良くても、実際の運用では結果が伴わないことがあります。
これは、戦略が過去データに過剰に最適化されてしまう「 カーブフィッティング 」の影響による場合が多く、実際の運用ではまだ十分に堅牢とは言えません。

今回はさらに発展して、 カーブフィッティング の問題と回避方法を解説します。

📌 本記事を理解すれば、 バックテスト の「落とし穴」を回避できるようになり、実運用に近い堅実な戦略検証ができるようになります。

TradingView は初心者でも扱いやすく、作成した売買ルールは ストラテジー テスター ですぐに バックテスト 可能です。
まだ TradingView のアカウントをお持ちでない方は、まずはこちらから無料登録を済ませましょう。
👉【無料で始める】TradingView 公式サイトはこちら

👥 この記事は誰向け?

  • バックテスト の基礎( 勝率 PF など)を理解した人
  • 自作の ストラテジー を最適化して使いたいが、 過剰最適化 が不安な人
  • 「テスト結果では勝ってるのに、実運用では負ける」原因を知りたい人

📖 この記事でわかること

  • カーブフィッティング 過剰最適化 )の正体と問題点
  • トレード回数と統計的根拠( 標準偏差 )による安定性の判断方法
  • 個人でも実践できるアウト・オブ・サンプル検証の手順
  • フォワードテストで実運用に近づけるプロセスと注意点

❓ カーブフィッティングとは?

  • 定義:過去データに過剰に最適化された戦略
  • 問題点 バックテスト 上はパーフェクトでも、実運用では成績が悪化する
  • :移動平均の期間や RSI 閾値を細かく調整しすぎた結果、特定の過去期間でのみ 勝率 100%

聖杯は存在しない

「過去 チャート にピッタリ合う魔法の戦略(いわゆる聖杯)」は存在しません。 手法の条件を必要以上に複雑化し、過去 チャート に合わせすぎると、 過剰最適化 カーブフィッティング が起こります。

⚠️ カーブフィッティングの典型パターン

  • パラメータが多すぎる
  • 条件分岐が複雑すぎる
  • 過去の極端な値に依存しすぎる

🔄 過剰最適化の改善と対応ポイント

つまり大事なのは、局所的な値に合わせすぎず、 再現性 のあるパターンに沿ってパラメータを調整することです。

再現性のあるパターンとは?

⭕️ OK な例(傾向ベース)

  • ゴールデンクロス → 過去にも何度も上昇した傾向
  • サポート ライン レジスタンス での反発 → 過去複数回同様の動き
  • 一定の時間帯や ボラティリティ レンジ 相場になりやすい

❌️ NG な例 (単発事例ベース)

  • 前日で-100 円で反発したので、-100 円で逆張り エントリー
  • 前回決算で連続ストップ高だったので決算前に エントリー

💡 要するに、「単発の現象ではなく、繰り返し起きている構造を拾うことが重要」ということです。

シンプル戦略との比較

  • 複雑すぎる戦略は過去データへの過剰適合の可能性あり
  • 単純な戦略と比較して安定性やフォワードとの乖離を確認

💡 過去に合わせすぎた戦略は、未来ではまったく役に立たない「過去専用」の戦略になりやすく、
傾向やパターンに基づく判断が、未知の相場でも 再現性 のある戦略につながります。単発事例に依存すると、未来では通用しません。

🔍 過剰最適化とトレード回数の重要性 | 信頼性を高めるための統計的考え方と相場との適応性

過剰最適化 のリスクを減らすためには、まず 十分なトレード回数を確保する ことが基本です。
ただし、古いデータで検証を重ねても 今の相場との適用性が乖離 してしまうこともあります。

📌 まず結論

直近データですくなくとも 100回以上(理想は1000回)のトレードを検証する

→ 実務的で 再現性 が高く、統計的にも十分信頼できる方法です。

スタイル 検証対象期間の目安 必要トレード回数 運用の考え方
スキャルピング 3ヶ月〜1年 500回〜 回転率で優位性を早期判断。数より「滑り」の影響を重視
デイトレード 半年〜2年 200〜500回 直近の構造変化をカバー。TVの標準プランでも現実的なライン
スイング 2年〜5年 100〜300回 回数より「異なる地合い(上昇・下落・横ばい)」の網羅を重視

⚠️※あくまで目安であり、筆者の個人的なおすすめです。
根拠は以下で説明しますが、戦略や時間軸によって適切な回数・期間は変わります。
ご自身のスタイルに合わせて調整してください。

📐 トレード回数による「信頼性の目安」

そこで、下記は トレード回数に応じた “統計的な信頼度” の目安 です。

トレード回数 信頼度 運用アクション(リスク管理)
500回以上 ★★★★★ 統計的にも非常に強固 。本命の柱。
300〜500回 ★★★★☆ 実運用推奨。標準的な合格ライン。DD更新時のルールを決めて稼働。
150〜300回 ★★★☆☆ 小資金〜中規模で開始。直近相場への適合を確認しつつ、並行して多銘柄検証。
50〜150回 ★★☆☆☆ テスト運用(1枚・最小単位)。今の地合いに合っているか「足場を固める」段階。
50回以下 ★☆☆☆☆ プロトタイプ。フォワードテスト(デモ運用)で再現性を確認中。

✅️ これは「筆者が戦略を検証・運用してきた中での実務的な目安」です。 絶対値ではなく、「判断の基準」として使ってください。

標準偏差と標準誤差

統計的には 標準偏差 や標準誤差 を用いて裏付けることができます。

標準偏差 (1σ ≒ 68%)

1 回のトレード損益にはブレがあり、 勝率 や平均リターンは偶然の影響を受けます。 バックテスト の結果は繰り返すことで 標準偏差 に近いばらつき を示します。

・標準誤差(SE)

標本平均のばらつきを表します。 サンプル数が多いほど、合計損益のブレは小さくなります。

サンプル数 n 1σ(標準誤差) 2σ(標準誤差)
10 回 ±31.6% ±63.2%
100 回 ±10% ±20%
1,000 回 ±3.16% ±6.32%

📊 トレード回数と損益のばらつき目安表

戦略や時間軸によって必要なトレード回数は異なります。
以下は「固定 RR」と「変動 RR」の場合に、トレード回数ごとにどれくらい損益がブレるかを数値で示した例です。

💡 リスクリワード (RR)とは? トレード 1 回あたりの「リターン(利益)」と「リスク(損失)」の比率を表す指標です。
例えば、 エントリー から:+200 円で利益 / -100 円で 損切り の場合、 リスクリワード 比は 200 ÷ 100 = 2.0 になります。
RR が大きいほど「1 回勝った時の利益が大きい」=有利なトレード条件になりますが、 その分「 勝率 が下がる傾向」もあるため、 勝率 と RR のバランスが重要です。

🔹 固定 RR

  • 勝率 50%
  • 勝ち +200 円 / 負け -100 円( リスクリワード 比固定= 2.0)
  • 平均リターン 50 円
  • 1 トレード 標準偏差 ≒ 150 円 相当
  • ペイオフレシオ = 2.0
トレード数 n 平均合計損益 1σ(68%) 2σ(95%) 説明
10 回 500 円 500 ± 474 円 → 26 ~ 974 円 500 ± 948 円 → -448 ~ 1,448 円 ブレが大きく、1 セットでは総損益がマイナスになる可能性も普通にある
100 回 5,000 円 5,000 ± 1,500 円 → 3,500 ~ 6,500 円 5,000 ± 3,000 円 → 2,000 ~ 8,000 円 合計のブレは増えるが、平均 1 トレードあたりのブレは小さくなる
1,000 回 50,000 円 50,000 ± 4,743 円 → 45,257 ~ 54,743 円 50,000 ± 9,486 円 → 40,514 ~ 59,486 円 合計のブレはまだ数千円残るが大量トレードでは平均に近づく

※注:本表は「手数料等は考慮せず」「各トレードは独立」と仮定した近似計算です。
小サンプル(特に n=10)では正規近似が崩れる可能性がある点にご注意ください。

🔹 変動 RR

  • 勝率 :50%
  • 勝ちの平均:+200 円、ばらつき ±200 円 ( リスクリワード 比が変動)
  • 負けの平均:-100 円、ばらつき ±200 円 ( リスクリワード 比が変動)
  • 平均リターン:+50 円/トレード
  • 1 トレード 標準偏差 ≒ 250 円
  • ペイオフレシオ = 2.0
トレード数 n 平均合計損益 1σ(68%) 2σ(95%) 説明
10 回 500 円 500 ± 791 円 → -291 ~ 1,291 円 500 ± 1,582 円 → -1,082 ~ 2,082 円 1 セットでは ±160%くらいのブレもあり得る
100 回 5,000 円 5,000 ± 2,500 円 → 2,500 ~ 7,500 円 5,000 ± 5,000 円 → 0 ~ 10,000 円 平均に近づくが、まだ一時的な大幅マイナスもあり得る
1,000 回 50,000 円 50,000 ± 7,906 円 → 42,094 ~ 57,906 円 50,000 ± 15,813 円 → 34,187 ~ 65,813 円 変動 RR のため合計ブレは大きめだが大数の法則で平均に収束する

⚠️  逆に多ければ良いという訳ではない

ここまでの統計的裏付けは理論上の話で、 回数を増やすほど平均の精度は上がりますが、過去データが多すぎると逆に今の相場の動きとはかけ離れる場合もあります。
なので直近データも重視しつつ、十分なサンプル数を確保するのがベストです。

📌 市場は「定常過程」ではない

  • 物理やサイコロと違い、金融市場は時間とともに分布が変化する( 非定常性 )。
  • 勝率 リスクリワード が数年で変わることも普通。
  • 2000 年の相場と 2025 年の相場では ボラティリティ や市場参加者が異なる。

👉 つまり、データは「古すぎてもダメ・直近すぎてもサンプル不足」になりがち。 適切なサンプル期間を選ぶことが信頼性に直結します。

精度と適応性はトレードオフ

  • サンプルを増やすと統計としての精度は上がるが、相場の古いクセを混ぜ込んでしまう
  • 直近に絞ると相場に適応できるが、サンプル数不足で統計的に不安定

まとめ

まずは、 TradingView で直近 1〜2 年のデータを抽出し、 トレード回数 100 回分以上の検証をしてみましょう。

📖 成績を確認できたら | アウト・オブ・サンプルで再現性を確認

バックテスト で 十分な回数のトレードで安定性を確認できたら、次のステップは「 過剰最適化 を防ぐ検証」です。
言い換えると、検証結果をさらに検証する段階に移ります。

本格的な手法として「ウォークフォワード法」といった方法もありますが、個人(特に非エンジニア)で実践するのは現実的ではありません。

ウォークフォワード法とは

  • クオンツシステムでも利用される本格的な手法
  • 一定期間のデータで最適化 → 別の期間で検証 → これを繰り返すことで 過剰最適化 を防ぐ

📌 個人でもできるアウト・オブ・サンプル検証

そこで今回は、個人でも実践しやすい アウト・オブ・サンプル法 をご紹介します。 TradingView の直近データを使い、シンプルに分割して検証する方法が実践的です。

🧩 具体的には以下のステップを意識します:

  1. 約 200 回分のトレード結果を用意
  2. データを 2 分割に分ける
    • 最適化用データ(イン・サンプル) = 前半の 約 100 回
    • 検証用データ(アウト・オブ・サンプル) = 後半の 約 100 回
    • ※回数は目安。厳密でなくても、期間で半分に分ければ問題なし
  3. イン・サンプルでパラメータ最適化・取得
  4. アウト・オブ・サンプルで運用結果を確認
    • 取得したパラメータを使い、後半 1,000 回で成績を検証

アウト・オブ・サンプルの運用結果がプラスで、かつインサンプルの成績と大きく乖離していなければ、 カーブフィッティング しておらず、直近相場でも通用する最適化されたパラメータである可能性が高いと言えます。

💡 要は最適化に使っていない別データで確認することです。こうすることで「机上の空論」ではなく、実際に個人でも運用に耐えるレベルの検証サイクルが作れます。

ここまで検証できれば、いよいよ 実運用に近いステップ に入ります。

具体的には、直近の 100 回(=後半の 100 回)を利用して、最適化して得られたパラメータ取得・利用して成績を確認します。

この段階は「フォワードテスト」と呼ばれ、 バックテスト からさらに一歩進んで、 戦略が直近の相場でも 再現性 を持つかを確認する工程です。 (※最もシンプルなのは、小資金で実際に売買して検証する方法です)

✅ まとめ|カーブフィッティングを避けるために

  • カーブフィッティング とは
    • 過去データに合わせすぎた 過剰最適化 のこと。
    • バックテスト 上は優秀でも、実運用では通用しない最大の原因になりやすい。
  • 再現性 のあるパターンを意識する
    • 単発の事例ではなく、過去の傾向やパターンに沿った条件を重視する。
    • → 未知の相場でも戦略が再現しやすくなる。
  • 直近データで十分なトレード回数を検証
    • トレード回数が少ないと偶然の影響でブレが大きくなる。
    • 目安:直近 100 回以上(スキャル・ デイトレ スイング に応じて調整)。
  • アウト・オブ・サンプル検証
    • データを前半(イン・サンプル)/後半(アウト・オブ・サンプル)に分割
    • イン・サンプルで最適化したパラメータを後半で検証 → 別データで確認することで、机上の空論ではなく実務でも耐えうる戦略かチェックできる
  • フォワードテストで実運用に近づける
    • アウト・オブ・サンプルで得られたパラメータを直近相場で試す
    • デモ口座や小資金での実運用がおすすめ → バックテスト と直近相場の乖離を確認でき、実運用に耐えられるかを評価可能
  • データ期間の選び方はトレードオフ
    • 古すぎるデータ → 現在の相場と乖離
    • 直近だけ → サンプル不足で統計的に不安定 → 精度と適応性のバランスを意識して選択する

💡 要は「理論値だけに頼らず、統計的に信頼できるサンプルと直近相場での検証を組み合わせる」ことが、堅実な戦略構築のカギです。

🔜 「バックテストと現実のギャップ」へ

ここまでで 過剰最適化 を避ける戦略検証法 を整理しましたが、実運用に移すにはもう一歩必要です。 バックテスト の結果はあくまで「理論値」であり、実際のトレードでは スリッページ ・取引コスト・ 約定 タイミングのズレ といった“現実の壁”が必ず存在します。

次回は以下を解説します:

👉 バックテストと現実のギャップ|スリッページ・取引コスト・約定ズレの影響

これを理解することで、よりリアルに近い戦略評価ができるようになります。

🧭 はじめての方へ:基礎 → 実践 → 設計 → 検証 → 理論。最短で再現性に辿り着くためのロードマップ
👉️ Kabutech Lab.のおすすめの進め方

戦略設計 ステップ一覧

本シリーズは、バックテストの基礎から堅牢な設計まで実践的に学べる構成です。
STEP1: データ準備 → STEP2: シンプル戦略検証 → STEP3以降: 応用・最適化

📈 【無料】テクニカル分析

テクニカル指標をTradingViewで実践活用

詳しく見る

🛠️ 自動売買の構築

TradingView, kabu API を使った環境構築

詳しく見る

📊 戦略設計

戦略を検証し、改善するための手法と実装

詳しく見る

🔧 ストラテジー作成

Pineスクリプトでの戦略実装をガイド

詳しく見る

📦 システム拡張

Slack連携/プロセス監視で安定・拡張

詳しく見る
FO 日本株自動売買
背景画像
「戦略が、自律する。」