docs 산출물(GT·분석·매칭·시뮬)을 Git 추적 대상에 포함한다.
.gitignore에서 docs 하위 제외 규칙을 제거하고 최신 HTML·CSV·JSON 리포트를 원격에 공유한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
24
docs/04_matching/backtest_summary.html
Normal file
24
docs/04_matching/backtest_summary.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<!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>
|
||||
86925
docs/04_matching/fire_outcomes.csv
Normal file
86925
docs/04_matching/fire_outcomes.csv
Normal file
File diff suppressed because it is too large
Load Diff
12
docs/04_matching/gt_overlap_report.json
Normal file
12
docs/04_matching/gt_overlap_report.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"buy": {
|
||||
"gt_count": 306,
|
||||
"matched": 266,
|
||||
"recall": 0.8693
|
||||
},
|
||||
"sell": {
|
||||
"gt_count": 150,
|
||||
"matched": 134,
|
||||
"recall": 0.8933
|
||||
}
|
||||
}
|
||||
2451
docs/04_matching/matched_rules.json
Normal file
2451
docs/04_matching/matched_rules.json
Normal file
File diff suppressed because it is too large
Load Diff
421
docs/04_matching/rule_candidates.json
Normal file
421
docs/04_matching/rule_candidates.json
Normal file
@@ -0,0 +1,421 @@
|
||||
{
|
||||
"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_ga_cci_20",
|
||||
"m3_bb_pos",
|
||||
"m3_ga_keltner_pos",
|
||||
"m3_ga_mfi_14",
|
||||
"m3_RSI",
|
||||
"m3_ga_donchian_pos",
|
||||
"m5_bb_pos",
|
||||
"m5_ga_cci_20",
|
||||
"m5_ga_mfi_14",
|
||||
"m5_ga_keltner_pos",
|
||||
"m5_ga_donchian_pos",
|
||||
"m5_ga_cci_oversold",
|
||||
"m10_bb_pos",
|
||||
"m10_ga_cci_20",
|
||||
"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",
|
||||
"m30_ga_ha_bull",
|
||||
"m30_ga_williams_overbought",
|
||||
"m30_bb_pos",
|
||||
"m30_ga_cci_20",
|
||||
"m30_ga_donchian_pos",
|
||||
"m30_ga_cci_overbought",
|
||||
"m60_ga_ha_bull",
|
||||
"m60_bb_pos",
|
||||
"m60_ga_cci_20",
|
||||
"m60_ga_williams_overbought",
|
||||
"m60_ga_keltner_pos",
|
||||
"m60_ga_cci_overbought",
|
||||
"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_20",
|
||||
"d1_ga_hammer",
|
||||
"d1_ga_cci_oversold",
|
||||
"d1_bb_pos",
|
||||
"d1_ga_ha_trend_up",
|
||||
"m10_ga_williams_overbought",
|
||||
"m10_ga_williams_r"
|
||||
],
|
||||
"sell_profile_features": [
|
||||
"m3_ga_cci_20",
|
||||
"m3_bb_pos",
|
||||
"m3_ga_keltner_pos",
|
||||
"m3_ga_mfi_14",
|
||||
"m3_RSI",
|
||||
"m3_ga_donchian_pos",
|
||||
"m5_bb_pos",
|
||||
"m5_ga_cci_20",
|
||||
"m5_ga_mfi_14",
|
||||
"m5_ga_keltner_pos",
|
||||
"m5_ga_donchian_pos",
|
||||
"m5_ga_cci_oversold",
|
||||
"m10_bb_pos",
|
||||
"m10_ga_cci_20",
|
||||
"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",
|
||||
"m30_ga_ha_bull",
|
||||
"m30_ga_williams_overbought",
|
||||
"m30_bb_pos",
|
||||
"m30_ga_cci_20",
|
||||
"m30_ga_donchian_pos",
|
||||
"m30_ga_cci_overbought",
|
||||
"m60_ga_ha_bull",
|
||||
"m60_bb_pos",
|
||||
"m60_ga_cci_20",
|
||||
"m60_ga_williams_overbought",
|
||||
"m60_ga_keltner_pos",
|
||||
"m60_ga_cci_overbought",
|
||||
"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_20",
|
||||
"d1_ga_hammer",
|
||||
"d1_ga_cci_oversold",
|
||||
"d1_bb_pos",
|
||||
"d1_ga_ha_trend_up",
|
||||
"m10_ga_williams_overbought",
|
||||
"m10_ga_williams_r"
|
||||
],
|
||||
"buy_gt_count": 304,
|
||||
"sell_gt_count": 150,
|
||||
"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.20106701606099592
|
||||
},
|
||||
{
|
||||
"col": "m60_ga_ha_bull",
|
||||
"op": "eq_int",
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"col": "m10_ga_cci_20",
|
||||
"op": "between",
|
||||
"lo": -196.75277202865237,
|
||||
"hi": -118.66969390129654
|
||||
}
|
||||
],
|
||||
"profile_cols": [
|
||||
"m10_bb_pos",
|
||||
"m60_ga_ha_bull",
|
||||
"m10_ga_cci_20"
|
||||
]
|
||||
},
|
||||
{
|
||||
"rule_id": "buy_compound_tight",
|
||||
"side": "buy",
|
||||
"kind": "compound_tight",
|
||||
"conditions": [
|
||||
{
|
||||
"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
|
||||
},
|
||||
{
|
||||
"col": "m5_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.04935035261803711,
|
||||
"hi": 0.1678449416858898
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rule_id": "buy_contrast_m10_bb_pos",
|
||||
"side": "buy",
|
||||
"kind": "contrast",
|
||||
"conditions": [
|
||||
{
|
||||
"col": "m10_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.020269805294580265,
|
||||
"hi": 0.1573047482613718
|
||||
},
|
||||
{
|
||||
"col": "m10_bb_pos",
|
||||
"op": "lte",
|
||||
"value": 0.8652920380018327
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rule_id": "buy_mtf_cross_all_tf",
|
||||
"side": "buy",
|
||||
"kind": "mtf_cross",
|
||||
"conditions": [
|
||||
{
|
||||
"col": "m3_ga_cci_20",
|
||||
"op": "between",
|
||||
"lo": -165.63146997929448,
|
||||
"hi": -94.58417734722393
|
||||
},
|
||||
{
|
||||
"col": "m5_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.0007919203113804,
|
||||
"hi": 0.20459180244412847
|
||||
},
|
||||
{
|
||||
"col": "m10_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.0,
|
||||
"hi": 0.20106701606099592
|
||||
},
|
||||
{
|
||||
"col": "m15_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.0,
|
||||
"hi": 0.2273660357984182
|
||||
},
|
||||
{
|
||||
"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.8052954063070535,
|
||||
"hi": 1.0
|
||||
},
|
||||
{
|
||||
"col": "m60_ga_ha_bull",
|
||||
"op": "eq_int",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"col": "m10_ga_cci_20",
|
||||
"op": "between",
|
||||
"lo": 111.65828056686297,
|
||||
"hi": 181.1790204647342
|
||||
}
|
||||
],
|
||||
"profile_cols": [
|
||||
"m10_bb_pos",
|
||||
"m60_ga_ha_bull",
|
||||
"m10_ga_cci_20"
|
||||
]
|
||||
},
|
||||
{
|
||||
"rule_id": "sell_compound_tight",
|
||||
"side": "sell",
|
||||
"kind": "compound_tight",
|
||||
"conditions": [
|
||||
{
|
||||
"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
|
||||
},
|
||||
{
|
||||
"col": "m5_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.8255534770185807,
|
||||
"hi": 0.9360858121763327
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rule_id": "sell_contrast_m10_bb_pos",
|
||||
"side": "sell",
|
||||
"kind": "contrast",
|
||||
"conditions": [
|
||||
{
|
||||
"col": "m10_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.8404304497544448,
|
||||
"hi": 0.9835509404754346
|
||||
},
|
||||
{
|
||||
"col": "m10_bb_pos",
|
||||
"op": "gte",
|
||||
"value": 0.1345186926688078
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"rule_id": "sell_mtf_cross_all_tf",
|
||||
"side": "sell",
|
||||
"kind": "mtf_cross",
|
||||
"conditions": [
|
||||
{
|
||||
"col": "m3_ga_cci_20",
|
||||
"op": "between",
|
||||
"lo": 71.08020816708225,
|
||||
"hi": 152.0239279574577
|
||||
},
|
||||
{
|
||||
"col": "m5_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.7812942210429725,
|
||||
"hi": 0.979827466617936
|
||||
},
|
||||
{
|
||||
"col": "m10_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.8052954063070535,
|
||||
"hi": 1.0
|
||||
},
|
||||
{
|
||||
"col": "m15_bb_pos",
|
||||
"op": "between",
|
||||
"lo": 0.8266597207479214,
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
87054
docs/04_matching/rule_fires.csv
Normal file
87054
docs/04_matching/rule_fires.csv
Normal file
File diff suppressed because it is too large
Load Diff
5794
docs/04_matching/simulation_report.html
Normal file
5794
docs/04_matching/simulation_report.html
Normal file
File diff suppressed because one or more lines are too long
2259
docs/04_matching/simulation_report.json
Normal file
2259
docs/04_matching/simulation_report.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user