{
  "generated_at": "2026-06-08 23:21:02",
  "symbol": "BTC",
  "gt": {
    "leg_count": 25,
    "return_pct": 1240.94,
    "interval_label": "3분",
    "lookback_days": 365
  },
  "ranking": [
    {
      "technique_id": "bb_reversal",
      "technique_name": "볼린저 역추세",
      "category": "indicator",
      "causal": true,
      "leg_count": 102,
      "tech_return_pct": 2467.57,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.48,
      "return_capture_ratio": 1.9885,
      "score": 0.818,
      "avg_buy_offset": 2.8,
      "avg_sell_offset": 3.2
    },
    {
      "technique_id": "rsi_swing",
      "technique_name": "RSI 스윙",
      "category": "indicator",
      "causal": true,
      "leg_count": 93,
      "tech_return_pct": 2015.17,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.48,
      "return_capture_ratio": 1.6239,
      "score": 0.818,
      "avg_buy_offset": 11.5,
      "avg_sell_offset": 7.3
    },
    {
      "technique_id": "macd_cross",
      "technique_name": "MACD 크로스",
      "category": "indicator",
      "causal": true,
      "leg_count": 82,
      "tech_return_pct": 1389.3,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.48,
      "return_capture_ratio": 1.1196,
      "score": 0.818,
      "avg_buy_offset": 4.0,
      "avg_sell_offset": 5.2
    },
    {
      "technique_id": "minor_swing",
      "technique_name": "소형 스윙 하이브리드",
      "category": "hybrid",
      "causal": true,
      "leg_count": 89,
      "tech_return_pct": 7521.83,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.32,
      "return_capture_ratio": 6.0614,
      "score": 0.762,
      "avg_buy_offset": 0.0,
      "avg_sell_offset": 0.0
    },
    {
      "technique_id": "donchian",
      "technique_name": "돈치안 채널",
      "category": "swing",
      "causal": true,
      "leg_count": 59,
      "tech_return_pct": 764.78,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.44,
      "return_capture_ratio": 0.6163,
      "score": 0.7464,
      "avg_buy_offset": 3.3,
      "avg_sell_offset": 9.0
    },
    {
      "technique_id": "local_extrema",
      "technique_name": "국소 극값",
      "category": "swing",
      "causal": true,
      "leg_count": 63,
      "tech_return_pct": 1633.57,
      "buy_recall": 0.92,
      "sell_recall": 0.76,
      "leg_recall": 0.44,
      "return_capture_ratio": 1.3164,
      "score": 0.724,
      "avg_buy_offset": 55.3,
      "avg_sell_offset": 17.8
    },
    {
      "technique_id": "zigzag_causal",
      "technique_name": "인과 ZigZag",
      "category": "swing",
      "causal": true,
      "leg_count": 24,
      "tech_return_pct": 1150.01,
      "buy_recall": 1.0,
      "sell_recall": 0.96,
      "leg_recall": 0.12,
      "return_capture_ratio": 0.9267,
      "score": 0.671,
      "avg_buy_offset": 0.0,
      "avg_sell_offset": 0.0
    },
    {
      "technique_id": "ma_cross",
      "technique_name": "EMA 크로스",
      "category": "indicator",
      "causal": true,
      "leg_count": 41,
      "tech_return_pct": 387.98,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.28,
      "return_capture_ratio": 0.3127,
      "score": 0.6449,
      "avg_buy_offset": 36.0,
      "avg_sell_offset": 35.4
    }
  ]
}