Files
Bithumb/docs/04_matching/rule_candidates.json
xavis 91c9338651 fix: GT 중복 인덱스 Series 오류 수정 및 파이프라인 산출물 갱신
봉 데이터 갱신 후 02~04 재실행. BB 저점 수집 시 _row_at_ts로 스칼라 추출.
hybrid Go/No-Go 및 matched_rules·fire_outcomes 동기화.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 08:41:33 +09:00

435 lines
9.7 KiB
JSON

{
"source": "/Users/xavis/workspace/ncue/DeepCoin/docs/03_analysis/general_analysis_trades.csv",
"profile_json": "/Users/xavis/workspace/ncue/DeepCoin/docs/03_analysis/gt_mtf_profile.json",
"calibration_json": "/Users/xavis/workspace/ncue/DeepCoin/docs/03_analysis/gt_calibration_report.json",
"buy_profile_features": [
"m3_bb_pos",
"m3_ga_cci_20",
"m3_ga_keltner_pos",
"m3_ga_mfi_14",
"m3_ga_donchian_pos",
"m3_RSI",
"m5_bb_pos",
"m5_ga_cci_20",
"m5_ga_keltner_pos",
"m5_ga_mfi_14",
"m5_ga_donchian_pos",
"m5_ga_cci_oversold",
"m10_bb_pos",
"m10_ga_cci_20",
"m10_ga_ha_bull",
"m10_ga_donchian_pos",
"m10_ga_keltner_pos",
"m10_stoch_k",
"m15_bb_pos",
"m15_ga_ha_bull",
"m15_ga_cci_20",
"m15_ga_keltner_pos",
"m15_ga_donchian_pos",
"m15_stoch_k",
"m30_ga_ha_bull",
"m30_bb_pos",
"m30_ga_cci_20",
"m30_ga_cci_overbought",
"m30_ga_donchian_pos",
"m30_ga_keltner_pos",
"m60_ga_ha_bull",
"m60_ga_cci_20",
"m60_bb_pos",
"m60_ga_williams_overbought",
"m60_ga_cci_overbought",
"m60_ga_keltner_pos",
"m240_ga_ha_bull",
"m240_ga_ha_trend_up",
"m240_ga_chart_ha_trend",
"m240_ga_cci_20",
"m240_bb_pos",
"m240_ga_keltner_pos",
"d1_ga_ha_bull",
"d1_ga_cci_oversold",
"d1_ga_cci_20",
"d1_ga_hammer",
"d1_bb_pos",
"d1_ga_chart_ha_trend",
"m10_ga_williams_r",
"m10_ga_mfi_14"
],
"sell_profile_features": [
"m3_bb_pos",
"m3_ga_cci_20",
"m3_ga_keltner_pos",
"m3_ga_mfi_14",
"m3_ga_donchian_pos",
"m3_RSI",
"m5_bb_pos",
"m5_ga_cci_20",
"m5_ga_keltner_pos",
"m5_ga_mfi_14",
"m5_ga_donchian_pos",
"m5_ga_cci_oversold",
"m10_bb_pos",
"m10_ga_cci_20",
"m10_ga_ha_bull",
"m10_ga_donchian_pos",
"m10_ga_keltner_pos",
"m10_stoch_k",
"m15_bb_pos",
"m15_ga_ha_bull",
"m15_ga_cci_20",
"m15_ga_keltner_pos",
"m15_ga_donchian_pos",
"m15_stoch_k",
"m30_ga_ha_bull",
"m30_bb_pos",
"m30_ga_cci_20",
"m30_ga_cci_overbought",
"m30_ga_donchian_pos",
"m30_ga_keltner_pos",
"m60_ga_ha_bull",
"m60_ga_cci_20",
"m60_bb_pos",
"m60_ga_williams_overbought",
"m60_ga_cci_overbought",
"m60_ga_keltner_pos",
"m240_ga_ha_bull",
"m240_ga_ha_trend_up",
"m240_ga_chart_ha_trend",
"m240_ga_cci_20",
"m240_bb_pos",
"m240_ga_keltner_pos",
"d1_ga_ha_bull",
"d1_ga_cci_oversold",
"d1_ga_cci_20",
"d1_ga_hammer",
"d1_bb_pos",
"d1_ga_chart_ha_trend",
"m10_ga_williams_r",
"m10_ga_mfi_14"
],
"buy_gt_count": 325,
"sell_gt_count": 160,
"rule_count": 12,
"rules": [
{
"rule_id": "buy_compound_top3",
"side": "buy",
"kind": "compound",
"conditions": [
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.0,
"hi": 0.2135380413505097
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.0010558937498797,
"hi": 0.2085149451832707
},
{
"col": "m5_ga_cci_20",
"op": "between",
"lo": -188.40579710144863,
"hi": -113.65120836054932
}
],
"profile_cols": [
"m10_bb_pos",
"m5_bb_pos",
"m5_ga_cci_20"
]
},
{
"rule_id": "buy_compound_tight",
"side": "buy",
"kind": "compound_tight",
"conditions": [
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.02269722528896669,
"hi": 0.16417141470116056
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.050986874829589954,
"hi": 0.17673357601131273
},
{
"col": "m5_ga_cci_20",
"op": "between",
"lo": -169.2052113398648,
"hi": -124.73123841544977
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": -175.7862791639258,
"hi": -132.6451584428887
}
]
},
{
"rule_id": "buy_contrast_m10_bb_pos",
"side": "buy",
"kind": "contrast",
"conditions": [
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.02269722528896669,
"hi": 0.16417141470116056
},
{
"col": "m10_bb_pos",
"op": "lte",
"value": 0.8561892083441174
}
]
},
{
"rule_id": "buy_mtf_cross_all_tf",
"side": "buy",
"kind": "mtf_cross",
"conditions": [
{
"col": "m3_bb_pos",
"op": "between",
"lo": 0.0217975704436916,
"hi": 0.2431494170206665
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.0010558937498797,
"hi": 0.2085149451832707
},
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.0,
"hi": 0.2135380413505097
},
{
"col": "m15_bb_pos",
"op": "between",
"lo": 0.0,
"hi": 0.2485098739243929
},
{
"col": "m30_ga_ha_bull",
"op": "eq_int",
"value": 0
},
{
"col": "m60_ga_ha_bull",
"op": "eq_int",
"value": 0
},
{
"col": "m240_ga_ha_bull",
"op": "eq_int",
"value": 0
},
{
"col": "d1_ga_ha_bull",
"op": "eq_int",
"value": 0
}
]
},
{
"rule_id": "sell_compound_top3",
"side": "sell",
"kind": "compound",
"conditions": [
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.7897850598593097,
"hi": 1.0
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.776608631452867,
"hi": 0.9797670778565873
},
{
"col": "m5_ga_cci_20",
"op": "between",
"lo": 93.20386715706546,
"hi": 168.50552522505774
}
],
"profile_cols": [
"m10_bb_pos",
"m5_bb_pos",
"m5_ga_cci_20"
]
},
{
"rule_id": "sell_compound_tight",
"side": "sell",
"kind": "compound_tight",
"conditions": [
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.8328462659060121,
"hi": 0.9770682040908933
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.8247158558563334,
"hi": 0.9337055148500956
},
{
"col": "m5_ga_cci_20",
"op": "between",
"lo": 107.30920624132844,
"hi": 148.54421175101805
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": 118.85113382022408,
"hi": 158.3923823574028
}
]
},
{
"rule_id": "sell_contrast_m10_bb_pos",
"side": "sell",
"kind": "contrast",
"conditions": [
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.8328462659060121,
"hi": 0.9770682040908933
},
{
"col": "m10_bb_pos",
"op": "gte",
"value": 0.14607994670516883
}
]
},
{
"rule_id": "sell_mtf_cross_all_tf",
"side": "sell",
"kind": "mtf_cross",
"conditions": [
{
"col": "m3_bb_pos",
"op": "between",
"lo": 0.6734769690278859,
"hi": 0.9584317797555851
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.776608631452867,
"hi": 0.9797670778565873
},
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.7897850598593097,
"hi": 1.0
},
{
"col": "m15_bb_pos",
"op": "between",
"lo": 0.8094990667113329,
"hi": 1.0
},
{
"col": "m30_ga_ha_bull",
"op": "eq_int",
"value": 1
},
{
"col": "m60_ga_ha_bull",
"op": "eq_int",
"value": 1
},
{
"col": "m240_ga_ha_bull",
"op": "eq_int",
"value": 1
},
{
"col": "d1_ga_ha_bull",
"op": "eq_int",
"value": 1
}
]
},
{
"rule_id": "gt_model_buy_zigzag_bb",
"side": "buy",
"kind": "gt_model",
"logic": "and",
"conditions": [
{
"col": "gt_buy_signal",
"op": "eq_int",
"value": 1
}
],
"gt_spec": "trough_zigzag + bb_pos <= GT_BUY_BB_MAX"
},
{
"rule_id": "gt_model_buy_trough_local",
"side": "buy",
"kind": "gt_model",
"logic": "and",
"conditions": [
{
"col": "gt_trough_local",
"op": "eq_int",
"value": 1
},
{
"col": "bb_pos",
"op": "lte",
"value": 0.45
}
],
"gt_spec": "local trough + bb filter"
},
{
"rule_id": "gt_model_sell_zigzag_peak",
"side": "sell",
"kind": "gt_model",
"logic": "and",
"conditions": [
{
"col": "gt_sell_signal",
"op": "eq_int",
"value": 1
}
],
"gt_spec": "major swing peak (ZigZag)"
},
{
"rule_id": "gt_model_sell_peak_local",
"side": "sell",
"kind": "gt_model",
"logic": "and",
"conditions": [
{
"col": "gt_peak_local",
"op": "eq_int",
"value": 1
}
],
"gt_spec": "local high extremum"
}
]
}