wind-alice/バックテストエキスパート

取引戦略の体系的なバックテストに関する専門ガイダンスを提供します。定量的取引戦略の開発、テスト、ストレステスト、検証に使用します。バックテスト、戦略検証、ロバスト性テスト、オーバーフィッティング回避、体系的なトレード開発についてユーザーが質問した場合に適用します。

バックテストエキスパート とは?

このスキルは、トレーディング戦略のバックテストに対して、楽観的な結果よりもロバスト性を優先する専門的な方法論に基づいた体系的なアプローチを提供します。戦略を「最も壊れにくい」ものにすることを目指し、摩擦を加え、前提をストレステストし、何が生き残るかを確認することに重点を置いています。主なワークフローには、仮説の明確化、裁量のないルールのコード化、初期バックテストの実行、パラメータ感応度や実行摩擦などを含むストレステスト、ウォークフォワード分析によるサンプル外検証、構造化された評価スコアリングに基づく結果の評価が含まれます。また、Pythonベースの評価スクリプトを提供しており、5つの次元(サンプルサイズ、期待値、リスク管理、ロバスト性、実行現実性)にわたって戦略を採点し、導入/改善/破棄の判定を出力します。このスキルはClaude Code、Cursor、Codexなどの主要なAIエージェントプラットフォームをサポートしており、APIキーや外部データ依存関係は不要で、ユーザーが提供するメトリクスのみを必要とします。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wind-alice/alicemarket/tree/main/skills/backtest-expert

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

バックテストエキスパート は何をしますか?

専門的な方法論に基づいた、楽観的な結果よりもロバスト性を優先する取引戦略バックテストへの体系的なアプローチ。

コア哲学

目標: 紙面上で「最も利益を上げる」戦略ではなく、「最も壊れにくい」戦略を見つけること。

原則: 摩擦を加え、前提をストレステストし、何が生き残るかを確認する。悲観的な条件下でも戦略が持ちこたえれば、ライブ取引で機能する可能性が高い。

このスキルを使用するタイミング

以下の場合にこのスキルを使用します:

  • 体系的な取引戦略の開発または検証
  • 取引アイデアがライブ実装に十分ロバストかどうかの評価
  • バックテストが誤解を招く可能性がある理由のトラブルシューティング
  • 適切なバックテスト方法論の学習
  • 一般的な落とし穴(カーブフィッティング、先見バイアス、生存バイアス)の回避
  • パラメータ感応度と市場環境依存性の評価
  • スリッページと執行コストに対する現実的な期待値の設定

前提条件

  • Python 3.9+(評価スクリプト用)
  • APIキーは不要
  • 外部データ依存関係なし — メトリクスはユーザーが提供

ワークフロー

1. 仮説を述べる

エッジを一文で定義します。

例: 「決算発表で3%以上ギャップアップし、最初の1時間以内に前日の終値まで押し戻された銘柄は、平均回帰の機会を提供する。」

エッジを明確に表現できない場合は、テストに進まないでください。

2. 裁量ゼロでルールをコード化する

完全な具体性で定義します:

  • エントリー: 正確な条件、タイミング、価格タイプ
  • イグジット: ストップロス、利益確定目標、時間ベースの出口
  • ポジションサイジング: 固定金額、ポートフォリオの割合、ボラティリティ調整
  • フィルター: 時価総額、出来高、セクター、ボラティリティ条件
  • ユニバース: 対象となる金融商品

重要: 主観的な判断は一切許可されません。すべての決定はルールベースで曖昧さがなくなければなりません。

3. 初期バックテストを実行する

以下を対象にテストします:

  • 最低5年(できれば10年以上)
  • 複数の市場環境(強気、弱気、高/低ボラティリティ)
  • 現実的なコスト: 手数料 + 保守的なスリッページ

初期結果を調べて基本的な実行可能性を確認します。根本的に問題がある場合は、仮説を繰り返します。

4. 戦略をストレステストする

ここにテスト時間の80%を費やすべきです。

パラメータ感応度:

  • ストップロスをベースラインの50%、75%、100%、125%、150%でテスト
  • 利益確定目標をベースラインの80%、90%、100%、110%、120%でテスト
  • エントリー/イグジットのタイミングを±15~30分変える
  • 狭いスパイクではなく、安定したパフォーマンスの「台地」を探す

実行摩擦:

  • スリッページを通常見積もりの1.5~2倍に増加
  • 最悪のケースのフィルをモデル化(ask+1ティックで買い、bid-1ティックで売り)
  • 現実的な注文拒否シナリオを追加
  • 悲観的な手数料構造でテスト

時間ロバスト性:

  • 年ごとのパフォーマンスを分析
  • 過半数の年でポジティブな期待値を要求
  • 戦略が1~2の例外的な期間に依存していないことを確認
  • 異なる市場環境で個別にテスト

サンプルサイズ:

  • 絶対最小: 30トレード
  • 推奨: 100トレード以上
  • 高い信頼性: 200トレード以上

5. サンプル外検証

ウォークフォワード分析:

  1. 訓練期間(例:1~3年目)で最適化
  2. 検証期間(4年目)でテスト
  3. ロールフォワードして繰り返す
  4. サンプル内とサンプル外のパフォーマンスを比較

警告サイン:

  • サンプル外のパフォーマンスがサンプル内の50%未満
  • 頻繁なパラメータ再最適化が必要
  • パラメータが期間間で劇的に変化する

6. 結果を評価する

回答すべき質問:

  • 悲観的な前提のもとでエッジは生き残るか?
  • パラメータのバリエーション全体でパフォーマンスは安定しているか?
  • 戦略は複数の市場環境で機能するか?
  • 統計的信頼性に十分なサンプルサイズか?
  • 結果は現実的で、「良すぎて真実ではない」ものではないか?

判定基準:

  • ✅ 導入: すべてのストレステストを許容可能なパフォーマンスで通過
  • 🔄 改善: コアロジックは妥当だがパラメータ調整が必要
  • ❌ 破棄: ストレステストに失敗、または脆弱な前提に依存

構造化された定量的評価には評価スクリプトを使用します:

python3 skills/backtest-expert/scripts/evaluate_backtest.py \
  --total-trades 150 \
  --win-rate 62 \
  --avg-win-pct 1.8 \
  --avg-loss-pct 1.2 \
  --max-drawdown-pct 15 \
  --years-tested 8 \
  --num-parameters 3 \
  --slippage-tested \
  --output-dir reports/

このスクリプトは5つの次元(サンプルサイズ、期待値、リスク管理、ロバスト性、実行現実性)にわたってスコアリングし、レッドフラグを検出し、導入/改善/破棄の判定を出力します。

主要なテスト原則

戦略を罰する

いたるところに摩擦を追加:

  • 現実よりも高い手数料
  • 典型的な1.5~2倍のスリッページ
  • 最悪のケースのフィル
  • 注文拒否
  • 部分約定

根拠: 悲観的な前提を生き残る戦略は、ライブ取引で優れたパフォーマンスを発揮することが多い。

ピークではなく台地を探す

パフォーマンススパイクを生み出す最適値ではなく、パフォーマンスが安定しているパラメータ範囲を探します。

良い例: ストップロスが1.5%から3.0%のどこにあっても戦略が利益を上げる 悪い例: ストップロスが正確に2.13%でのみ機能する戦略

安定したパフォーマンスは真のエッジを示し、狭い最適値はカーブフィッティングを示唆します。

選りすぐりの例ではなく、すべてのケースをテストする

間違ったアプローチ: 機能した「市場リーダー」を厳選して研究する 正しいアプローチ: 失敗したケースも含め、基準を満たしたすべての株式をテストする

選択的な例は生存バイアスを生み出し、戦略の品質を過大評価します。

アイデア生成と検証を分離する

直感: 仮説生成に有用 検証: 純粋にデータ駆動であるべき

アイデアへの愛着がテスト結果の解釈に影響を与えてはなりません。

一般的な失敗パターン

時間を節約するためにこれらのパターンを早期に認識します:

  1. パラメータ感応度: 正確なパラメータ値でのみ機能する
  2. 環境依存: ある年では素晴らしいが、他の年ではひどい
  3. スリッページ感応度: 現実的なコストを追加すると収益性がなくなる
  4. 小さなサンプル: 統計的信頼性に十分なトレード数がない
  5. 先見バイアス: 「良すぎて真実ではない」結果
  6. 過剰最適化: 多くのパラメータ、サンプル外の結果が悪い

詳細な例と診断フレームワークについては、references/failed_tests.mdを参照してください。

出力

  • reports/backtest_eval_<timestamp>.json — 次元別スコア、レッドフラグ、判定を含む構造化評価
  • reports/backtest_eval_<timestamp>.md — 次元テーブル、主要メトリクス、レッドフラグ詳細を含む人間が読めるレポート

リソース

方法論リファレンス

ファイル: references/methodology.md

いつ読むか: 特定のテスト手法に関する詳細なガイダンスが必要な場合。

内容:

  • ストレステスト手法
  • パラメータ感応度分析
  • スリッページと摩擦のモデリング
  • サンプルサイズ要件
  • 市場環境分類
  • 一般的なバイアスと落とし穴(生存バイアス、先見バイアス、カーブフィッティングなど)

失敗テストリファレンス

ファイル: references/failed_tests.md

いつ読むか: 戦略がテストに失敗した場合、または過去の過ちから学ぶ場合。

内容:

  • 失敗が貴重である理由
  • 例を用いた一般的な失敗パターン
  • ケーススタディ文書化フレームワーク
  • バックテスト評価のためのレッドフラグチェックリスト

重要な注意事項

時間配分: アイデア生成に20%、それを壊そうとすることに80%を費やす。

コンテキストフリー要件: 戦略が機能するために「完璧なコンテキスト」を必要とする場合、体系的な取引には十分ロバストではありません。

レッドフラグ: バックテスト結果が良すぎる場合(勝率90%以上、最小限のドローダウン、完璧なタイミング)、先見バイアスやデータの問題がないか注意深く監査します。

ツールの制限: バックテストプラットフォームの制限を理解します。

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

wind-alice/add_to_winner_decision_skill

判断盈利仓是否适合继续加仓,并给出加仓前提、节奏安排、保护规则与停止扩张边界。适用于趋势延续、核心持仓滚动放大与强势股二次进攻场景。

wind-alice/after_close_watchlist_recap_skill

在收盘后总结自选股当日表现、驱动因素、强弱分化与次日观察点。适用于每日收盘复盘、维护自选股观察节奏、为次日盘前准备提供输入等场景。

wind-alice/a-share-primary-theme-identification

用于A股市场主线识别,聚焦市场结构 / 题材周期 / 资金行为。本skill主要用户问题回答、撰写报告、撰写金融类文章等场景。本报告输出内容较多,不适合简单对话场景。各类信息与数据的获取,可以使用wind.financial.data工具,以合理的关键字或关键字组合进行获取。每天开盘后、午盘、收盘后,用户都需要快速知道: 今天市场到底在交易什么,真正的主线是什么,情绪在什么位置,明天应该盯哪里。

wind-alice/avatar-charlie-munger-thinking

使用查理·芒格式的逆向思考、激励分析、认知偏误叠加和多学科模型检验复杂决策。用于评估商业与投资判断、组织行为、政策效果、重大选择、全民共识、失败风险,或识别论证中的单一视角和心理盲区。

wind-alice/avatar-nassim-taleb-risk

使用纳西姆·塔勒布式的尾部风险、利益共担、减法、林迪效应和杠铃策略分析不确定性。用于投资、商业、政策、职业、产品或个人决策中的出局风险、不可逆损失、脆弱性、代理问题、新旧方案比较和资源配置。

wind-alice/avatar-naval-ravikant-thinking

使用纳瓦尔·拉维坎特式的重新定义、欲望审计、特定知识和杠杆框架澄清职业、创业、财富、幸福、自由与人生选择。用于识别错误问题、冲突欲望、独特竞争力、AI替代风险、许可依赖、边际成本和长期复利方向。

wind-alice/avatar-warren-buffett-investing

使用沃伦·巴菲特式的能力圈、护城河、管理层诚信、所有者收益和资本配置框架分析企业与长期投资。用于研究公司商业模式、竞争优势、现金质量、管理层、估值、安全边际,或判断一项投资应继续研究、等待还是放弃。

wind-alice/breakout_candidate_finder_skill

批量识别突破形态成熟、量价结构健康、催化配合较好的候选股,并输出优先级、触发条件与失效边界。适用于短中线选股、盘前候选池整理、板块轮动中筛选领涨预备股等场景。

wind-alice/breakout_trade_execution_skill

围绕突破交易制定从观察、触发、跟进到失效处理的落地执行方案,兼顾量价确认、环境配合与失败撤退。适用于盘前预案、盘中突破跟踪与强势股首日执行场景。

wind-alice/bull_bear_case_builder_skill

同时搭建看多与看空逻辑,比较证据强弱、关键变量与情景路径,帮助识别核心分歧。适用于防止确认偏误、研究前辩论、投资观点校验等场景。

wind-alice/business_model_decoder_skill

把公司如何获客、交付、定价、赚钱和扩张的逻辑拆解清楚,帮助快速理解业务运转方式。适用于看不懂公司业务、研究前补基础、业务结构梳理等场景。

wind-alice/buyback_program_reviewer_skill

判断回购计划的规模、动机、执行约束与真实利好程度。适用于公司宣布回购、估值争议期、资本配置分析等场景。

wind-alice/canslim_growth_scan_skill

依据成长股框架批量筛选业绩、预期、相对强度与供需结构共振的强势标的,并输出候选分层与跟踪重点。适用于成长股猎手、趋势成长选股、候选池批量扫描等场景。

wind-alice/conference_call_takeaway_skill

提炼业绩会中的新信息、管理层语气变化、问答焦点与潜在警讯。适用于听完业绩会、阅读纪要后快速更新观点等场景。

wind-alice/daily_watchlist_morning_brief_skill

为自选股生成盘前简报,汇总隔夜公告、新闻、价格变化、事件日程与今日观察重点。适用于开盘前快速浏览重点、晨会准备、盘前设定观察顺序等场景。

wind-alice/dcf-model

Real DCF (Discounted Cash Flow) model creation for equity valuation. Retrieves financial data from SEC filings and analyst reports, builds comprehensive cash flow projections with proper WACC calculations, performs sensitivity analysis, and outputs professional Excel models with executive summaries. Use when users need to value a company using DCF methodology, request intrinsic value analysis, or ask for detailed financial modeling with growth projections and terminal value calculations.

wind-alice/dip_buy_decision_skill

判断下跌或回调中的个股是否值得承接,并给出观察区、试错条件、分批节奏与放弃标准。适用于趋势回踩、事件后回落、震荡低吸与左侧谨慎试错场景。

wind-alice/dividend_change_explainer_skill

解读分红提升、削减、暂停或恢复背后的原因、持续性与投资含义。适用于收益型投资判断、公告复盘、长期现金流跟踪等场景。

wind-alice/dividend_growth_entry_skill

寻找股息持续增长、经营质量稳定且估值回落到合理区间的候选股,并输出入场观察区、成长支撑与失效边界。适用于收益成长双目标选股、长期配置、回调布局等场景。

関連スキル