開発ログ

現実的な市場・購入条件をシミュレーションする

30秒でわかる概要

今回なにをした?

各runnerについてdecision_time以前の最新market_oddsだけを市場snapshotとして採用する。さらに、設定したmax_quote_age_secondsを超える古い価格を購入候補から除外するです。

なぜ必要?

該当する内部開発工程で未来情報を除いたDecision-Time Replayは可能になりましたが、その時点の市場価格が購入判断に使える鮮度か、購入可能か、コストや約定悪化をどう扱うかは未実装でした。

何が変わった?

Replay snapshotの中から各runnerの最新の事前価格を選び、価格鮮度・明示的eligibility・stake unit・transaction cost・slippageを決定論的に評価できる状態になりました。

現在の状態

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

詳細

Evidence Record

今回確定したこと

定義した境界・成果

  • 各runnerについてdecision_time以前の最新market_oddsだけを市場snapshotとして採用する
  • 設定したmax_quote_age_secondsを超える古い価格を購入候補から除外する
  • eligible=falseの候補を明示的に購入対象外とする
  • stake unit・minimum stake・transaction cost・slippageを約定前提として計算する
  • RF_DEV_023のfuture information / final odds禁止境界をそのまま維持する
  • 同じReplay snapshotと同じ実行前提から同じsimulation hashを生成する

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

  • latest pre-decision market snapshot — 意思決定時点より前に見えていた各runnerの最新価格だけを比較対象にできます。(LATEST_PRE_DECISION_QUOTE_PER_RUNNER)(capability 1):PASS
  • realistic execution assumptions — 価格鮮度、購入可否、stake単位、取引コスト、slippageを同じSimulation境界で評価できます。(capability 2):PASS

安全境界・防止策

禁止されること / 防止策

  • stale quote optimism — 古すぎる市場価格を現在も買える価格として扱うことを防ぎます。(QUOTE_STALENESS_CUTOFF_ENFORCED)(prevention 1):PASS
  • execution-cost omission — 取引コストや約定悪化を無視して利益性を過大評価することを防ぎます。(TRANSACTION_COST_MODELED / SLIPPAGE_MODELED)(prevention 2):PASS
  • future/final odds leakage — RF_DEV_023のReplay境界を再利用し、未来情報や最終オッズの混入を引き続き防ぎます。(FINAL_ODDS_FORBIDDEN)(prevention 3):PASS

実装・契約根拠

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

検証結果

  • DECISION_TIME_REPLAY_BOUNDARY_REUSED(DECISION_TIME_REPLAY_BOUNDARY_REUSED):PASS
  • DETERMINISTIC_SIMULATION_HASH(DETERMINISTIC_SIMULATION_HASH):PASS
  • EVIDENCE_COMPLETE(EVIDENCE_COMPLETE):PASS
  • EXPLICIT_ELIGIBILITY_ENFORCED(EXPLICIT_ELIGIBILITY_ENFORCED):PASS
  • FINAL_ODDS_FORBIDDEN(FINAL_ODDS_FORBIDDEN):PASS
  • LATEST_PRE_DECISION_QUOTE_SELECTED(LATEST_PRE_DECISION_QUOTE_SELECTED):PASS
  • QUOTE_STALENESS_CUTOFF_ENFORCED(QUOTE_STALENESS_CUTOFF_ENFORCED):PASS
  • REAL_MONEY_EXECUTION_NOT_AUTHORIZED(REAL_MONEY_EXECUTION_NOT_AUTHORIZED):PASS
  • REQUIRED_ARTIFACTS_PRESENT(REQUIRED_ARTIFACTS_PRESENT):PASS
  • REQUIRED_TESTS_PASS(REQUIRED_TESTS_PASS):PASS
  • SAFETY_BOUNDARY_PASS(SAFETY_BOUNDARY_PASS):PASS
  • SLIPPAGE_MODELED(SLIPPAGE_MODELED):PASS
  • TASK_SCOPE_VALID(TASK_SCOPE_VALID):PASS
  • TRANSACTION_COST_MODELED(TRANSACTION_COST_MODELED):PASS

未達・対象外

  • この工程では実DB全件を使った大規模SimulationやBacktestはまだ実行していません。
  • 実際のJRA投票APIや実馬券購入には接続していません。
  • 市場ごとの詳細な約定確率モデルや券種固有の板・流動性モデルは後続検証で拡張対象です。

次工程

次工程では、この現実的な市場・約定条件を使ってBacktestと未見データ検証へ接続します。

Evidence Stage

IMPLEMENTATION_VALIDATED

内部管理情報

Task ID: RF_DEV_024_REALISTIC_MARKET_AND_EXECUTION_SIMULATION_V1

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

← 開発ログへ戻る

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