봉 데이터 갱신 후 02~04 재실행. BB 저점 수집 시 _row_at_ts로 스칼라 추출. hybrid Go/No-Go 및 matched_rules·fire_outcomes 동기화. Co-authored-by: Cursor <cursoragent@cursor.com>
2501 lines
56 KiB
JSON
2501 lines
56 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": "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.0115,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1508,
|
|
"ev_pct": 6.2193,
|
|
"win_rate": 0.7394,
|
|
"profit_factor": 4.8607
|
|
},
|
|
"train": {
|
|
"count": 666,
|
|
"ev_pct": 6.3405,
|
|
"win_rate": 0.7658,
|
|
"profit_factor": 5.3187
|
|
},
|
|
"valid": {
|
|
"count": 510,
|
|
"ev_pct": 7.4617,
|
|
"win_rate": 0.7549,
|
|
"profit_factor": 4.5739
|
|
},
|
|
"holdout": {
|
|
"count": 332,
|
|
"ev_pct": 4.0675,
|
|
"win_rate": 0.6627,
|
|
"profit_factor": 4.4925
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0323,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 5244,
|
|
"ev_pct": 5.4262,
|
|
"win_rate": 0.7079,
|
|
"profit_factor": 3.9067
|
|
},
|
|
"train": {
|
|
"count": 3273,
|
|
"ev_pct": 5.0332,
|
|
"win_rate": 0.7207,
|
|
"profit_factor": 4.1345
|
|
},
|
|
"valid": {
|
|
"count": 1433,
|
|
"ev_pct": 7.203,
|
|
"win_rate": 0.7341,
|
|
"profit_factor": 4.0184
|
|
},
|
|
"holdout": {
|
|
"count": 538,
|
|
"ev_pct": 3.0841,
|
|
"win_rate": 0.5595,
|
|
"profit_factor": 2.4893
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0545,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9989,
|
|
"ev_pct": 5.4657,
|
|
"win_rate": 0.7181,
|
|
"profit_factor": 3.6911
|
|
},
|
|
"train": {
|
|
"count": 6342,
|
|
"ev_pct": 4.9429,
|
|
"win_rate": 0.7211,
|
|
"profit_factor": 3.6206
|
|
},
|
|
"valid": {
|
|
"count": 2418,
|
|
"ev_pct": 6.9135,
|
|
"win_rate": 0.7452,
|
|
"profit_factor": 3.9387
|
|
},
|
|
"holdout": {
|
|
"count": 1229,
|
|
"ev_pct": 5.315,
|
|
"win_rate": 0.6493,
|
|
"profit_factor": 3.4771
|
|
}
|
|
},
|
|
"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.02269722528896669,
|
|
"hi": 0.16417141470116056
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "lte",
|
|
"value": 0.8561892083441174
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.1138,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 19029,
|
|
"ev_pct": 5.4862,
|
|
"win_rate": 0.7174,
|
|
"profit_factor": 3.702
|
|
},
|
|
"train": {
|
|
"count": 11601,
|
|
"ev_pct": 5.0821,
|
|
"win_rate": 0.7175,
|
|
"profit_factor": 3.7549
|
|
},
|
|
"valid": {
|
|
"count": 5043,
|
|
"ev_pct": 6.6694,
|
|
"win_rate": 0.7434,
|
|
"profit_factor": 3.697
|
|
},
|
|
"holdout": {
|
|
"count": 2385,
|
|
"ev_pct": 4.9499,
|
|
"win_rate": 0.6621,
|
|
"profit_factor": 3.4775
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0182,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4019,
|
|
"ev_pct": 7.3121,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 29387.4736
|
|
},
|
|
"train": {
|
|
"count": 2397,
|
|
"ev_pct": 7.1764,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 17201.897
|
|
},
|
|
"valid": {
|
|
"count": 809,
|
|
"ev_pct": 7.2196,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 5840.682
|
|
},
|
|
"holdout": {
|
|
"count": 813,
|
|
"ev_pct": 7.8043,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6344.8946
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0069,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1394,
|
|
"ev_pct": 5.1381,
|
|
"win_rate": 0.9505,
|
|
"profit_factor": 51.7723
|
|
},
|
|
"train": {
|
|
"count": 795,
|
|
"ev_pct": 4.6835,
|
|
"win_rate": 0.9535,
|
|
"profit_factor": 50.8294
|
|
},
|
|
"valid": {
|
|
"count": 308,
|
|
"ev_pct": 4.7949,
|
|
"win_rate": 0.9416,
|
|
"profit_factor": 34.8027
|
|
},
|
|
"holdout": {
|
|
"count": 291,
|
|
"ev_pct": 6.7434,
|
|
"win_rate": 0.9519,
|
|
"profit_factor": 87.5998
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0612,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11480,
|
|
"ev_pct": 4.7861,
|
|
"win_rate": 0.945,
|
|
"profit_factor": 32.2052
|
|
},
|
|
"train": {
|
|
"count": 6949,
|
|
"ev_pct": 4.8062,
|
|
"win_rate": 0.9489,
|
|
"profit_factor": 38.6539
|
|
},
|
|
"valid": {
|
|
"count": 2713,
|
|
"ev_pct": 4.3635,
|
|
"win_rate": 0.9403,
|
|
"profit_factor": 20.0674
|
|
},
|
|
"holdout": {
|
|
"count": 1818,
|
|
"ev_pct": 5.3399,
|
|
"win_rate": 0.9373,
|
|
"profit_factor": 39.3855
|
|
}
|
|
},
|
|
"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.8328462659060121,
|
|
"hi": 0.9770682040908933
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14607994670516883
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0919,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16859,
|
|
"ev_pct": 4.606,
|
|
"win_rate": 0.9369,
|
|
"profit_factor": 28.2017
|
|
},
|
|
"train": {
|
|
"count": 10141,
|
|
"ev_pct": 4.7242,
|
|
"win_rate": 0.938,
|
|
"profit_factor": 33.8839
|
|
},
|
|
"valid": {
|
|
"count": 4076,
|
|
"ev_pct": 4.1378,
|
|
"win_rate": 0.9401,
|
|
"profit_factor": 18.6955
|
|
},
|
|
"holdout": {
|
|
"count": 2642,
|
|
"ev_pct": 4.8742,
|
|
"win_rate": 0.9281,
|
|
"profit_factor": 29.9605
|
|
}
|
|
},
|
|
"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": 6600,
|
|
"ev_pct": 2.4127,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.1153
|
|
},
|
|
"train": {
|
|
"count": 3052,
|
|
"ev_pct": 2.999,
|
|
"win_rate": 0.8398,
|
|
"profit_factor": 8.0085
|
|
},
|
|
"valid": {
|
|
"count": 2119,
|
|
"ev_pct": 2.1815,
|
|
"win_rate": 0.8386,
|
|
"profit_factor": 4.6
|
|
},
|
|
"holdout": {
|
|
"count": 1429,
|
|
"ev_pct": 1.5034,
|
|
"win_rate": 0.7908,
|
|
"profit_factor": 2.6792
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0545,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9989,
|
|
"ev_pct": 5.4657,
|
|
"win_rate": 0.7181,
|
|
"profit_factor": 3.6911
|
|
},
|
|
"train": {
|
|
"count": 6342,
|
|
"ev_pct": 4.9429,
|
|
"win_rate": 0.7211,
|
|
"profit_factor": 3.6206
|
|
},
|
|
"valid": {
|
|
"count": 2418,
|
|
"ev_pct": 6.9135,
|
|
"win_rate": 0.7452,
|
|
"profit_factor": 3.9387
|
|
},
|
|
"holdout": {
|
|
"count": 1229,
|
|
"ev_pct": 5.315,
|
|
"win_rate": 0.6493,
|
|
"profit_factor": 3.4771
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0055,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1029,
|
|
"ev_pct": 5.5293,
|
|
"win_rate": 0.688,
|
|
"profit_factor": 3.4292
|
|
},
|
|
"train": {
|
|
"count": 686,
|
|
"ev_pct": 4.4243,
|
|
"win_rate": 0.6706,
|
|
"profit_factor": 3.0189
|
|
},
|
|
"valid": {
|
|
"count": 243,
|
|
"ev_pct": 6.448,
|
|
"win_rate": 0.7119,
|
|
"profit_factor": 3.187
|
|
},
|
|
"holdout": {
|
|
"count": 100,
|
|
"ev_pct": 10.8775,
|
|
"win_rate": 0.75,
|
|
"profit_factor": 9.8832
|
|
}
|
|
},
|
|
"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.02269722528896669,
|
|
"hi": 0.16417141470116056
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "lte",
|
|
"value": 0.8561892083441174
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.1138,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 19029,
|
|
"ev_pct": 5.4862,
|
|
"win_rate": 0.7174,
|
|
"profit_factor": 3.702
|
|
},
|
|
"train": {
|
|
"count": 11601,
|
|
"ev_pct": 5.0821,
|
|
"win_rate": 0.7175,
|
|
"profit_factor": 3.7549
|
|
},
|
|
"valid": {
|
|
"count": 5043,
|
|
"ev_pct": 6.6694,
|
|
"win_rate": 0.7434,
|
|
"profit_factor": 3.697
|
|
},
|
|
"holdout": {
|
|
"count": 2385,
|
|
"ev_pct": 4.9499,
|
|
"win_rate": 0.6621,
|
|
"profit_factor": 3.4775
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0323,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 5244,
|
|
"ev_pct": 5.4262,
|
|
"win_rate": 0.7079,
|
|
"profit_factor": 3.9067
|
|
},
|
|
"train": {
|
|
"count": 3273,
|
|
"ev_pct": 5.0332,
|
|
"win_rate": 0.7207,
|
|
"profit_factor": 4.1345
|
|
},
|
|
"valid": {
|
|
"count": 1433,
|
|
"ev_pct": 7.203,
|
|
"win_rate": 0.7341,
|
|
"profit_factor": 4.0184
|
|
},
|
|
"holdout": {
|
|
"count": 538,
|
|
"ev_pct": 3.0841,
|
|
"win_rate": 0.5595,
|
|
"profit_factor": 2.4893
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0612,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11480,
|
|
"ev_pct": 4.7861,
|
|
"win_rate": 0.945,
|
|
"profit_factor": 32.2052
|
|
},
|
|
"train": {
|
|
"count": 6949,
|
|
"ev_pct": 4.8062,
|
|
"win_rate": 0.9489,
|
|
"profit_factor": 38.6539
|
|
},
|
|
"valid": {
|
|
"count": 2713,
|
|
"ev_pct": 4.3635,
|
|
"win_rate": 0.9403,
|
|
"profit_factor": 20.0674
|
|
},
|
|
"holdout": {
|
|
"count": 1818,
|
|
"ev_pct": 5.3399,
|
|
"win_rate": 0.9373,
|
|
"profit_factor": 39.3855
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0069,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1394,
|
|
"ev_pct": 5.1381,
|
|
"win_rate": 0.9505,
|
|
"profit_factor": 51.7723
|
|
},
|
|
"train": {
|
|
"count": 795,
|
|
"ev_pct": 4.6835,
|
|
"win_rate": 0.9535,
|
|
"profit_factor": 50.8294
|
|
},
|
|
"valid": {
|
|
"count": 308,
|
|
"ev_pct": 4.7949,
|
|
"win_rate": 0.9416,
|
|
"profit_factor": 34.8027
|
|
},
|
|
"holdout": {
|
|
"count": 291,
|
|
"ev_pct": 6.7434,
|
|
"win_rate": 0.9519,
|
|
"profit_factor": 87.5998
|
|
}
|
|
},
|
|
"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.8328462659060121,
|
|
"hi": 0.9770682040908933
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14607994670516883
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0919,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16859,
|
|
"ev_pct": 4.606,
|
|
"win_rate": 0.9369,
|
|
"profit_factor": 28.2017
|
|
},
|
|
"train": {
|
|
"count": 10141,
|
|
"ev_pct": 4.7242,
|
|
"win_rate": 0.938,
|
|
"profit_factor": 33.8839
|
|
},
|
|
"valid": {
|
|
"count": 4076,
|
|
"ev_pct": 4.1378,
|
|
"win_rate": 0.9401,
|
|
"profit_factor": 18.6955
|
|
},
|
|
"holdout": {
|
|
"count": 2642,
|
|
"ev_pct": 4.8742,
|
|
"win_rate": 0.9281,
|
|
"profit_factor": 29.9605
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0182,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4019,
|
|
"ev_pct": 7.3121,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 29387.4736
|
|
},
|
|
"train": {
|
|
"count": 2397,
|
|
"ev_pct": 7.1764,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 17201.897
|
|
},
|
|
"valid": {
|
|
"count": 809,
|
|
"ev_pct": 7.2196,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 5840.682
|
|
},
|
|
"holdout": {
|
|
"count": 813,
|
|
"ev_pct": 7.8043,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6344.8946
|
|
}
|
|
},
|
|
"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.0115,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1508,
|
|
"ev_pct": 6.2193,
|
|
"win_rate": 0.7394,
|
|
"profit_factor": 4.8607
|
|
},
|
|
"train": {
|
|
"count": 666,
|
|
"ev_pct": 6.3405,
|
|
"win_rate": 0.7658,
|
|
"profit_factor": 5.3187
|
|
},
|
|
"valid": {
|
|
"count": 510,
|
|
"ev_pct": 7.4617,
|
|
"win_rate": 0.7549,
|
|
"profit_factor": 4.5739
|
|
},
|
|
"holdout": {
|
|
"count": 332,
|
|
"ev_pct": 4.0675,
|
|
"win_rate": 0.6627,
|
|
"profit_factor": 4.4925
|
|
}
|
|
},
|
|
"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": 6600,
|
|
"ev_pct": 2.4127,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.1153
|
|
},
|
|
"train": {
|
|
"count": 3052,
|
|
"ev_pct": 2.999,
|
|
"win_rate": 0.8398,
|
|
"profit_factor": 8.0085
|
|
},
|
|
"valid": {
|
|
"count": 2119,
|
|
"ev_pct": 2.1815,
|
|
"win_rate": 0.8386,
|
|
"profit_factor": 4.6
|
|
},
|
|
"holdout": {
|
|
"count": 1429,
|
|
"ev_pct": 1.5034,
|
|
"win_rate": 0.7908,
|
|
"profit_factor": 2.6792
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0055,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1029,
|
|
"ev_pct": 5.5293,
|
|
"win_rate": 0.688,
|
|
"profit_factor": 3.4292
|
|
},
|
|
"train": {
|
|
"count": 686,
|
|
"ev_pct": 4.4243,
|
|
"win_rate": 0.6706,
|
|
"profit_factor": 3.0189
|
|
},
|
|
"valid": {
|
|
"count": 243,
|
|
"ev_pct": 6.448,
|
|
"win_rate": 0.7119,
|
|
"profit_factor": 3.187
|
|
},
|
|
"holdout": {
|
|
"count": 100,
|
|
"ev_pct": 10.8775,
|
|
"win_rate": 0.75,
|
|
"profit_factor": 9.8832
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0182,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4019,
|
|
"ev_pct": 7.3121,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 29387.4736
|
|
},
|
|
"train": {
|
|
"count": 2397,
|
|
"ev_pct": 7.1764,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 17201.897
|
|
},
|
|
"valid": {
|
|
"count": 809,
|
|
"ev_pct": 7.2196,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 5840.682
|
|
},
|
|
"holdout": {
|
|
"count": 813,
|
|
"ev_pct": 7.8043,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6344.8946
|
|
}
|
|
},
|
|
"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": "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.0115,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1508,
|
|
"ev_pct": 6.2193,
|
|
"win_rate": 0.7394,
|
|
"profit_factor": 4.8607
|
|
},
|
|
"train": {
|
|
"count": 666,
|
|
"ev_pct": 6.3405,
|
|
"win_rate": 0.7658,
|
|
"profit_factor": 5.3187
|
|
},
|
|
"valid": {
|
|
"count": 510,
|
|
"ev_pct": 7.4617,
|
|
"win_rate": 0.7549,
|
|
"profit_factor": 4.5739
|
|
},
|
|
"holdout": {
|
|
"count": 332,
|
|
"ev_pct": 4.0675,
|
|
"win_rate": 0.6627,
|
|
"profit_factor": 4.4925
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0323,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 5244,
|
|
"ev_pct": 5.4262,
|
|
"win_rate": 0.7079,
|
|
"profit_factor": 3.9067
|
|
},
|
|
"train": {
|
|
"count": 3273,
|
|
"ev_pct": 5.0332,
|
|
"win_rate": 0.7207,
|
|
"profit_factor": 4.1345
|
|
},
|
|
"valid": {
|
|
"count": 1433,
|
|
"ev_pct": 7.203,
|
|
"win_rate": 0.7341,
|
|
"profit_factor": 4.0184
|
|
},
|
|
"holdout": {
|
|
"count": 538,
|
|
"ev_pct": 3.0841,
|
|
"win_rate": 0.5595,
|
|
"profit_factor": 2.4893
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0545,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9989,
|
|
"ev_pct": 5.4657,
|
|
"win_rate": 0.7181,
|
|
"profit_factor": 3.6911
|
|
},
|
|
"train": {
|
|
"count": 6342,
|
|
"ev_pct": 4.9429,
|
|
"win_rate": 0.7211,
|
|
"profit_factor": 3.6206
|
|
},
|
|
"valid": {
|
|
"count": 2418,
|
|
"ev_pct": 6.9135,
|
|
"win_rate": 0.7452,
|
|
"profit_factor": 3.9387
|
|
},
|
|
"holdout": {
|
|
"count": 1229,
|
|
"ev_pct": 5.315,
|
|
"win_rate": 0.6493,
|
|
"profit_factor": 3.4771
|
|
}
|
|
},
|
|
"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.02269722528896669,
|
|
"hi": 0.16417141470116056
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "lte",
|
|
"value": 0.8561892083441174
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.1138,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 19029,
|
|
"ev_pct": 5.4862,
|
|
"win_rate": 0.7174,
|
|
"profit_factor": 3.702
|
|
},
|
|
"train": {
|
|
"count": 11601,
|
|
"ev_pct": 5.0821,
|
|
"win_rate": 0.7175,
|
|
"profit_factor": 3.7549
|
|
},
|
|
"valid": {
|
|
"count": 5043,
|
|
"ev_pct": 6.6694,
|
|
"win_rate": 0.7434,
|
|
"profit_factor": 3.697
|
|
},
|
|
"holdout": {
|
|
"count": 2385,
|
|
"ev_pct": 4.9499,
|
|
"win_rate": 0.6621,
|
|
"profit_factor": 3.4775
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0182,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4019,
|
|
"ev_pct": 7.3121,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 29387.4736
|
|
},
|
|
"train": {
|
|
"count": 2397,
|
|
"ev_pct": 7.1764,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 17201.897
|
|
},
|
|
"valid": {
|
|
"count": 809,
|
|
"ev_pct": 7.2196,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 5840.682
|
|
},
|
|
"holdout": {
|
|
"count": 813,
|
|
"ev_pct": 7.8043,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6344.8946
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0069,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1394,
|
|
"ev_pct": 5.1381,
|
|
"win_rate": 0.9505,
|
|
"profit_factor": 51.7723
|
|
},
|
|
"train": {
|
|
"count": 795,
|
|
"ev_pct": 4.6835,
|
|
"win_rate": 0.9535,
|
|
"profit_factor": 50.8294
|
|
},
|
|
"valid": {
|
|
"count": 308,
|
|
"ev_pct": 4.7949,
|
|
"win_rate": 0.9416,
|
|
"profit_factor": 34.8027
|
|
},
|
|
"holdout": {
|
|
"count": 291,
|
|
"ev_pct": 6.7434,
|
|
"win_rate": 0.9519,
|
|
"profit_factor": 87.5998
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0612,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11480,
|
|
"ev_pct": 4.7861,
|
|
"win_rate": 0.945,
|
|
"profit_factor": 32.2052
|
|
},
|
|
"train": {
|
|
"count": 6949,
|
|
"ev_pct": 4.8062,
|
|
"win_rate": 0.9489,
|
|
"profit_factor": 38.6539
|
|
},
|
|
"valid": {
|
|
"count": 2713,
|
|
"ev_pct": 4.3635,
|
|
"win_rate": 0.9403,
|
|
"profit_factor": 20.0674
|
|
},
|
|
"holdout": {
|
|
"count": 1818,
|
|
"ev_pct": 5.3399,
|
|
"win_rate": 0.9373,
|
|
"profit_factor": 39.3855
|
|
}
|
|
},
|
|
"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.8328462659060121,
|
|
"hi": 0.9770682040908933
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14607994670516883
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0919,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16859,
|
|
"ev_pct": 4.606,
|
|
"win_rate": 0.9369,
|
|
"profit_factor": 28.2017
|
|
},
|
|
"train": {
|
|
"count": 10141,
|
|
"ev_pct": 4.7242,
|
|
"win_rate": 0.938,
|
|
"profit_factor": 33.8839
|
|
},
|
|
"valid": {
|
|
"count": 4076,
|
|
"ev_pct": 4.1378,
|
|
"win_rate": 0.9401,
|
|
"profit_factor": 18.6955
|
|
},
|
|
"holdout": {
|
|
"count": 2642,
|
|
"ev_pct": 4.8742,
|
|
"win_rate": 0.9281,
|
|
"profit_factor": 29.9605
|
|
}
|
|
},
|
|
"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": 6600,
|
|
"ev_pct": 2.4127,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.1153
|
|
},
|
|
"train": {
|
|
"count": 3052,
|
|
"ev_pct": 2.999,
|
|
"win_rate": 0.8398,
|
|
"profit_factor": 8.0085
|
|
},
|
|
"valid": {
|
|
"count": 2119,
|
|
"ev_pct": 2.1815,
|
|
"win_rate": 0.8386,
|
|
"profit_factor": 4.6
|
|
},
|
|
"holdout": {
|
|
"count": 1429,
|
|
"ev_pct": 1.5034,
|
|
"win_rate": 0.7908,
|
|
"profit_factor": 2.6792
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"strict_pass": true,
|
|
"holdout_pass": true,
|
|
"rejected_count": 2,
|
|
"gt_overlap": {
|
|
"buy": {
|
|
"gt_count": 325,
|
|
"matched": 274,
|
|
"recall": 0.8431
|
|
},
|
|
"sell": {
|
|
"gt_count": 160,
|
|
"matched": 141,
|
|
"recall": 0.8812
|
|
}
|
|
},
|
|
"valid_bars_approx": 44330,
|
|
"all_rule_summaries": [
|
|
{
|
|
"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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0545,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 9989,
|
|
"ev_pct": 5.4657,
|
|
"win_rate": 0.7181,
|
|
"profit_factor": 3.6911
|
|
},
|
|
"train": {
|
|
"count": 6342,
|
|
"ev_pct": 4.9429,
|
|
"win_rate": 0.7211,
|
|
"profit_factor": 3.6206
|
|
},
|
|
"valid": {
|
|
"count": 2418,
|
|
"ev_pct": 6.9135,
|
|
"win_rate": 0.7452,
|
|
"profit_factor": 3.9387
|
|
},
|
|
"holdout": {
|
|
"count": 1229,
|
|
"ev_pct": 5.315,
|
|
"win_rate": 0.6493,
|
|
"profit_factor": 3.4771
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0055,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1029,
|
|
"ev_pct": 5.5293,
|
|
"win_rate": 0.688,
|
|
"profit_factor": 3.4292
|
|
},
|
|
"train": {
|
|
"count": 686,
|
|
"ev_pct": 4.4243,
|
|
"win_rate": 0.6706,
|
|
"profit_factor": 3.0189
|
|
},
|
|
"valid": {
|
|
"count": 243,
|
|
"ev_pct": 6.448,
|
|
"win_rate": 0.7119,
|
|
"profit_factor": 3.187
|
|
},
|
|
"holdout": {
|
|
"count": 100,
|
|
"ev_pct": 10.8775,
|
|
"win_rate": 0.75,
|
|
"profit_factor": 9.8832
|
|
}
|
|
},
|
|
"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.02269722528896669,
|
|
"hi": 0.16417141470116056
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "lte",
|
|
"value": 0.8561892083441174
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.1138,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 19029,
|
|
"ev_pct": 5.4862,
|
|
"win_rate": 0.7174,
|
|
"profit_factor": 3.702
|
|
},
|
|
"train": {
|
|
"count": 11601,
|
|
"ev_pct": 5.0821,
|
|
"win_rate": 0.7175,
|
|
"profit_factor": 3.7549
|
|
},
|
|
"valid": {
|
|
"count": 5043,
|
|
"ev_pct": 6.6694,
|
|
"win_rate": 0.7434,
|
|
"profit_factor": 3.697
|
|
},
|
|
"holdout": {
|
|
"count": 2385,
|
|
"ev_pct": 4.9499,
|
|
"win_rate": 0.6621,
|
|
"profit_factor": 3.4775
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0323,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 5244,
|
|
"ev_pct": 5.4262,
|
|
"win_rate": 0.7079,
|
|
"profit_factor": 3.9067
|
|
},
|
|
"train": {
|
|
"count": 3273,
|
|
"ev_pct": 5.0332,
|
|
"win_rate": 0.7207,
|
|
"profit_factor": 4.1345
|
|
},
|
|
"valid": {
|
|
"count": 1433,
|
|
"ev_pct": 7.203,
|
|
"win_rate": 0.7341,
|
|
"profit_factor": 4.0184
|
|
},
|
|
"holdout": {
|
|
"count": 538,
|
|
"ev_pct": 3.0841,
|
|
"win_rate": 0.5595,
|
|
"profit_factor": 2.4893
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
},
|
|
{
|
|
"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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0612,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 11480,
|
|
"ev_pct": 4.7861,
|
|
"win_rate": 0.945,
|
|
"profit_factor": 32.2052
|
|
},
|
|
"train": {
|
|
"count": 6949,
|
|
"ev_pct": 4.8062,
|
|
"win_rate": 0.9489,
|
|
"profit_factor": 38.6539
|
|
},
|
|
"valid": {
|
|
"count": 2713,
|
|
"ev_pct": 4.3635,
|
|
"win_rate": 0.9403,
|
|
"profit_factor": 20.0674
|
|
},
|
|
"holdout": {
|
|
"count": 1818,
|
|
"ev_pct": 5.3399,
|
|
"win_rate": 0.9373,
|
|
"profit_factor": 39.3855
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0069,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1394,
|
|
"ev_pct": 5.1381,
|
|
"win_rate": 0.9505,
|
|
"profit_factor": 51.7723
|
|
},
|
|
"train": {
|
|
"count": 795,
|
|
"ev_pct": 4.6835,
|
|
"win_rate": 0.9535,
|
|
"profit_factor": 50.8294
|
|
},
|
|
"valid": {
|
|
"count": 308,
|
|
"ev_pct": 4.7949,
|
|
"win_rate": 0.9416,
|
|
"profit_factor": 34.8027
|
|
},
|
|
"holdout": {
|
|
"count": 291,
|
|
"ev_pct": 6.7434,
|
|
"win_rate": 0.9519,
|
|
"profit_factor": 87.5998
|
|
}
|
|
},
|
|
"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.8328462659060121,
|
|
"hi": 0.9770682040908933
|
|
},
|
|
{
|
|
"col": "m10_bb_pos",
|
|
"op": "gte",
|
|
"value": 0.14607994670516883
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0919,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 16859,
|
|
"ev_pct": 4.606,
|
|
"win_rate": 0.9369,
|
|
"profit_factor": 28.2017
|
|
},
|
|
"train": {
|
|
"count": 10141,
|
|
"ev_pct": 4.7242,
|
|
"win_rate": 0.938,
|
|
"profit_factor": 33.8839
|
|
},
|
|
"valid": {
|
|
"count": 4076,
|
|
"ev_pct": 4.1378,
|
|
"win_rate": 0.9401,
|
|
"profit_factor": 18.6955
|
|
},
|
|
"holdout": {
|
|
"count": 2642,
|
|
"ev_pct": 4.8742,
|
|
"win_rate": 0.9281,
|
|
"profit_factor": 29.9605
|
|
}
|
|
},
|
|
"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.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
|
|
}
|
|
],
|
|
"valid_fire_rate": 0.0182,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 4019,
|
|
"ev_pct": 7.3121,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 29387.4736
|
|
},
|
|
"train": {
|
|
"count": 2397,
|
|
"ev_pct": 7.1764,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 17201.897
|
|
},
|
|
"valid": {
|
|
"count": 809,
|
|
"ev_pct": 7.2196,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 5840.682
|
|
},
|
|
"holdout": {
|
|
"count": 813,
|
|
"ev_pct": 7.8043,
|
|
"win_rate": 1.0,
|
|
"profit_factor": 6344.8946
|
|
}
|
|
},
|
|
"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.0115,
|
|
"metrics": {
|
|
"all": {
|
|
"count": 1508,
|
|
"ev_pct": 6.2193,
|
|
"win_rate": 0.7394,
|
|
"profit_factor": 4.8607
|
|
},
|
|
"train": {
|
|
"count": 666,
|
|
"ev_pct": 6.3405,
|
|
"win_rate": 0.7658,
|
|
"profit_factor": 5.3187
|
|
},
|
|
"valid": {
|
|
"count": 510,
|
|
"ev_pct": 7.4617,
|
|
"win_rate": 0.7549,
|
|
"profit_factor": 4.5739
|
|
},
|
|
"holdout": {
|
|
"count": 332,
|
|
"ev_pct": 4.0675,
|
|
"win_rate": 0.6627,
|
|
"profit_factor": 4.4925
|
|
}
|
|
},
|
|
"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": 6600,
|
|
"ev_pct": 2.4127,
|
|
"win_rate": 0.8288,
|
|
"profit_factor": 5.1153
|
|
},
|
|
"train": {
|
|
"count": 3052,
|
|
"ev_pct": 2.999,
|
|
"win_rate": 0.8398,
|
|
"profit_factor": 8.0085
|
|
},
|
|
"valid": {
|
|
"count": 2119,
|
|
"ev_pct": 2.1815,
|
|
"win_rate": 0.8386,
|
|
"profit_factor": 4.6
|
|
},
|
|
"holdout": {
|
|
"count": 1429,
|
|
"ev_pct": 1.5034,
|
|
"win_rate": 0.7908,
|
|
"profit_factor": 2.6792
|
|
}
|
|
},
|
|
"pass_valid": true,
|
|
"pass_holdout": true
|
|
}
|
|
],
|
|
"note": ""
|
|
} |