{
  "app_version": null,
  "artifact_kind": "local_strategy_replay",
  "artifact_version": "2",
  "break_even_config": {
    "break_even_apply_next_bar": true,
    "break_even_buffer_atr_fraction": 0.05,
    "break_even_min_buffer_points": null,
    "break_even_requires_close_beyond_trigger": true,
    "break_even_trigger_rr": 1.0,
    "enable_break_even": false
  },
  "counts": {
    "candidate_signals_count": 197,
    "candidates_csv_count": 93,
    "rejected_candidates_csv_count": 104,
    "risk_decisions_count": 197,
    "trade_events_count": 279,
    "trades_count": 93
  },
  "created_at": "not_provided",
  "created_at_utc": "not_provided",
  "data_file_hash": "cbdd1c1e3920424b13e9726e6bfe520db1e7ef72331b844042ad76df67ba41ac",
  "data_file_path": "data/cache/binance/spot/BTCUSDT/15m.csv",
  "data_source": "binance_spot",
  "exchange": "binance",
  "file_hashes": {
    "candidate_signals.jsonl": "b2d1d82b4c10730dbac83773495224cb87470cf10d76cfde0c956610ec052727",
    "candidates.csv": "c325fdaa3fe20d07c091e1bc62769118a855516e44662ca064a41de555d3999b",
    "config.json": "4e6522e525127fe4cf21b4e2ef6bcbe212573e7d1ad3f014640d4a41fe280fec",
    "notes.md": "dcd0872358dc65158907ed66915f166c42bdad7c084cf00102ed5719d956f359",
    "rejected_candidates.csv": "918f971129584255e6b1976aafaf1922fdbcfb7642a0a4d0686065797c404c56",
    "replay_summary.json": "f591c0059fc3ce2e157a76c5fd880cc7e8f5a929bccf5a5dd4226f9f907bc5cd",
    "risk_decisions.jsonl": "5058b5acfea503cef85fd69c4398e84c45fe75807d32305bd59129fa95959131",
    "trade_events.jsonl": "1eb01d9ce7f829af0b3e4a2a2e94e380ed9041c187e7c81561ddd0cf04f8f7de",
    "trades.jsonl": "5109053b66b310346c48b5b1988909317ccb1a6fe4e7c0e381a600b0ff843e45",
    "trading_metrics.json": "188f6431e5359872fabb6340b88bf4910a7e00efa6227b843805d2b86a025abc",
    "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-04-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": 80,
    "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": false,
    "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-20260618T151616Z",
  "strategy_id": "ORDER_BLOCK_V1",
  "strategy_name": "ORDER_BLOCK_V1",
  "symbol": "BTCUSDT",
  "timeframe": "15m",
  "to": "2026-06-18T15:16:16+00:00",
  "warnings": []
}
