開発ログ

バックテストと未見データ検証を行う

30秒でわかる概要

今回なにをした?

decision_time < unseen_start をBACKTEST、decision_time >= unseen_startをUNSEEN_VALIDATIONへ固定しました。さらに、同一sample_idの重複・stage跨ぎを禁止しました。

なぜ必要?

該当する内部開発工程で現実的な市場・約定条件は評価できましたが、過去検証と最終未見検証を正式に分離する境界は未実装でした。

何が変わった?

unseen_startを境界にBACKTESTとUNSEEN_VALIDATIONを分離し、minimum_edge等の固定ポリシーを同じまま適用できる状態になりました。

現在の状態

検証完了です。確認できていないことは、確認済みとして扱いません。

詳細

Evidence Record

今回確定したこと

定義した境界・成果

  • decision_time < unseen_start をBACKTEST、decision_time >= unseen_startをUNSEEN_VALIDATIONへ固定した
  • 同一sample_idの重複・stage跨ぎを禁止した
  • 未見検証前に固定したminimum_edgeを両stageへ共通適用する
  • EXPECTED_VALUE・MARKET_RELATIVE_EDGE・BRIER_SCORE・BET_FREQUENCYをstage別に算出する
  • 同一入力なら同じevidence hashを生成する

許可されること / できること

  • chronological backtest separation — バックテストと未見検証を時系列境界で分離できます。(capability 1):PASS
  • stage-wise KPI evaluation — EXPECTED_VALUE・MARKET_RELATIVE_EDGE・CALIBRATION・BET_FREQUENCYをstage別に比較できます。(capability 2):PASS

安全境界・防止策

禁止されること / 防止策

  • unseen tuning leakage — 未見期間を見ながら評価条件を調整することを禁止します。(prevention 1):PASS
  • sample overlap — 同じsampleをBACKTESTとUNSEEN_VALIDATIONの両方へ含めることを防ぎます。(prevention 2):PASS

実装・契約根拠

  • Evidenceに記録された契約・実装を参照

検証結果

  • CHRONOLOGICAL_STAGE_SEPARATION(CHRONOLOGICAL_STAGE_SEPARATION):PASS
  • DETERMINISTIC_EVIDENCE_HASH(DETERMINISTIC_EVIDENCE_HASH):PASS
  • FIXED_POLICY_BEFORE_UNSEEN(FIXED_POLICY_BEFORE_UNSEEN):PASS
  • MARKET_EXECUTION_INPUT_AUTHORITY_REUSED(MARKET_EXECUTION_INPUT_AUTHORITY_REUSED):PASS
  • REQUIRED_TESTS_PASS(REQUIRED_TESTS_PASS):PASS
  • SAFETY_BOUNDARY_PASS(SAFETY_BOUNDARY_PASS):PASS
  • TASK_SCOPE_VALID(TASK_SCOPE_VALID):PASS

未達・対象外

  • この工程では評価エンジンとstage分離を実装・検証しており、実DB全件を使う大規模最終成績は後続運用で蓄積します。
  • bankroll・drawdown・capital efficiencyの本格評価はRF_DEV_026で扱います。
  • 実馬券購入は認可していません。

次工程

次工程では検証結果を経済評価・bankroll simulationへ接続します。

Evidence Stage

IMPLEMENTATION_VALIDATED

内部管理情報

Task ID: RF_DEV_025_BACKTEST_AND_UNSEEN_VALIDATION_V1

全体ロードマップを見る →

← 開発ログへ戻る

掲載内容は、その時点の開発・検証記録です。将来の利益や的中を保証するものではありません。