{
  "generated_at": "2026-06-12 13:44:29",
  "symbol": "BTC",
  "gt": {
    "leg_count": 944,
    "return_pct": 1.3313500187065259e+45,
    "interval_label": "3분",
    "lookback_days": 3650
  },
  "ranking": [
    {
      "technique_id": "fractal_swing",
      "technique_name": "프랙탈 스윙",
      "category": "swing",
      "causal": true,
      "leg_count": 4506,
      "tech_return_pct": 3.663809291369873e+78,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.7532,
      "return_capture_ratio": 2.75195045622146e+33,
      "score": 0.9136,
      "avg_buy_offset": 0.8,
      "avg_sell_offset": 0.8
    },
    {
      "technique_id": "pivot_swing",
      "technique_name": "피벗 스윙",
      "category": "swing",
      "causal": true,
      "leg_count": 3570,
      "tech_return_pct": 4.380793584096872e+69,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.7458,
      "return_capture_ratio": 3.2904897454037185e+24,
      "score": 0.911,
      "avg_buy_offset": 10.6,
      "avg_sell_offset": 13.6
    },
    {
      "technique_id": "minor_swing",
      "technique_name": "소형 스윙 하이브리드",
      "category": "hybrid",
      "causal": true,
      "leg_count": 3139,
      "tech_return_pct": 1.3187759699713244e+72,
      "buy_recall": 0.879,
      "sell_recall": 0.9504,
      "leg_recall": 0.732,
      "return_capture_ratio": 9.905554147605618e+26,
      "score": 0.8636,
      "avg_buy_offset": 43.0,
      "avg_sell_offset": 10.7
    },
    {
      "technique_id": "local_extrema",
      "technique_name": "국소 극값",
      "category": "swing",
      "causal": true,
      "leg_count": 2327,
      "tech_return_pct": 2.3771489195963717e+51,
      "buy_recall": 0.8626,
      "sell_recall": 0.9072,
      "leg_recall": 0.7055,
      "return_capture_ratio": 1785517.6221,
      "score": 0.8394,
      "avg_buy_offset": 74.7,
      "avg_sell_offset": 62.2
    },
    {
      "technique_id": "zigzag_causal",
      "technique_name": "인과 ZigZag",
      "category": "swing",
      "causal": true,
      "leg_count": 969,
      "tech_return_pct": 7.385378613467154e+45,
      "buy_recall": 0.5986,
      "sell_recall": 0.8676,
      "leg_recall": 0.7415,
      "return_capture_ratio": 5.5473,
      "score": 0.7761,
      "avg_buy_offset": 47.9,
      "avg_sell_offset": 1.5
    },
    {
      "technique_id": "stochastic_cross",
      "technique_name": "Stochastic 크로스",
      "category": "momentum",
      "causal": true,
      "leg_count": 2488,
      "tech_return_pct": 3.501638754836219e+38,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.7161,
      "return_capture_ratio": 0.0,
      "score": 0.7506,
      "avg_buy_offset": 5.7,
      "avg_sell_offset": 4.5
    },
    {
      "technique_id": "support_resistance",
      "technique_name": "구조적 지지·저항",
      "category": "structure",
      "causal": true,
      "leg_count": 2537,
      "tech_return_pct": 3.1859868811685204e+43,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.696,
      "return_capture_ratio": 0.0239,
      "score": 0.7472,
      "avg_buy_offset": 12.2,
      "avg_sell_offset": 9.8
    },
    {
      "technique_id": "atr_channel",
      "technique_name": "ATR 채널",
      "category": "volatility",
      "causal": true,
      "leg_count": 2042,
      "tech_return_pct": 5.742644510084457e+32,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.6377,
      "return_capture_ratio": 0.0,
      "score": 0.7232,
      "avg_buy_offset": 11.7,
      "avg_sell_offset": 14.6
    },
    {
      "technique_id": "keltner_reversal",
      "technique_name": "Keltner 역추세",
      "category": "volatility",
      "causal": true,
      "leg_count": 2056,
      "tech_return_pct": 7.280317490196712e+32,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.6367,
      "return_capture_ratio": 0.0,
      "score": 0.7228,
      "avg_buy_offset": 11.7,
      "avg_sell_offset": 14.7
    },
    {
      "technique_id": "bb_reversal",
      "technique_name": "볼린저 역추세",
      "category": "indicator",
      "causal": true,
      "leg_count": 2121,
      "tech_return_pct": 6.289208384538953e+32,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.6303,
      "return_capture_ratio": 0.0,
      "score": 0.7206,
      "avg_buy_offset": 8.8,
      "avg_sell_offset": 7.8
    },
    {
      "technique_id": "donchian",
      "technique_name": "돈치안 채널",
      "category": "swing",
      "causal": true,
      "leg_count": 1627,
      "tech_return_pct": 9.932608275577542e+28,
      "buy_recall": 0.9994,
      "sell_recall": 0.9963,
      "leg_recall": 0.6176,
      "return_capture_ratio": 0.0,
      "score": 0.7151,
      "avg_buy_offset": 14.6,
      "avg_sell_offset": 26.6
    },
    {
      "technique_id": "cci_extreme",
      "technique_name": "CCI 극값",
      "category": "momentum",
      "causal": true,
      "leg_count": 1832,
      "tech_return_pct": 3.823207717638062e+30,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.6081,
      "return_capture_ratio": 0.0,
      "score": 0.7128,
      "avg_buy_offset": 12.4,
      "avg_sell_offset": 19.6
    },
    {
      "technique_id": "macd_cross",
      "technique_name": "MACD 크로스",
      "category": "indicator",
      "causal": true,
      "leg_count": 1721,
      "tech_return_pct": 7.728135515879172e+29,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.59,
      "return_capture_ratio": 0.0,
      "score": 0.7065,
      "avg_buy_offset": 8.6,
      "avg_sell_offset": 10.0
    },
    {
      "technique_id": "adx_trend",
      "technique_name": "ADX 추세",
      "category": "trend",
      "causal": true,
      "leg_count": 1528,
      "tech_return_pct": 2.892981897417216e+27,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.5445,
      "return_capture_ratio": 0.0,
      "score": 0.6906,
      "avg_buy_offset": 13.4,
      "avg_sell_offset": 15.6
    },
    {
      "technique_id": "ichimoku_trend",
      "technique_name": "일목 추세",
      "category": "trend",
      "causal": true,
      "leg_count": 1333,
      "tech_return_pct": 9.651314407406751e+24,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.4894,
      "return_capture_ratio": 0.0,
      "score": 0.6713,
      "avg_buy_offset": 18.4,
      "avg_sell_offset": 20.5
    },
    {
      "technique_id": "rsi_swing",
      "technique_name": "RSI 스윙",
      "category": "indicator",
      "causal": true,
      "leg_count": 1509,
      "tech_return_pct": 7.83606378138232e+25,
      "buy_recall": 0.983,
      "sell_recall": 0.9688,
      "leg_recall": 0.5159,
      "return_capture_ratio": 0.0,
      "score": 0.6685,
      "avg_buy_offset": 54.4,
      "avg_sell_offset": 59.0
    },
    {
      "technique_id": "composite_divergence",
      "technique_name": "다이버전스 복합",
      "category": "composite",
      "causal": true,
      "leg_count": 1412,
      "tech_return_pct": 1.957234329195032e+25,
      "buy_recall": 0.9893,
      "sell_recall": 0.9743,
      "leg_recall": 0.4926,
      "return_capture_ratio": 0.0,
      "score": 0.6633,
      "avg_buy_offset": 40.7,
      "avg_sell_offset": 50.3
    },
    {
      "technique_id": "composite_breakout",
      "technique_name": "돌파 복합",
      "category": "composite",
      "causal": true,
      "leg_count": 1188,
      "tech_return_pct": 7.068800497994899e+22,
      "buy_recall": 0.9956,
      "sell_recall": 1.0,
      "leg_recall": 0.4322,
      "return_capture_ratio": 0.0,
      "score": 0.6502,
      "avg_buy_offset": 30.0,
      "avg_sell_offset": 22.1
    },
    {
      "technique_id": "ema_pullback",
      "technique_name": "EMA 눌림목",
      "category": "pullback",
      "causal": true,
      "leg_count": 900,
      "tech_return_pct": 7.158638283442408e+19,
      "buy_recall": 1.0,
      "sell_recall": 1.0,
      "leg_recall": 0.321,
      "return_capture_ratio": 0.0,
      "score": 0.6123,
      "avg_buy_offset": 32.0,
      "avg_sell_offset": 32.7
    },
    {
      "technique_id": "keltner_breakout",
      "technique_name": "Keltner 돌파",
      "category": "breakout",
      "causal": true,
      "leg_count": 815,
      "tech_return_pct": 1.0838699534538895e+18,
      "buy_recall": 0.9912,
      "sell_recall": 0.9991,
      "leg_recall": 0.304,
      "return_capture_ratio": 0.0,
      "score": 0.604,
      "avg_buy_offset": 42.1,
      "avg_sell_offset": 37.5
    },
    {
      "technique_id": "composite_pullback",
      "technique_name": "눌림목 복합",
      "category": "composite",
      "causal": true,
      "leg_count": 758,
      "tech_return_pct": 9.86252168049173e+17,
      "buy_recall": 0.9987,
      "sell_recall": 1.0,
      "leg_recall": 0.2754,
      "return_capture_ratio": 0.0,
      "score": 0.5961,
      "avg_buy_offset": 58.8,
      "avg_sell_offset": 60.5
    },
    {
      "technique_id": "bb_squeeze_breakout",
      "technique_name": "BB 스퀴즈 돌파",
      "category": "breakout",
      "causal": true,
      "leg_count": 824,
      "tech_return_pct": 3.096469840889082e+18,
      "buy_recall": 0.9855,
      "sell_recall": 0.9945,
      "leg_recall": 0.2744,
      "return_capture_ratio": 0.0,
      "score": 0.591,
      "avg_buy_offset": 69.0,
      "avg_sell_offset": 67.4
    },
    {
      "technique_id": "range_breakout",
      "technique_name": "레인지 돌파",
      "category": "breakout",
      "causal": true,
      "leg_count": 655,
      "tech_return_pct": 1.401202345147744e+16,
      "buy_recall": 0.995,
      "sell_recall": 0.9991,
      "leg_recall": 0.2627,
      "return_capture_ratio": 0.0,
      "score": 0.5905,
      "avg_buy_offset": 57.2,
      "avg_sell_offset": 48.9
    },
    {
      "technique_id": "composite_swing",
      "technique_name": "스윙 복합",
      "category": "composite",
      "causal": true,
      "leg_count": 786,
      "tech_return_pct": 2.388238259950491e+18,
      "buy_recall": 0.9798,
      "sell_recall": 0.9733,
      "leg_recall": 0.2786,
      "return_capture_ratio": 0.0,
      "score": 0.5858,
      "avg_buy_offset": 60.6,
      "avg_sell_offset": 74.5
    },
    {
      "technique_id": "ma_cross",
      "technique_name": "EMA 크로스",
      "category": "indicator",
      "causal": true,
      "leg_count": 808,
      "tech_return_pct": 1.854373275669934e+18,
      "buy_recall": 0.9483,
      "sell_recall": 0.9292,
      "leg_recall": 0.303,
      "return_capture_ratio": 0.0,
      "score": 0.5754,
      "avg_buy_offset": 64.9,
      "avg_sell_offset": 77.0
    },
    {
      "technique_id": "volume_breakout",
      "technique_name": "거래량 돌파",
      "category": "breakout",
      "causal": true,
      "leg_count": 636,
      "tech_return_pct": 8464249560186009.0,
      "buy_recall": 0.9861,
      "sell_recall": 0.9972,
      "leg_recall": 0.2246,
      "return_capture_ratio": 0.0,
      "score": 0.5744,
      "avg_buy_offset": 75.2,
      "avg_sell_offset": 62.3
    },
    {
      "technique_id": "swing_failure",
      "technique_name": "스윙 실패",
      "category": "swing",
      "causal": true,
      "leg_count": 879,
      "tech_return_pct": 1.6380508148032199e+19,
      "buy_recall": 0.9319,
      "sell_recall": 0.909,
      "leg_recall": 0.3093,
      "return_capture_ratio": 0.0,
      "score": 0.5685,
      "avg_buy_offset": 73.6,
      "avg_sell_offset": 78.2
    },
    {
      "technique_id": "fib_pullback",
      "technique_name": "피보나치 눌림목",
      "category": "pullback",
      "causal": true,
      "leg_count": 654,
      "tech_return_pct": 2.2225437756023064e+16,
      "buy_recall": 0.9427,
      "sell_recall": 0.9338,
      "leg_recall": 0.2394,
      "return_capture_ratio": 0.0,
      "score": 0.5529,
      "avg_buy_offset": 90.4,
      "avg_sell_offset": 104.9
    },
    {
      "technique_id": "composite_v3",
      "technique_name": "v3 통합 스코어링",
      "category": "composite",
      "causal": true,
      "leg_count": 652,
      "tech_return_pct": 7.516825290128467e+16,
      "buy_recall": 0.9754,
      "sell_recall": 0.8897,
      "leg_recall": 0.2288,
      "return_capture_ratio": 0.0,
      "score": 0.5464,
      "avg_buy_offset": 72.2,
      "avg_sell_offset": 119.6
    },
    {
      "technique_id": "macd_divergence",
      "technique_name": "MACD 다이버전스",
      "category": "divergence",
      "causal": true,
      "leg_count": 834,
      "tech_return_pct": 1.6353691308514524e+18,
      "buy_recall": 0.8916,
      "sell_recall": 0.8768,
      "leg_recall": 0.2977,
      "return_capture_ratio": 0.0,
      "score": 0.5463,
      "avg_buy_offset": 112.8,
      "avg_sell_offset": 107.2
    },
    {
      "technique_id": "support_bounce",
      "technique_name": "지지·저항 반등",
      "category": "pullback",
      "causal": true,
      "leg_count": 725,
      "tech_return_pct": 4183445660437280.5,
      "buy_recall": 0.7782,
      "sell_recall": 0.7914,
      "leg_recall": 0.2172,
      "return_capture_ratio": 0.0,
      "score": 0.4684,
      "avg_buy_offset": 144.1,
      "avg_sell_offset": 131.7
    },
    {
      "technique_id": "rsi_divergence",
      "technique_name": "RSI 다이버전스",
      "category": "divergence",
      "causal": true,
      "leg_count": 631,
      "tech_return_pct": 1981868609078180.5,
      "buy_recall": 0.7612,
      "sell_recall": 0.7509,
      "leg_recall": 0.2002,
      "return_capture_ratio": 0.0,
      "score": 0.4481,
      "avg_buy_offset": 151.8,
      "avg_sell_offset": 149.1
    },
    {
      "technique_id": "obv_divergence",
      "technique_name": "OBV 다이버전스",
      "category": "divergence",
      "causal": true,
      "leg_count": 476,
      "tech_return_pct": 19144246495525.79,
      "buy_recall": 0.7013,
      "sell_recall": 0.7059,
      "leg_recall": 0.1314,
      "return_capture_ratio": 0.0,
      "score": 0.3978,
      "avg_buy_offset": 178.0,
      "avg_sell_offset": 169.7
    },
    {
      "technique_id": "volume_spike",
      "technique_name": "거래량 스파이크",
      "category": "volume",
      "causal": true,
      "leg_count": 442,
      "tech_return_pct": 33601511224585.42,
      "buy_recall": 0.6144,
      "sell_recall": 0.6351,
      "leg_recall": 0.2182,
      "return_capture_ratio": 0.0,
      "score": 0.3887,
      "avg_buy_offset": 163.7,
      "avg_sell_offset": 160.7
    },
    {
      "technique_id": "composite_full",
      "technique_name": "전체 통합 복합",
      "category": "composite",
      "causal": true,
      "leg_count": 193,
      "tech_return_pct": 52004105841.1,
      "buy_recall": 0.6339,
      "sell_recall": 0.3355,
      "leg_recall": 0.0403,
      "return_capture_ratio": 0.0,
      "score": 0.2565,
      "avg_buy_offset": 195.6,
      "avg_sell_offset": 222.0
    },
    {
      "technique_id": "parabolic_sar",
      "technique_name": "Parabolic SAR",
      "category": "trend",
      "causal": true,
      "leg_count": 21,
      "tech_return_pct": 27365.65,
      "buy_recall": 0.9994,
      "sell_recall": 0.0147,
      "leg_recall": 0.0074,
      "return_capture_ratio": 0.0,
      "score": 0.2561,
      "avg_buy_offset": 8.6,
      "avg_sell_offset": 255.2
    },
    {
      "technique_id": "roc_reversal",
      "technique_name": "ROC 반전",
      "category": "momentum",
      "causal": true,
      "leg_count": 94,
      "tech_return_pct": 9693853.36,
      "buy_recall": 0.1796,
      "sell_recall": 0.2362,
      "leg_recall": 0.071,
      "return_capture_ratio": 0.0,
      "score": 0.1288,
      "avg_buy_offset": 142.9,
      "avg_sell_offset": 153.3
    },
    {
      "technique_id": "pivot_points",
      "technique_name": "피벗 포인트",
      "category": "structure",
      "causal": true,
      "leg_count": 0,
      "tech_return_pct": 0.0,
      "buy_recall": 0.0088,
      "sell_recall": 0.0,
      "leg_recall": 0.0,
      "return_capture_ratio": 0.0,
      "score": 0.0022,
      "avg_buy_offset": 190.0,
      "avg_sell_offset": 0.0
    },
    {
      "technique_id": "supertrend",
      "technique_name": "Supertrend",
      "category": "trend",
      "causal": true,
      "leg_count": 0,
      "tech_return_pct": 0.0,
      "buy_recall": 0.0,
      "sell_recall": 0.0,
      "leg_recall": 0.0,
      "return_capture_ratio": 0.0,
      "score": 0.0,
      "avg_buy_offset": 0.0,
      "avg_sell_offset": 0.0
    }
  ]
}