コンテンツにスキップ

バックテストフレームワーク

概要

AEGISのバックテストは、「空想にならないこと」を最優先に設計されています。

オプション戦略のバックテストは、株のバックテストと比較して桁違いに難しい — bid/askスプレッド、流動性、約定スリッページ、IV変動など、考慮すべき変数が非常に多い。これらを適切にモデリングしなければ、結果は「紙の上の空論」になります。

AEGISでは 500以上のシナリオ・パラメータ組み合わせ をテストし、多層的なガードを組み込むことで、バックテスト結果が実運用と乖離しないことを徹底しています。


バックテスト規模

350+
対象銘柄
500+
テスト済みシナリオ
16,600行
BTエンジンコード
1,250+
結果CSVファイル

データ品質と検証期間

2年BT(2024-01 〜 2026-01)— 高精度

項目 詳細
オプションデータ Polygon Options Advanced — 毎日のbid/ask、IV、Greeks(delta/gamma/theta/vega)
株価データ Polygon — OHLCV日足
フローデータ Unusual Whales — 機関投資家フロー
IV Rank Unusual Whales — 52週IVランク
決算カレンダー Finnhub API — 14日ウィンドウ自動回避

この期間は 実際のbid/ask spread が利用可能なため、約定モデル(MID/SPREAD/CONSERVATIVE)による現実的なスリッページシミュレーションが可能。これがAEGISのBTの核心的強みです。

確定値の根拠

25ヶ月BTの CONSERVATIVE モデル結果(+11,009%)は、全トレードで最悪約定価格を仮定 した上での結果です。実運用では、これより良い約定を得る可能性しかありません。

7年BT(2019-01 〜 2026-01)— 参考値

項目 詳細
オプションデータ QuantData CSV — 日次OHLCV(bid/askなし)
株価データ Polygon — OHLCV日足
制約 bid/askスプレッドなし → MIDモデルのみ、約定リアリズム低下

7年データでは2020年コロナショック、2022年ベアマーケットなど重要な市場イベントを検証可能ですが、bid/askが存在しないため約定コストが過小評価 されるリスクがあります。

ORATS問題

7年間のbid/ask付き高精度オプションデータを取得するには、ORATS のHistorical Options Data(年間\(5,000〜\)15,000程度)の購入が必要です。QuantDataは解約済みで新規データ追加はできません。ORATS導入により、7年全期間でCONSERVATIVEモデルを実行可能になりますが、現時点ではコスト対効果を検討中です。


空想にならないための多層ガード

AEGISのBTエンジンには、結果を「盛らない」ための厳格なガードが組み込まれています。

1. 約定モデル(Execution Models)

実運用の約定品質を3段階でモデリング:

モデル 約定価格 想定
CONSERVATIVE 常に不利な価格(買い=ASK、売り=BID) 最悪シナリオ
SPREAD 不利価格から25%改善(fill_ratio=0.25) 現実的
MID 中間値(bid+ask)/2 楽観的

確定値はCONSERVATIVEを採用 — 実運用で「これより悪くなることはない」という下限値として報告しています。

2. Deterministic(再現性保証)

--deterministic --seed 0
  • 乱数シードを固定し、同一入力で 完全同一の結果 を保証
  • 並列実行を自動禁止(pkl cacheの並行書込みによる結果変動を防止)
  • Trade IDを日付+銘柄+連番で決定的に生成

3. Look-Ahead Bias防止

対策 実装
GEXフィルタ gex_filter_use_prev_day=True前日のGEX投票結果 を使用
テクニカル指標 SMA/ATR/RSI等は全て 前日終値ベース で計算
VIX/SPY指標 vix_prev_close, spy_trend_prev_close 等、前日値を使用
エントリー 当日オープン以降の価格のみ使用
Day 0スキップ day_idx==0(初日)は常にスキップ

4. 月次出金モデル

--monthly-withdrawal-rate 0.30

毎月末にequityの30%を出金するモデルを組み込み、複利効果の過大評価を防止。出金なしBTでは非現実的な資金膨張が発生するため、全確定値は30%出金込みで算出。

5. 流動性・約定リアリズム

ガード 内容
最低Bid --min-option-bid — 低流動性銘柄を排除
最低出来高 --min-option-volume — 薄商いオプション排除
OI制限 --min-option-open-interest — 建玉不足排除
参加率制限 --max-participation-rate — 出来高の一定割合以上を取らない
部分約定 --entry-partial-fill-prob — 全量約定できないシナリオをモデル化
決算回避 Finnhub決算カレンダー — 決算±14日はエントリーブロック

6. マージン・リスク管理

ガード 内容
Max Loss Margin --enforce-max-loss-margin — NLV超過マージン防止
Max Allocation 98% — 常に2%キャッシュバッファ維持
同一銘柄重複 _entry_blocked_today — 同日同一銘柄の重複エントリー防止
セクター制限 max_same_sector — セクター集中リスク制御

次のページ