Phase C/dry-run·미사용 모듈·재생성 HTML을 제거하고, 운영 체결을 sim_causal_hybrid와 동일한 hybrid 로직으로 통합한다. Co-authored-by: Cursor <cursoragent@cursor.com>
2518 lines
57 KiB
JSON
2518 lines
57 KiB
JSON
{
|
|
"method": "gt_profile_plus_full_bar_ev_filter",
|
|
"label_mode": "leg_gt",
|
|
"train_ratio": 0.7,
|
|
"holdout_ratio": 0.15,
|
|
"criteria": {
|
|
"min_fires_valid": 10,
|
|
"min_fires_holdout": 5,
|
|
"min_ev_valid_pct": 0.0,
|
|
"min_profit_factor_valid": 1.0,
|
|
"max_valid_fire_rate": 0.35
|
|
},
|
|
"selected": [
|
|
{
|
|
"rule_id": "gt_model_buy_zigzag_bb",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_buy_signal",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0002,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 25,
|
|
"ev_pct": 8.6824,
|
|
"win_rate": 0.84,
|
|
"profit_factor": 44.9
|
|
},
|
|
"train": {
|
|
"count": 14,
|
|
"ev_pct": 6.908,
|
|
"win_rate": 0.8571,
|
|
"profit_factor": 109.1666
|
|
},
|
|
"valid": {
|
|
"count": 10,
|
|
"ev_pct": 11.1305,
|
|
"win_rate": 0.8,
|
|
"profit_factor": 28.4806
|
|
},
|
|
"holdout": {
|
|
"count": 1,
|
|
"ev_pct": 9.0429,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 9.0429
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": false
|
|
},
|
|
{
|
|
"rule_id": "buy_mtf_cross_all_tf",
|
|
"side": "buy",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.02225009472391165,
|
|
"hi": 0.24829322108487767
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.2400835423107455
|
|
},
|
|
{
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0228,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4248,
|
|
"ev_pct": 5.486,
|
|
"win_rate": 0.7363,
|
|
"profit_factor": 4.3732
|
|
},
|
|
"train": {
|
|
"count": 2758,
|
|
"ev_pct": 4.9175,
|
|
"win_rate": 0.7208,
|
|
"profit_factor": 3.8415
|
|
},
|
|
"valid": {
|
|
"count": 1012,
|
|
"ev_pct": 7.9951,
|
|
"win_rate": 0.8261,
|
|
"profit_factor": 8.5158
|
|
},
|
|
"holdout": {
|
|
"count": 478,
|
|
"ev_pct": 3.4543,
|
|
"win_rate": 0.636,
|
|
"profit_factor": 2.5588
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_buy_trough_local",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_trough_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
},
|
|
{
|
|
"col": "bb_pos",
|
|
"op": "lte",
|
|
"value": 0.45
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0114,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1506,
|
|
"ev_pct": 6.2247,
|
|
"win_rate": 0.739,
|
|
"profit_factor": 4.859
|
|
},
|
|
"train": {
|
|
"count": 669,
|
|
"ev_pct": 6.3469,
|
|
"win_rate": 0.7668,
|
|
"profit_factor": 5.3425
|
|
},
|
|
"valid": {
|
|
"count": 507,
|
|
"ev_pct": 7.4598,
|
|
"win_rate": 0.7535,
|
|
"profit_factor": 4.552
|
|
},
|
|
"holdout": {
|
|
"count": 330,
|
|
"ev_pct": 4.0791,
|
|
"win_rate": 0.6606,
|
|
"profit_factor": 4.4814
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_compound_top3",
|
|
"side": "buy",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -196.53481289151543,
|
|
"hi": -118.19602423726946
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0647,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11568,
|
|
"ev_pct": 5.389,
|
|
"win_rate": 0.7159,
|
|
"profit_factor": 3.53
|
|
},
|
|
"train": {
|
|
"count": 7328,
|
|
"ev_pct": 4.8912,
|
|
"win_rate": 0.7201,
|
|
"profit_factor": 3.5447
|
|
},
|
|
"valid": {
|
|
"count": 2871,
|
|
"ev_pct": 6.8916,
|
|
"win_rate": 0.7402,
|
|
"profit_factor": 3.6933
|
|
},
|
|
"holdout": {
|
|
"count": 1369,
|
|
"ev_pct": 4.9023,
|
|
"win_rate": 0.6421,
|
|
"profit_factor": 3.0916
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_compound_tight",
|
|
"side": "buy",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.04926406505452075,
|
|
"hi": 0.17056205475779587
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -176.08366788851922,
|
|
"hi": -133.4800557108608
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0149,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2461,
|
|
"ev_pct": 5.4605,
|
|
"win_rate": 0.7017,
|
|
"profit_factor": 3.3918
|
|
},
|
|
"train": {
|
|
"count": 1552,
|
|
"ev_pct": 4.5999,
|
|
"win_rate": 0.6907,
|
|
"profit_factor": 3.1874
|
|
},
|
|
"valid": {
|
|
"count": 661,
|
|
"ev_pct": 6.8095,
|
|
"win_rate": 0.7262,
|
|
"profit_factor": 3.4851
|
|
},
|
|
"holdout": {
|
|
"count": 248,
|
|
"ev_pct": 7.2513,
|
|
"win_rate": 0.7056,
|
|
"profit_factor": 4.3089
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_mtf_cross_all_tf",
|
|
"side": "sell",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.6750785337434262,
|
|
"hi": 0.9593012516978001
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8206164588850927,
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0151,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 3480,
|
|
"ev_pct": 7.5844,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 26393.624
|
|
},
|
|
"train": {
|
|
"count": 2056,
|
|
"ev_pct": 7.5064,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 15433.2445
|
|
},
|
|
"valid": {
|
|
"count": 670,
|
|
"ev_pct": 7.2347,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 4847.2609
|
|
},
|
|
"holdout": {
|
|
"count": 754,
|
|
"ev_pct": 8.1076,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6113.1186
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_tight",
|
|
"side": "sell",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8252236664366895,
|
|
"hi": 0.9364576511584775
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 119.31363996378025,
|
|
"hi": 158.95227481534286
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0141,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2563,
|
|
"ev_pct": 4.9479,
|
|
"win_rate": 0.9462,
|
|
"profit_factor": 41.0043
|
|
},
|
|
"train": {
|
|
"count": 1450,
|
|
"ev_pct": 4.75,
|
|
"win_rate": 0.9524,
|
|
"profit_factor": 43.2686
|
|
},
|
|
"valid": {
|
|
"count": 624,
|
|
"ev_pct": 4.7054,
|
|
"win_rate": 0.9487,
|
|
"profit_factor": 31.7944
|
|
},
|
|
"holdout": {
|
|
"count": 489,
|
|
"ev_pct": 5.844,
|
|
"win_rate": 0.9243,
|
|
"profit_factor": 49.6781
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_top3",
|
|
"side": "sell",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 111.04253803255844,
|
|
"hi": 180.08898611506828
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.053,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9903,
|
|
"ev_pct": 4.81,
|
|
"win_rate": 0.9456,
|
|
"profit_factor": 32.2148
|
|
},
|
|
"train": {
|
|
"count": 5923,
|
|
"ev_pct": 4.8106,
|
|
"win_rate": 0.9534,
|
|
"profit_factor": 41.5226
|
|
},
|
|
"valid": {
|
|
"count": 2350,
|
|
"ev_pct": 4.4023,
|
|
"win_rate": 0.9413,
|
|
"profit_factor": 19.4534
|
|
},
|
|
"holdout": {
|
|
"count": 1630,
|
|
"ev_pct": 5.3955,
|
|
"win_rate": 0.9233,
|
|
"profit_factor": 34.54
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_contrast_m10_bb_pos",
|
|
"side": "sell",
|
|
"kind": "contrast",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14589043491619427
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.091,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16536,
|
|
"ev_pct": 4.6125,
|
|
"win_rate": 0.9368,
|
|
"profit_factor": 27.9852
|
|
},
|
|
"train": {
|
|
"count": 9918,
|
|
"ev_pct": 4.7163,
|
|
"win_rate": 0.9389,
|
|
"profit_factor": 34.1885
|
|
},
|
|
"valid": {
|
|
"count": 4035,
|
|
"ev_pct": 4.1748,
|
|
"win_rate": 0.94,
|
|
"profit_factor": 19.066
|
|
},
|
|
"holdout": {
|
|
"count": 2583,
|
|
"ev_pct": 4.8977,
|
|
"win_rate": 0.9237,
|
|
"profit_factor": 27.1049
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_sell_peak_local",
|
|
"side": "sell",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_peak_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0478,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 6593,
|
|
"ev_pct": 2.4183,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.121
|
|
},
|
|
"train": {
|
|
"count": 3057,
|
|
"ev_pct": 2.9951,
|
|
"win_rate": 0.8394,
|
|
"profit_factor": 8.0097
|
|
},
|
|
"valid": {
|
|
"count": 2120,
|
|
"ev_pct": 2.1911,
|
|
"win_rate": 0.8396,
|
|
"profit_factor": 4.6181
|
|
},
|
|
"holdout": {
|
|
"count": 1416,
|
|
"ev_pct": 1.5133,
|
|
"win_rate": 0.7895,
|
|
"profit_factor": 2.6755
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"selected_best_effort": [],
|
|
"holdout_passed": [
|
|
{
|
|
"rule_id": "buy_compound_top3",
|
|
"side": "buy",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -196.53481289151543,
|
|
"hi": -118.19602423726946
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0647,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11568,
|
|
"ev_pct": 5.389,
|
|
"win_rate": 0.7159,
|
|
"profit_factor": 3.53
|
|
},
|
|
"train": {
|
|
"count": 7328,
|
|
"ev_pct": 4.8912,
|
|
"win_rate": 0.7201,
|
|
"profit_factor": 3.5447
|
|
},
|
|
"valid": {
|
|
"count": 2871,
|
|
"ev_pct": 6.8916,
|
|
"win_rate": 0.7402,
|
|
"profit_factor": 3.6933
|
|
},
|
|
"holdout": {
|
|
"count": 1369,
|
|
"ev_pct": 4.9023,
|
|
"win_rate": 0.6421,
|
|
"profit_factor": 3.0916
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_compound_tight",
|
|
"side": "buy",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.04926406505452075,
|
|
"hi": 0.17056205475779587
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -176.08366788851922,
|
|
"hi": -133.4800557108608
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0149,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2461,
|
|
"ev_pct": 5.4605,
|
|
"win_rate": 0.7017,
|
|
"profit_factor": 3.3918
|
|
},
|
|
"train": {
|
|
"count": 1552,
|
|
"ev_pct": 4.5999,
|
|
"win_rate": 0.6907,
|
|
"profit_factor": 3.1874
|
|
},
|
|
"valid": {
|
|
"count": 661,
|
|
"ev_pct": 6.8095,
|
|
"win_rate": 0.7262,
|
|
"profit_factor": 3.4851
|
|
},
|
|
"holdout": {
|
|
"count": 248,
|
|
"ev_pct": 7.2513,
|
|
"win_rate": 0.7056,
|
|
"profit_factor": 4.3089
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_contrast_m10_bb_pos",
|
|
"side": "buy",
|
|
"kind": "contrast",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "lte",
|
|
"value": 0.8588208478908868
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.1136,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 19150,
|
|
"ev_pct": 5.4936,
|
|
"win_rate": 0.7173,
|
|
"profit_factor": 3.7049
|
|
},
|
|
"train": {
|
|
"count": 11702,
|
|
"ev_pct": 5.0822,
|
|
"win_rate": 0.7174,
|
|
"profit_factor": 3.7529
|
|
},
|
|
"valid": {
|
|
"count": 5040,
|
|
"ev_pct": 6.6694,
|
|
"win_rate": 0.7427,
|
|
"profit_factor": 3.6894
|
|
},
|
|
"holdout": {
|
|
"count": 2408,
|
|
"ev_pct": 5.0317,
|
|
"win_rate": 0.664,
|
|
"profit_factor": 3.5291
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_mtf_cross_all_tf",
|
|
"side": "buy",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.02225009472391165,
|
|
"hi": 0.24829322108487767
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.2400835423107455
|
|
},
|
|
{
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0228,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4248,
|
|
"ev_pct": 5.486,
|
|
"win_rate": 0.7363,
|
|
"profit_factor": 4.3732
|
|
},
|
|
"train": {
|
|
"count": 2758,
|
|
"ev_pct": 4.9175,
|
|
"win_rate": 0.7208,
|
|
"profit_factor": 3.8415
|
|
},
|
|
"valid": {
|
|
"count": 1012,
|
|
"ev_pct": 7.9951,
|
|
"win_rate": 0.8261,
|
|
"profit_factor": 8.5158
|
|
},
|
|
"holdout": {
|
|
"count": 478,
|
|
"ev_pct": 3.4543,
|
|
"win_rate": 0.636,
|
|
"profit_factor": 2.5588
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_top3",
|
|
"side": "sell",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 111.04253803255844,
|
|
"hi": 180.08898611506828
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.053,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9903,
|
|
"ev_pct": 4.81,
|
|
"win_rate": 0.9456,
|
|
"profit_factor": 32.2148
|
|
},
|
|
"train": {
|
|
"count": 5923,
|
|
"ev_pct": 4.8106,
|
|
"win_rate": 0.9534,
|
|
"profit_factor": 41.5226
|
|
},
|
|
"valid": {
|
|
"count": 2350,
|
|
"ev_pct": 4.4023,
|
|
"win_rate": 0.9413,
|
|
"profit_factor": 19.4534
|
|
},
|
|
"holdout": {
|
|
"count": 1630,
|
|
"ev_pct": 5.3955,
|
|
"win_rate": 0.9233,
|
|
"profit_factor": 34.54
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_tight",
|
|
"side": "sell",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8252236664366895,
|
|
"hi": 0.9364576511584775
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 119.31363996378025,
|
|
"hi": 158.95227481534286
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0141,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2563,
|
|
"ev_pct": 4.9479,
|
|
"win_rate": 0.9462,
|
|
"profit_factor": 41.0043
|
|
},
|
|
"train": {
|
|
"count": 1450,
|
|
"ev_pct": 4.75,
|
|
"win_rate": 0.9524,
|
|
"profit_factor": 43.2686
|
|
},
|
|
"valid": {
|
|
"count": 624,
|
|
"ev_pct": 4.7054,
|
|
"win_rate": 0.9487,
|
|
"profit_factor": 31.7944
|
|
},
|
|
"holdout": {
|
|
"count": 489,
|
|
"ev_pct": 5.844,
|
|
"win_rate": 0.9243,
|
|
"profit_factor": 49.6781
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_contrast_m10_bb_pos",
|
|
"side": "sell",
|
|
"kind": "contrast",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14589043491619427
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.091,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16536,
|
|
"ev_pct": 4.6125,
|
|
"win_rate": 0.9368,
|
|
"profit_factor": 27.9852
|
|
},
|
|
"train": {
|
|
"count": 9918,
|
|
"ev_pct": 4.7163,
|
|
"win_rate": 0.9389,
|
|
"profit_factor": 34.1885
|
|
},
|
|
"valid": {
|
|
"count": 4035,
|
|
"ev_pct": 4.1748,
|
|
"win_rate": 0.94,
|
|
"profit_factor": 19.066
|
|
},
|
|
"holdout": {
|
|
"count": 2583,
|
|
"ev_pct": 4.8977,
|
|
"win_rate": 0.9237,
|
|
"profit_factor": 27.1049
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_mtf_cross_all_tf",
|
|
"side": "sell",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.6750785337434262,
|
|
"hi": 0.9593012516978001
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8206164588850927,
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0151,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 3480,
|
|
"ev_pct": 7.5844,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 26393.624
|
|
},
|
|
"train": {
|
|
"count": 2056,
|
|
"ev_pct": 7.5064,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 15433.2445
|
|
},
|
|
"valid": {
|
|
"count": 670,
|
|
"ev_pct": 7.2347,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 4847.2609
|
|
},
|
|
"holdout": {
|
|
"count": 754,
|
|
"ev_pct": 8.1076,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6113.1186
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_buy_trough_local",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_trough_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
},
|
|
{
|
|
"col": "bb_pos",
|
|
"op": "lte",
|
|
"value": 0.45
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0114,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1506,
|
|
"ev_pct": 6.2247,
|
|
"win_rate": 0.739,
|
|
"profit_factor": 4.859
|
|
},
|
|
"train": {
|
|
"count": 669,
|
|
"ev_pct": 6.3469,
|
|
"win_rate": 0.7668,
|
|
"profit_factor": 5.3425
|
|
},
|
|
"valid": {
|
|
"count": 507,
|
|
"ev_pct": 7.4598,
|
|
"win_rate": 0.7535,
|
|
"profit_factor": 4.552
|
|
},
|
|
"holdout": {
|
|
"count": 330,
|
|
"ev_pct": 4.0791,
|
|
"win_rate": 0.6606,
|
|
"profit_factor": 4.4814
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_sell_peak_local",
|
|
"side": "sell",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_peak_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0478,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 6593,
|
|
"ev_pct": 2.4183,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.121
|
|
},
|
|
"train": {
|
|
"count": 3057,
|
|
"ev_pct": 2.9951,
|
|
"win_rate": 0.8394,
|
|
"profit_factor": 8.0097
|
|
},
|
|
"valid": {
|
|
"count": 2120,
|
|
"ev_pct": 2.1911,
|
|
"win_rate": 0.8396,
|
|
"profit_factor": 4.6181
|
|
},
|
|
"holdout": {
|
|
"count": 1416,
|
|
"ev_pct": 1.5133,
|
|
"win_rate": 0.7895,
|
|
"profit_factor": 2.6755
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"monitor_rules": [
|
|
{
|
|
"rule_id": "buy_compound_tight",
|
|
"side": "buy",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.04926406505452075,
|
|
"hi": 0.17056205475779587
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -176.08366788851922,
|
|
"hi": -133.4800557108608
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0149,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2461,
|
|
"ev_pct": 5.4605,
|
|
"win_rate": 0.7017,
|
|
"profit_factor": 3.3918
|
|
},
|
|
"train": {
|
|
"count": 1552,
|
|
"ev_pct": 4.5999,
|
|
"win_rate": 0.6907,
|
|
"profit_factor": 3.1874
|
|
},
|
|
"valid": {
|
|
"count": 661,
|
|
"ev_pct": 6.8095,
|
|
"win_rate": 0.7262,
|
|
"profit_factor": 3.4851
|
|
},
|
|
"holdout": {
|
|
"count": 248,
|
|
"ev_pct": 7.2513,
|
|
"win_rate": 0.7056,
|
|
"profit_factor": 4.3089
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_mtf_cross_all_tf",
|
|
"side": "sell",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.6750785337434262,
|
|
"hi": 0.9593012516978001
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8206164588850927,
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0151,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 3480,
|
|
"ev_pct": 7.5844,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 26393.624
|
|
},
|
|
"train": {
|
|
"count": 2056,
|
|
"ev_pct": 7.5064,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 15433.2445
|
|
},
|
|
"valid": {
|
|
"count": 670,
|
|
"ev_pct": 7.2347,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 4847.2609
|
|
},
|
|
"holdout": {
|
|
"count": 754,
|
|
"ev_pct": 8.1076,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6113.1186
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"active_rules": [
|
|
{
|
|
"rule_id": "gt_model_buy_zigzag_bb",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_buy_signal",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0002,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 25,
|
|
"ev_pct": 8.6824,
|
|
"win_rate": 0.84,
|
|
"profit_factor": 44.9
|
|
},
|
|
"train": {
|
|
"count": 14,
|
|
"ev_pct": 6.908,
|
|
"win_rate": 0.8571,
|
|
"profit_factor": 109.1666
|
|
},
|
|
"valid": {
|
|
"count": 10,
|
|
"ev_pct": 11.1305,
|
|
"win_rate": 0.8,
|
|
"profit_factor": 28.4806
|
|
},
|
|
"holdout": {
|
|
"count": 1,
|
|
"ev_pct": 9.0429,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 9.0429
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": false
|
|
},
|
|
{
|
|
"rule_id": "buy_mtf_cross_all_tf",
|
|
"side": "buy",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.02225009472391165,
|
|
"hi": 0.24829322108487767
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.2400835423107455
|
|
},
|
|
{
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0228,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4248,
|
|
"ev_pct": 5.486,
|
|
"win_rate": 0.7363,
|
|
"profit_factor": 4.3732
|
|
},
|
|
"train": {
|
|
"count": 2758,
|
|
"ev_pct": 4.9175,
|
|
"win_rate": 0.7208,
|
|
"profit_factor": 3.8415
|
|
},
|
|
"valid": {
|
|
"count": 1012,
|
|
"ev_pct": 7.9951,
|
|
"win_rate": 0.8261,
|
|
"profit_factor": 8.5158
|
|
},
|
|
"holdout": {
|
|
"count": 478,
|
|
"ev_pct": 3.4543,
|
|
"win_rate": 0.636,
|
|
"profit_factor": 2.5588
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_buy_trough_local",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_trough_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
},
|
|
{
|
|
"col": "bb_pos",
|
|
"op": "lte",
|
|
"value": 0.45
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0114,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1506,
|
|
"ev_pct": 6.2247,
|
|
"win_rate": 0.739,
|
|
"profit_factor": 4.859
|
|
},
|
|
"train": {
|
|
"count": 669,
|
|
"ev_pct": 6.3469,
|
|
"win_rate": 0.7668,
|
|
"profit_factor": 5.3425
|
|
},
|
|
"valid": {
|
|
"count": 507,
|
|
"ev_pct": 7.4598,
|
|
"win_rate": 0.7535,
|
|
"profit_factor": 4.552
|
|
},
|
|
"holdout": {
|
|
"count": 330,
|
|
"ev_pct": 4.0791,
|
|
"win_rate": 0.6606,
|
|
"profit_factor": 4.4814
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_compound_top3",
|
|
"side": "buy",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -196.53481289151543,
|
|
"hi": -118.19602423726946
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0647,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11568,
|
|
"ev_pct": 5.389,
|
|
"win_rate": 0.7159,
|
|
"profit_factor": 3.53
|
|
},
|
|
"train": {
|
|
"count": 7328,
|
|
"ev_pct": 4.8912,
|
|
"win_rate": 0.7201,
|
|
"profit_factor": 3.5447
|
|
},
|
|
"valid": {
|
|
"count": 2871,
|
|
"ev_pct": 6.8916,
|
|
"win_rate": 0.7402,
|
|
"profit_factor": 3.6933
|
|
},
|
|
"holdout": {
|
|
"count": 1369,
|
|
"ev_pct": 4.9023,
|
|
"win_rate": 0.6421,
|
|
"profit_factor": 3.0916
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_compound_tight",
|
|
"side": "buy",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.04926406505452075,
|
|
"hi": 0.17056205475779587
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -176.08366788851922,
|
|
"hi": -133.4800557108608
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0149,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2461,
|
|
"ev_pct": 5.4605,
|
|
"win_rate": 0.7017,
|
|
"profit_factor": 3.3918
|
|
},
|
|
"train": {
|
|
"count": 1552,
|
|
"ev_pct": 4.5999,
|
|
"win_rate": 0.6907,
|
|
"profit_factor": 3.1874
|
|
},
|
|
"valid": {
|
|
"count": 661,
|
|
"ev_pct": 6.8095,
|
|
"win_rate": 0.7262,
|
|
"profit_factor": 3.4851
|
|
},
|
|
"holdout": {
|
|
"count": 248,
|
|
"ev_pct": 7.2513,
|
|
"win_rate": 0.7056,
|
|
"profit_factor": 4.3089
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_mtf_cross_all_tf",
|
|
"side": "sell",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.6750785337434262,
|
|
"hi": 0.9593012516978001
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8206164588850927,
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0151,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 3480,
|
|
"ev_pct": 7.5844,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 26393.624
|
|
},
|
|
"train": {
|
|
"count": 2056,
|
|
"ev_pct": 7.5064,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 15433.2445
|
|
},
|
|
"valid": {
|
|
"count": 670,
|
|
"ev_pct": 7.2347,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 4847.2609
|
|
},
|
|
"holdout": {
|
|
"count": 754,
|
|
"ev_pct": 8.1076,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6113.1186
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_tight",
|
|
"side": "sell",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8252236664366895,
|
|
"hi": 0.9364576511584775
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 119.31363996378025,
|
|
"hi": 158.95227481534286
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0141,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2563,
|
|
"ev_pct": 4.9479,
|
|
"win_rate": 0.9462,
|
|
"profit_factor": 41.0043
|
|
},
|
|
"train": {
|
|
"count": 1450,
|
|
"ev_pct": 4.75,
|
|
"win_rate": 0.9524,
|
|
"profit_factor": 43.2686
|
|
},
|
|
"valid": {
|
|
"count": 624,
|
|
"ev_pct": 4.7054,
|
|
"win_rate": 0.9487,
|
|
"profit_factor": 31.7944
|
|
},
|
|
"holdout": {
|
|
"count": 489,
|
|
"ev_pct": 5.844,
|
|
"win_rate": 0.9243,
|
|
"profit_factor": 49.6781
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_top3",
|
|
"side": "sell",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 111.04253803255844,
|
|
"hi": 180.08898611506828
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.053,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9903,
|
|
"ev_pct": 4.81,
|
|
"win_rate": 0.9456,
|
|
"profit_factor": 32.2148
|
|
},
|
|
"train": {
|
|
"count": 5923,
|
|
"ev_pct": 4.8106,
|
|
"win_rate": 0.9534,
|
|
"profit_factor": 41.5226
|
|
},
|
|
"valid": {
|
|
"count": 2350,
|
|
"ev_pct": 4.4023,
|
|
"win_rate": 0.9413,
|
|
"profit_factor": 19.4534
|
|
},
|
|
"holdout": {
|
|
"count": 1630,
|
|
"ev_pct": 5.3955,
|
|
"win_rate": 0.9233,
|
|
"profit_factor": 34.54
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_contrast_m10_bb_pos",
|
|
"side": "sell",
|
|
"kind": "contrast",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14589043491619427
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.091,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16536,
|
|
"ev_pct": 4.6125,
|
|
"win_rate": 0.9368,
|
|
"profit_factor": 27.9852
|
|
},
|
|
"train": {
|
|
"count": 9918,
|
|
"ev_pct": 4.7163,
|
|
"win_rate": 0.9389,
|
|
"profit_factor": 34.1885
|
|
},
|
|
"valid": {
|
|
"count": 4035,
|
|
"ev_pct": 4.1748,
|
|
"win_rate": 0.94,
|
|
"profit_factor": 19.066
|
|
},
|
|
"holdout": {
|
|
"count": 2583,
|
|
"ev_pct": 4.8977,
|
|
"win_rate": 0.9237,
|
|
"profit_factor": 27.1049
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_sell_peak_local",
|
|
"side": "sell",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_peak_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0478,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 6593,
|
|
"ev_pct": 2.4183,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.121
|
|
},
|
|
"train": {
|
|
"count": 3057,
|
|
"ev_pct": 2.9951,
|
|
"win_rate": 0.8394,
|
|
"profit_factor": 8.0097
|
|
},
|
|
"valid": {
|
|
"count": 2120,
|
|
"ev_pct": 2.1911,
|
|
"win_rate": 0.8396,
|
|
"profit_factor": 4.6181
|
|
},
|
|
"holdout": {
|
|
"count": 1416,
|
|
"ev_pct": 1.5133,
|
|
"win_rate": 0.7895,
|
|
"profit_factor": 2.6755
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"strict_pass": true,
|
|
"holdout_pass": true,
|
|
"rejected_count": 2,
|
|
"gt_overlap": {
|
|
"buy": {
|
|
"gt_count": 318,
|
|
"matched": 273,
|
|
"recall": 0.8585
|
|
},
|
|
"sell": {
|
|
"gt_count": 157,
|
|
"matched": 140,
|
|
"recall": 0.8917
|
|
}
|
|
},
|
|
"valid_bars_approx": 44353,
|
|
"all_rule_summaries": [
|
|
{
|
|
"rule_id": "buy_compound_top3",
|
|
"side": "buy",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -196.53481289151543,
|
|
"hi": -118.19602423726946
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0647,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11568,
|
|
"ev_pct": 5.389,
|
|
"win_rate": 0.7159,
|
|
"profit_factor": 3.53
|
|
},
|
|
"train": {
|
|
"count": 7328,
|
|
"ev_pct": 4.8912,
|
|
"win_rate": 0.7201,
|
|
"profit_factor": 3.5447
|
|
},
|
|
"valid": {
|
|
"count": 2871,
|
|
"ev_pct": 6.8916,
|
|
"win_rate": 0.7402,
|
|
"profit_factor": 3.6933
|
|
},
|
|
"holdout": {
|
|
"count": 1369,
|
|
"ev_pct": 4.9023,
|
|
"win_rate": 0.6421,
|
|
"profit_factor": 3.0916
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_compound_tight",
|
|
"side": "buy",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.04926406505452075,
|
|
"hi": 0.17056205475779587
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": -176.08366788851922,
|
|
"hi": -133.4800557108608
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0149,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2461,
|
|
"ev_pct": 5.4605,
|
|
"win_rate": 0.7017,
|
|
"profit_factor": 3.3918
|
|
},
|
|
"train": {
|
|
"count": 1552,
|
|
"ev_pct": 4.5999,
|
|
"win_rate": 0.6907,
|
|
"profit_factor": 3.1874
|
|
},
|
|
"valid": {
|
|
"count": 661,
|
|
"ev_pct": 6.8095,
|
|
"win_rate": 0.7262,
|
|
"profit_factor": 3.4851
|
|
},
|
|
"holdout": {
|
|
"count": 248,
|
|
"ev_pct": 7.2513,
|
|
"win_rate": 0.7056,
|
|
"profit_factor": 4.3089
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_contrast_m10_bb_pos",
|
|
"side": "buy",
|
|
"kind": "contrast",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.021172207503886126,
|
|
"hi": 0.16409846055318933
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "lte",
|
|
"value": 0.8588208478908868
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.1136,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 19150,
|
|
"ev_pct": 5.4936,
|
|
"win_rate": 0.7173,
|
|
"profit_factor": 3.7049
|
|
},
|
|
"train": {
|
|
"count": 11702,
|
|
"ev_pct": 5.0822,
|
|
"win_rate": 0.7174,
|
|
"profit_factor": 3.7529
|
|
},
|
|
"valid": {
|
|
"count": 5040,
|
|
"ev_pct": 6.6694,
|
|
"win_rate": 0.7427,
|
|
"profit_factor": 3.6894
|
|
},
|
|
"holdout": {
|
|
"count": 2408,
|
|
"ev_pct": 5.0317,
|
|
"win_rate": 0.664,
|
|
"profit_factor": 3.5291
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "buy_mtf_cross_all_tf",
|
|
"side": "buy",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.02225009472391165,
|
|
"hi": 0.24829322108487767
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0002639734376405,
|
|
"hi": 0.2055391802948894
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.20698250741759133
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.0,
|
|
"hi": 0.2400835423107455
|
|
},
|
|
{
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0228,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4248,
|
|
"ev_pct": 5.486,
|
|
"win_rate": 0.7363,
|
|
"profit_factor": 4.3732
|
|
},
|
|
"train": {
|
|
"count": 2758,
|
|
"ev_pct": 4.9175,
|
|
"win_rate": 0.7208,
|
|
"profit_factor": 3.8415
|
|
},
|
|
"valid": {
|
|
"count": 1012,
|
|
"ev_pct": 7.9951,
|
|
"win_rate": 0.8261,
|
|
"profit_factor": 8.5158
|
|
},
|
|
"holdout": {
|
|
"count": 478,
|
|
"ev_pct": 3.4543,
|
|
"win_rate": 0.636,
|
|
"profit_factor": 2.5588
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_top3",
|
|
"side": "sell",
|
|
"kind": "compound",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 111.04253803255844,
|
|
"hi": 180.08898611506828
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.053,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9903,
|
|
"ev_pct": 4.81,
|
|
"win_rate": 0.9456,
|
|
"profit_factor": 32.2148
|
|
},
|
|
"train": {
|
|
"count": 5923,
|
|
"ev_pct": 4.8106,
|
|
"win_rate": 0.9534,
|
|
"profit_factor": 41.5226
|
|
},
|
|
"valid": {
|
|
"count": 2350,
|
|
"ev_pct": 4.4023,
|
|
"win_rate": 0.9413,
|
|
"profit_factor": 19.4534
|
|
},
|
|
"holdout": {
|
|
"count": 1630,
|
|
"ev_pct": 5.3955,
|
|
"win_rate": 0.9233,
|
|
"profit_factor": 34.54
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_compound_tight",
|
|
"side": "sell",
|
|
"kind": "compound_tight",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8252236664366895,
|
|
"hi": 0.9364576511584775
|
|
},
|
|
{
|
|
"col": "m10_ga_cci_20",
|
|
"op": "between",
|
|
"lo": 119.31363996378025,
|
|
"hi": 158.95227481534286
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0141,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 2563,
|
|
"ev_pct": 4.9479,
|
|
"win_rate": 0.9462,
|
|
"profit_factor": 41.0043
|
|
},
|
|
"train": {
|
|
"count": 1450,
|
|
"ev_pct": 4.75,
|
|
"win_rate": 0.9524,
|
|
"profit_factor": 43.2686
|
|
},
|
|
"valid": {
|
|
"count": 624,
|
|
"ev_pct": 4.7054,
|
|
"win_rate": 0.9487,
|
|
"profit_factor": 31.7944
|
|
},
|
|
"holdout": {
|
|
"count": 489,
|
|
"ev_pct": 5.844,
|
|
"win_rate": 0.9243,
|
|
"profit_factor": 49.6781
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_contrast_m10_bb_pos",
|
|
"side": "sell",
|
|
"kind": "contrast",
|
|
"conditions": [
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8370267885275882,
|
|
"hi": 0.9796418765981115
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14589043491619427
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.091,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16536,
|
|
"ev_pct": 4.6125,
|
|
"win_rate": 0.9368,
|
|
"profit_factor": 27.9852
|
|
},
|
|
"train": {
|
|
"count": 9918,
|
|
"ev_pct": 4.7163,
|
|
"win_rate": 0.9389,
|
|
"profit_factor": 34.1885
|
|
},
|
|
"valid": {
|
|
"count": 4035,
|
|
"ev_pct": 4.1748,
|
|
"win_rate": 0.94,
|
|
"profit_factor": 19.066
|
|
},
|
|
"holdout": {
|
|
"count": 2583,
|
|
"ev_pct": 4.8977,
|
|
"win_rate": 0.9237,
|
|
"profit_factor": 27.1049
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "sell_mtf_cross_all_tf",
|
|
"side": "sell",
|
|
"kind": "mtf_cross",
|
|
"conditions": [
|
|
{
|
|
"col": "m3_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.6750785337434262,
|
|
"hi": 0.9593012516978001
|
|
},
|
|
{
|
|
"col": "m5_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7821369534082708,
|
|
"hi": 0.9843377974456614
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.7941295136276819,
|
|
"hi": 1.0
|
|
},
|
|
{
|
|
"col": "m15_bb_pos",
|
|
"op": "between",
|
|
"lo": 0.8206164588850927,
|
|
"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
|
|
},
|
|
{
|
|
"col": "w1_ga_three_black_crows",
|
|
"op": "eq_int",
|
|
"value": 0
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0151,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 3480,
|
|
"ev_pct": 7.5844,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 26393.624
|
|
},
|
|
"train": {
|
|
"count": 2056,
|
|
"ev_pct": 7.5064,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 15433.2445
|
|
},
|
|
"valid": {
|
|
"count": 670,
|
|
"ev_pct": 7.2347,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 4847.2609
|
|
},
|
|
"holdout": {
|
|
"count": 754,
|
|
"ev_pct": 8.1076,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6113.1186
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_buy_zigzag_bb",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_buy_signal",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0002,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 25,
|
|
"ev_pct": 8.6824,
|
|
"win_rate": 0.84,
|
|
"profit_factor": 44.9
|
|
},
|
|
"train": {
|
|
"count": 14,
|
|
"ev_pct": 6.908,
|
|
"win_rate": 0.8571,
|
|
"profit_factor": 109.1666
|
|
},
|
|
"valid": {
|
|
"count": 10,
|
|
"ev_pct": 11.1305,
|
|
"win_rate": 0.8,
|
|
"profit_factor": 28.4806
|
|
},
|
|
"holdout": {
|
|
"count": 1,
|
|
"ev_pct": 9.0429,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 9.0429
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": false
|
|
},
|
|
{
|
|
"rule_id": "gt_model_buy_trough_local",
|
|
"side": "buy",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_trough_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
},
|
|
{
|
|
"col": "bb_pos",
|
|
"op": "lte",
|
|
"value": 0.45
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0114,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1506,
|
|
"ev_pct": 6.2247,
|
|
"win_rate": 0.739,
|
|
"profit_factor": 4.859
|
|
},
|
|
"train": {
|
|
"count": 669,
|
|
"ev_pct": 6.3469,
|
|
"win_rate": 0.7668,
|
|
"profit_factor": 5.3425
|
|
},
|
|
"valid": {
|
|
"count": 507,
|
|
"ev_pct": 7.4598,
|
|
"win_rate": 0.7535,
|
|
"profit_factor": 4.552
|
|
},
|
|
"holdout": {
|
|
"count": 330,
|
|
"ev_pct": 4.0791,
|
|
"win_rate": 0.6606,
|
|
"profit_factor": 4.4814
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"rule_id": "gt_model_sell_zigzag_peak",
|
|
"side": "sell",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_sell_signal",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 8,
|
|
"ev_pct": 11.8981,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 95.1851
|
|
},
|
|
"train": {
|
|
"count": 8,
|
|
"ev_pct": 11.8981,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 95.1851
|
|
},
|
|
"valid": {
|
|
"count": 0,
|
|
"ev_pct": 0.0,
|
|
"win_rate": 0.0,
|
|
"profit_factor": 0.0
|
|
},
|
|
"holdout": {
|
|
"count": 0,
|
|
"ev_pct": 0.0,
|
|
"win_rate": 0.0,
|
|
"profit_factor": 0.0
|
|
}
|
|
},
|
|
"pass_valid": false,
|
|
"pass_holdout": false
|
|
},
|
|
{
|
|
"rule_id": "gt_model_sell_peak_local",
|
|
"side": "sell",
|
|
"kind": "gt_model",
|
|
"conditions": [
|
|
{
|
|
"col": "gt_peak_local",
|
|
"op": "eq_int",
|
|
"value": 1
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0478,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 6593,
|
|
"ev_pct": 2.4183,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.121
|
|
},
|
|
"train": {
|
|
"count": 3057,
|
|
"ev_pct": 2.9951,
|
|
"win_rate": 0.8394,
|
|
"profit_factor": 8.0097
|
|
},
|
|
"valid": {
|
|
"count": 2120,
|
|
"ev_pct": 2.1911,
|
|
"win_rate": 0.8396,
|
|
"profit_factor": 4.6181
|
|
},
|
|
"holdout": {
|
|
"count": 1416,
|
|
"ev_pct": 1.5133,
|
|
"win_rate": 0.7895,
|
|
"profit_factor": 2.6755
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"note": ""
|
|
} |