refactor: GT·시뮬·운영 3축 정리 및 hybrid 실거래 정합

Phase C/dry-run·미사용 모듈·재생성 HTML을 제거하고, 운영 체결을
sim_causal_hybrid와 동일한 hybrid 로직으로 통합한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
xavis
2026-06-03 23:50:28 +09:00
parent a16c942be4
commit d7848df6f7
85 changed files with 177180 additions and 196131 deletions

View File

@@ -1,24 +0,0 @@
<!DOCTYPE html>
<html lang="ko"><head><meta charset="utf-8"/>
<title>04 Backtest Summary</title>
<style>
body { font-family: "Malgun Gothic", Arial, sans-serif; margin: 24px; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
th { background: #e2e8f0; }
</style></head><body>
<h1>04 매칭 — 05 monitor_rules (holdout 우선) (valid 구간)</h1>
<p>방법: gt_profile_plus_full_bar_ev_filter</p>
<p></p>
<h2>선별 규칙</h2>
<table>
<thead><tr><th>rule_id</th><th>side</th><th>valid_n</th><th>valid_ev</th>
<th>holdout_n</th><th>holdout_ev</th><th>holdout_pf</th></tr></thead>
<tbody><tr><td>buy_compound_tight</td><td>buy</td><td>620</td><td>6.6782</td><td>221</td><td>5.6633</td><td>3.1592</td></tr><tr><td>sell_mtf_cross_all_tf</td><td>sell</td><td>565</td><td>7.4984</td><td>624</td><td>7.1322</td><td>4450.4872</td></tr></tbody>
</table>
<h2>GT recall (±15분, 전체 발화 기준)</h2>
<ul>
<li>매수: {'gt_count': 306, 'matched': 266, 'recall': 0.8693}</li>
<li>매도: {'gt_count': 150, 'matched': 134, 'recall': 0.8933}</li>
</ul>
</body></html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +0,0 @@
{
"buy": {
"gt_count": 306,
"matched": 266,
"recall": 0.8693
},
"sell": {
"gt_count": 150,
"matched": 134,
"recall": 0.8933
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,42 +3,42 @@
"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_ga_cci_20",
"m3_bb_pos",
"m3_ga_cci_20",
"m3_ga_keltner_pos",
"m3_ga_mfi_14",
"m3_RSI",
"m3_ga_donchian_pos",
"m3_RSI",
"m5_bb_pos",
"m5_ga_cci_20",
"m5_ga_mfi_14",
"m5_ga_keltner_pos",
"m5_ga_mfi_14",
"m5_ga_donchian_pos",
"m5_ga_cci_oversold",
"m5_RSI",
"m10_bb_pos",
"m10_ga_cci_20",
"m10_ga_ha_bull",
"m10_ga_donchian_pos",
"m10_ga_keltner_pos",
"m10_stoch_k",
"m10_ga_ha_bull",
"m15_bb_pos",
"m15_ga_cci_20",
"m15_ga_ha_bull",
"m15_ga_keltner_pos",
"m15_ga_donchian_pos",
"m15_ga_williams_overbought",
"m15_stoch_k",
"m30_ga_ha_bull",
"m30_ga_williams_overbought",
"m30_bb_pos",
"m30_ga_cci_20",
"m30_ga_williams_overbought",
"m30_ga_donchian_pos",
"m30_ga_cci_overbought",
"m30_ga_keltner_pos",
"m60_ga_ha_bull",
"m60_bb_pos",
"m60_ga_cci_20",
"m60_ga_williams_overbought",
"m60_ga_keltner_pos",
"m60_ga_cci_20",
"m60_ga_cci_overbought",
"m60_ga_keltner_pos",
"m240_ga_ha_bull",
"m240_ga_ha_trend_up",
"m240_ga_chart_ha_trend",
@@ -47,50 +47,50 @@
"m240_ga_keltner_pos",
"d1_ga_ha_bull",
"d1_ga_cci_20",
"d1_ga_hammer",
"d1_ga_cci_oversold",
"d1_bb_pos",
"d1_ga_cci_overbought",
"d1_ga_ha_trend_up",
"m10_ga_williams_overbought",
"m10_ga_williams_r"
"w1_ga_three_black_crows",
"w1_ga_pattern_wedge_rising"
],
"sell_profile_features": [
"m3_ga_cci_20",
"m3_bb_pos",
"m3_ga_cci_20",
"m3_ga_keltner_pos",
"m3_ga_mfi_14",
"m3_RSI",
"m3_ga_donchian_pos",
"m3_RSI",
"m5_bb_pos",
"m5_ga_cci_20",
"m5_ga_mfi_14",
"m5_ga_keltner_pos",
"m5_ga_mfi_14",
"m5_ga_donchian_pos",
"m5_ga_cci_oversold",
"m5_RSI",
"m10_bb_pos",
"m10_ga_cci_20",
"m10_ga_ha_bull",
"m10_ga_donchian_pos",
"m10_ga_keltner_pos",
"m10_stoch_k",
"m10_ga_ha_bull",
"m15_bb_pos",
"m15_ga_cci_20",
"m15_ga_ha_bull",
"m15_ga_keltner_pos",
"m15_ga_donchian_pos",
"m15_ga_williams_overbought",
"m15_stoch_k",
"m30_ga_ha_bull",
"m30_ga_williams_overbought",
"m30_bb_pos",
"m30_ga_cci_20",
"m30_ga_williams_overbought",
"m30_ga_donchian_pos",
"m30_ga_cci_overbought",
"m30_ga_keltner_pos",
"m60_ga_ha_bull",
"m60_bb_pos",
"m60_ga_cci_20",
"m60_ga_williams_overbought",
"m60_ga_keltner_pos",
"m60_ga_cci_20",
"m60_ga_cci_overbought",
"m60_ga_keltner_pos",
"m240_ga_ha_bull",
"m240_ga_ha_trend_up",
"m240_ga_chart_ha_trend",
@@ -99,15 +99,15 @@
"m240_ga_keltner_pos",
"d1_ga_ha_bull",
"d1_ga_cci_20",
"d1_ga_hammer",
"d1_ga_cci_oversold",
"d1_bb_pos",
"d1_ga_cci_overbought",
"d1_ga_ha_trend_up",
"m10_ga_williams_overbought",
"m10_ga_williams_r"
"w1_ga_three_black_crows",
"w1_ga_pattern_wedge_rising"
],
"buy_gt_count": 304,
"sell_gt_count": 150,
"buy_gt_count": 318,
"sell_gt_count": 158,
"rule_count": 12,
"rules": [
{
@@ -119,23 +119,24 @@
"col": "m10_bb_pos",
"op": "between",
"lo": 0.0,
"hi": 0.20106701606099592
"hi": 0.20698250741759133
},
{
"col": "m60_ga_ha_bull",
"op": "eq_int",
"value": 0
"col": "m5_bb_pos",
"op": "between",
"lo": 0.0002639734376405,
"hi": 0.2055391802948894
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": -196.75277202865237,
"hi": -118.66969390129654
"lo": -196.53481289151543,
"hi": -118.19602423726946
}
],
"profile_cols": [
"m10_bb_pos",
"m60_ga_ha_bull",
"m5_bb_pos",
"m10_ga_cci_20"
]
},
@@ -147,20 +148,20 @@
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.020269805294580265,
"hi": 0.1573047482613718
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": -176.0610418573743,
"hi": -134.25322440673844
"lo": 0.021172207503886126,
"hi": 0.16409846055318933
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.04935035261803711,
"hi": 0.1678449416858898
"lo": 0.04926406505452075,
"hi": 0.17056205475779587
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": -176.08366788851922,
"hi": -133.4800557108608
}
]
},
@@ -172,13 +173,13 @@
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.020269805294580265,
"hi": 0.1573047482613718
"lo": 0.021172207503886126,
"hi": 0.16409846055318933
},
{
"col": "m10_bb_pos",
"op": "lte",
"value": 0.8652920380018327
"value": 0.8588208478908868
}
]
},
@@ -188,28 +189,28 @@
"kind": "mtf_cross",
"conditions": [
{
"col": "m3_ga_cci_20",
"col": "m3_bb_pos",
"op": "between",
"lo": -165.63146997929448,
"hi": -94.58417734722393
"lo": 0.02225009472391165,
"hi": 0.24829322108487767
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.0007919203113804,
"hi": 0.20459180244412847
"lo": 0.0002639734376405,
"hi": 0.2055391802948894
},
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.0,
"hi": 0.20106701606099592
"hi": 0.20698250741759133
},
{
"col": "m15_bb_pos",
"op": "between",
"lo": 0.0,
"hi": 0.2273660357984182
"hi": 0.2400835423107455
},
{
"col": "m30_ga_ha_bull",
@@ -230,6 +231,11 @@
"col": "d1_ga_ha_bull",
"op": "eq_int",
"value": 0
},
{
"col": "w1_ga_three_black_crows",
"op": "eq_int",
"value": 0
}
]
},
@@ -241,24 +247,25 @@
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.8052954063070535,
"lo": 0.7941295136276819,
"hi": 1.0
},
{
"col": "m60_ga_ha_bull",
"op": "eq_int",
"value": 1
"col": "m5_bb_pos",
"op": "between",
"lo": 0.7821369534082708,
"hi": 0.9843377974456614
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": 111.65828056686297,
"hi": 181.1790204647342
"lo": 111.04253803255844,
"hi": 180.08898611506828
}
],
"profile_cols": [
"m10_bb_pos",
"m60_ga_ha_bull",
"m5_bb_pos",
"m10_ga_cci_20"
]
},
@@ -270,20 +277,20 @@
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.8404304497544448,
"hi": 0.9835509404754346
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": 121.46178461863994,
"hi": 162.4704293245592
"lo": 0.8370267885275882,
"hi": 0.9796418765981115
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.8255534770185807,
"hi": 0.9360858121763327
"lo": 0.8252236664366895,
"hi": 0.9364576511584775
},
{
"col": "m10_ga_cci_20",
"op": "between",
"lo": 119.31363996378025,
"hi": 158.95227481534286
}
]
},
@@ -295,13 +302,13 @@
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.8404304497544448,
"hi": 0.9835509404754346
"lo": 0.8370267885275882,
"hi": 0.9796418765981115
},
{
"col": "m10_bb_pos",
"op": "gte",
"value": 0.1345186926688078
"value": 0.14589043491619427
}
]
},
@@ -311,27 +318,27 @@
"kind": "mtf_cross",
"conditions": [
{
"col": "m3_ga_cci_20",
"col": "m3_bb_pos",
"op": "between",
"lo": 71.08020816708225,
"hi": 152.0239279574577
"lo": 0.6750785337434262,
"hi": 0.9593012516978001
},
{
"col": "m5_bb_pos",
"op": "between",
"lo": 0.7812942210429725,
"hi": 0.979827466617936
"lo": 0.7821369534082708,
"hi": 0.9843377974456614
},
{
"col": "m10_bb_pos",
"op": "between",
"lo": 0.8052954063070535,
"lo": 0.7941295136276819,
"hi": 1.0
},
{
"col": "m15_bb_pos",
"op": "between",
"lo": 0.8266597207479214,
"lo": 0.8206164588850927,
"hi": 1.0
},
{
@@ -353,6 +360,11 @@
"col": "d1_ga_ha_bull",
"op": "eq_int",
"value": 1
},
{
"col": "w1_ga_three_black_crows",
"op": "eq_int",
"value": 0
}
]
},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff