{
  "app_version": null,
  "artifact_kind": "local_strategy_replay",
  "artifact_version": "2",
  "counts": {
    "candidate_signals_count": 39,
    "candidates_csv_count": 23,
    "rejected_candidates_csv_count": 16,
    "risk_decisions_count": 39,
    "trade_events_count": 69,
    "trades_count": 23
  },
  "created_at": "not_provided",
  "created_at_utc": "not_provided",
  "data_file_hash": "3c8a78c540647810f109b515e8685af870450f644146f91d6adaa3d49104418e",
  "data_file_path": "data/cache/binance/spot/BTCUSDT/15m.csv",
  "data_source": "binance_spot",
  "exchange": "binance",
  "file_hashes": {
    "candidate_signals.jsonl": "fa87e020a8bd03c766b59326b02ef3530ce994f9b77e2ae7042a2ae9d8837ac9",
    "candidates.csv": "86ab02d0bd258b9fbb4f9f3246c9bbc1ac1f7d090c03de81c9cded1b364eed01",
    "config.json": "7cb1d6d34cd90e88ca723a9346e3f339d32bda7d30b1bdb47abe899749ce0701",
    "notes.md": "85f3e422ec0d9ebd762654262c7b0d80a9e940504185adfec32dd4e89d5ce0b5",
    "rejected_candidates.csv": "5c8af0515917b245b7df40dae76945df708b147015e76d5a7a56de32e58b329d",
    "replay_summary.json": "4a4c95b0b93ac2271a8a4659d2faf4b07cc8368062bb287653944c67f9fb34d3",
    "risk_decisions.jsonl": "ea1a75c96dd0e2f7f6df3a31473b18059aa8a3f49e0e2b29d4a167f8ef94befe",
    "trade_events.jsonl": "42e5b7b12b6d5afff1283ba613c65b78d45228a371f8770589fed226b8e5d5da",
    "trades.jsonl": "73d45679a132a8edc99c8577a82243b6f1f4100ebcbecca4e30b3b002895fec0",
    "trading_metrics.json": "fa2d7c6aa0737eaddd3cf2011cb84b74f0124e483f46b094bcf9ddeca8110c7c",
    "warnings.json": "09d5ba180584956ecc2564eb86b85c742d4e072e399255144c920c2587d5e11e"
  },
  "files": [
    "manifest.json",
    "config.json",
    "replay_summary.json",
    "trading_metrics.json",
    "trades.jsonl",
    "trade_events.jsonl",
    "candidate_signals.jsonl",
    "risk_decisions.jsonl",
    "candidates.csv",
    "rejected_candidates.csv",
    "warnings.json",
    "notes.md"
  ],
  "force_redownload": false,
  "from": "2026-06-01T00:00:00+00:00",
  "full_risk_config_normalized": {
    "max_consecutive_losses": 3,
    "max_cost_to_risk_r": 0.2,
    "max_daily_loss_pct": 1.0,
    "max_open_positions": 1,
    "max_spread": 25.0,
    "max_stop_distance": 10000.0,
    "max_trades_per_day": 999,
    "max_weekly_loss_pct": 3.0,
    "min_confidence": 75.0,
    "min_rr_to_tp2": 1.5,
    "min_stop_distance": 50.0
  },
  "full_strategy_config_normalized": {
    "allow_choch": false,
    "atr_period": 14,
    "lookback_bars": 50,
    "max_ob_age_bars": 50,
    "max_zone_height_atr_multiple": 2.0,
    "metadata": {},
    "min_confidence_score": 75.0,
    "min_displacement_atr_multiple": 1.0,
    "pivot_left": 2,
    "pivot_right": 2,
    "require_retest": true,
    "require_trend_filter": true,
    "retest_tolerance_atr": 0.25,
    "rr_target_1": 1.0,
    "rr_target_2": 1.5,
    "stop_buffer_atr": 0.4,
    "strategy_name": "ORDER_BLOCK_V1",
    "trend_ema_period": 50
  },
  "git_commit": null,
  "market_type": "spot",
  "run_id": "btcusdt-15m-ob-20260618T144802Z",
  "strategy_id": "ORDER_BLOCK_V1",
  "strategy_name": "ORDER_BLOCK_V1",
  "symbol": "BTCUSDT",
  "timeframe": "15m",
  "to": "2026-06-18T14:48:02+00:00",
  "warnings": []
}
