{
  "app_version": null,
  "artifact_kind": "local_strategy_replay",
  "artifact_version": "2",
  "counts": {
    "candidate_signals_count": 52,
    "candidates_csv_count": 28,
    "rejected_candidates_csv_count": 24,
    "risk_decisions_count": 52,
    "trade_events_count": 84,
    "trades_count": 28
  },
  "created_at": "not_provided",
  "created_at_utc": "not_provided",
  "data_file_hash": "2a487e4fb516fec8c63f99635a1910ba1c3ed49c4227d5b9d08c11c07da4fbd1",
  "data_file_path": "data/cache/binance/spot/BTCUSDT/15m.csv",
  "data_source": "binance_spot",
  "exchange": "binance",
  "file_hashes": {
    "candidate_signals.jsonl": "f435abb87ea497bb9dc9c21658e954c2741111fcdda6b9862544c0e06d2a33d1",
    "candidates.csv": "538b59c1a670fd499f7f4b028cc1c4cfc509c4ff10fc3ea5380ce718de89587c",
    "config.json": "724d59601a52678fa211272fdc4adc550a035bf48cd94839aa7e43aaf0246223",
    "notes.md": "a9859bc873e29dfbbce46ee2ed97b0ce5d7bc72bc9da135e3126b3223d38455b",
    "rejected_candidates.csv": "a4cc92a2ea6183a7db56ce8baeb9dbc2be891d532e65ea9fa2deb3aa9d46f6c4",
    "replay_summary.json": "3d5fbf5f43dd6ee3c74fad3ff5d812fc95e959e122233443cdc8b8e62a53725c",
    "risk_decisions.jsonl": "62655f29cb85bc9e7aed30cfa9cc6c4d7eff75b5f43a5c2b3b0dad0c010a090f",
    "trade_events.jsonl": "f54fdf74666e39f3769c7bee19b7314b4f602f864b0e6c4b8c1bb74639599ca9",
    "trades.jsonl": "f91f286f5d686f718458615defd1f384d2113c5b1bada6ae68c2a81ae913863e",
    "trading_metrics.json": "88b223b06b6694c35eb3c9be5ffe019e0a73df872d3eb9a3587748acc1aa405f",
    "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": 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-20260618T150443Z",
  "strategy_id": "ORDER_BLOCK_V1",
  "strategy_name": "ORDER_BLOCK_V1",
  "symbol": "BTCUSDT",
  "timeframe": "15m",
  "to": "2026-06-18T15:04:43+00:00",
  "warnings": []
}
