Feature Iteration Run #1002: zz_sylvain
Status: completed | Started: 2026-07-26 10:28:41 | Ended: 2026-07-26 10:37:46
⭐ Best Accepted Iteration
Iteration 2: k_high.pct_change(12) * (1 + hl_range) / (1 + atr_norm)
baseline PF: 1.947 → modified PF: 2.466 | Cohen's d: 0.388 | p-value: 0.012
📊 Iterations
| Iter | Y Label | Model | Warm | Proxy | Parent FS | Feature | Baseline PF | Modified PF | Scalar Score | Result |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | C8 |
gradient_boosting |
— | — | #7 | k_iter1_pct_change_atr_norm_price_position | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 2 | C8 |
gradient_boosting |
— | — | #7 | k_loop_iter_2_be4e29 | 1.947 | 2.466 | 1.4881 | ✅ ACCEPT |
| 3 | C8 |
gradient_boosting |
— | — | #1303 | k_iter3_abs_k_volume_rolling_mean | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 4 | C8 |
gradient_boosting |
— | — | #1303 | k_loop_iter_4_b064f8 | 2.466 | 1.141 | -3.9796 | ❌ REJECT |
| 5 | C8 |
gradient_boosting |
— | — | #1303 | k_loop_iter_5_5a75ad | 2.466 | 1.110 | -4.5400 | ❌ REJECT |
| 6 | C8 |
gradient_boosting |
— | — | #1303 | k_iter6_abs_k_volume_i_atr_k_high | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 7 | C8 |
gradient_boosting |
— | — | #1303 | k_loop_iter_7_f320f0 | 2.466 | 1.150 | -5.3566 | ❌ REJECT |
| 8 | C8 |
gradient_boosting |
— | — | #1303 | k_loop_iter_8_e70ae8 | 2.466 | 1.261 | -0.5535 | ❌ REJECT |
| 9 | C8 |
gradient_boosting |
— | — | #1303 | k_iter9_pct_change_i_atr_k_high_k_low | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 10 | C8 |
gradient_boosting |
— | — | #1303 | k_loop_iter_10_601011 | 2.466 | 1.078 | -6.4957 | ❌ REJECT |
| 11 | C8 |
gradient_boosting |
— | — | #1303 | k_loop_iter_11_781c69 | 2.466 | 1.222 | -5.5490 | ❌ REJECT |
| 12 | C8 |
gradient_boosting |
— | — | #1303 | k_iter12_pct_change_atr_norm | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 13 | C8 |
gradient_boosting |
— | — | #1303 | k_iter13_i_macd_k_close_i_atr_k_high | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 14 | C8 |
gradient_boosting |
— | — | #1303 | k_iter14_k_momentum_o_div_rat_hl_range_atr_norm | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 15 | C8 |
gradient_boosting |
— | — | #1303 | k_iter15_abs_k_volume_rolling_mean | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
📄 Report Markdown
# AUTOLOOP: zz_sylvain (15 iterations)
> **Phase**: Y4.7 Option B (DSL → Python code → FeatureSet candidate)
> **Target indicator**: zz_sylvain
> **Base feature_set_id**: 1303
> **Claim**: (default) Propose a new k_* feature that improves risk-adjusted returns
> **Objective mode**: scalarize
> **Metrics**: ['profit_factor', 'sharpe_ratio', 'win_rate', 'max_drawdown', 'test_accuracy']
> **Total duration**: 545.31s
> **Total accepted**: 1
> **Total rejected**: 14
## Iterations 詳情
### Iteration 1
- DSL: `obv_rebased.pct_change(12) / (1 + atr_norm) * (1 - price_position)` (feature=k_iter1_pct_change_atr_norm_price_position)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL produced inf values; likely division by zero
### Iteration 2
- DSL: `k_high.pct_change(12) * (1 + hl_range) / (1 + atr_norm)` (feature=k_loop_iter_2_be4e29)
- DSL valid: True
- FeatureSet candidate id: 1303
- baseline PF: 1.947 → modified PF: 2.466
- t_stat: 0.000, p_value: 0.012, cohens_d: 0.388
- scalar_score: 1.4881
- accepted: True, reason: accepted
**Metrics summary:**
- profit_factor: baseline=1.947, modified=2.466, diff=0.519
- sharpe_ratio: baseline=19.162, modified=24.727, diff=5.565
- win_rate: baseline=0.600, modified=0.636, diff=0.036
- max_drawdown: baseline=0.056, modified=0.050, diff=-0.006
- test_accuracy: baseline=0.992, modified=0.992, diff=-0.000
### Iteration 3
- DSL: `(abs(o_div_binary(12)) * k_volume.rolling.mean) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_iter3_abs_k_volume_rolling_mean)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL: 變數未定義: abs
### Iteration 4
- DSL: `i_macd(k_close, 12, 26, 9) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_loop_iter_4_b064f8)
- DSL valid: True
- FeatureSet candidate id: 1304
- baseline PF: 2.466 → modified PF: 1.141
- t_stat: 0.000, p_value: 0.200, cohens_d: 0.864
- scalar_score: -3.9796
- accepted: False, reason: normalized_score -0.5013 <= 0.0, sharpe_delta -21.2913 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.141, diff=-1.325
- sharpe_ratio: baseline=24.727, modified=3.436, diff=-21.291
- win_rate: baseline=0.636, modified=0.428, diff=-0.208
- max_drawdown: baseline=0.050, modified=0.142, diff=0.092
- test_accuracy: baseline=0.992, modified=0.000, diff=-0.992
### Iteration 5
- DSL: `obv_rebased * (1 + hl_range) / (1 + atr_norm)` (feature=k_loop_iter_5_5a75ad)
- DSL valid: True
- FeatureSet candidate id: 1305
- baseline PF: 2.466 → modified PF: 1.110
- t_stat: 0.000, p_value: 0.142, cohens_d: 0.676
- scalar_score: -4.5400
- accepted: False, reason: normalized_score -0.2884 <= 0.0, sharpe_delta -21.7399 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.110, diff=-1.356
- sharpe_ratio: baseline=24.727, modified=2.987, diff=-21.740
- win_rate: baseline=0.636, modified=0.513, diff=-0.124
- max_drawdown: baseline=0.050, modified=0.161, diff=0.111
- test_accuracy: baseline=0.992, modified=0.992, diff=0.000
### Iteration 6
- DSL: `abs(o_div_binary_12) * k_volume / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_iter6_abs_k_volume_i_atr_k_high)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL: 變數未定義: abs
### Iteration 7
- DSL: `k_high.pct_change(12) * (1 + hl_range) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_loop_iter_7_f320f0)
- DSL valid: True
- FeatureSet candidate id: 1306
- baseline PF: 2.466 → modified PF: 1.150
- t_stat: 0.000, p_value: 0.031, cohens_d: 0.733
- scalar_score: -5.3566
- accepted: False, reason: normalized_score -0.2964 <= 0.0, sharpe_delta -20.8939 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.150, diff=-1.316
- sharpe_ratio: baseline=24.727, modified=3.833, diff=-20.894
- win_rate: baseline=0.636, modified=0.500, diff=-0.136
- max_drawdown: baseline=0.050, modified=0.089, diff=0.039
- test_accuracy: baseline=0.992, modified=0.986, diff=-0.006
### Iteration 8
- DSL: `i_roc(k_close, 20) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_loop_iter_8_e70ae8)
- DSL valid: True
- FeatureSet candidate id: 1307
- baseline PF: 2.466 → modified PF: 1.261
- t_stat: 0.000, p_value: 0.000, cohens_d: 0.275
- scalar_score: -0.5535
- accepted: False, reason: normalized_score -0.2635 <= 0.0, sharpe_delta -18.5881 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.261, diff=-1.205
- sharpe_ratio: baseline=24.727, modified=6.139, diff=-18.588
- win_rate: baseline=0.636, modified=0.518, diff=-0.119
- max_drawdown: baseline=0.050, modified=0.098, diff=0.047
- test_accuracy: baseline=0.992, modified=0.986, diff=-0.006
### Iteration 9
- DSL: `obv_rebased.pct_change / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_iter9_pct_change_i_atr_k_high_k_low)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL triggered unexpected TypeError: unsupported operand type(s) for /: 'method' and 'float'
### Iteration 10
- DSL: `i_hma(k_close, 20) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_loop_iter_10_601011)
- DSL valid: True
- FeatureSet candidate id: 1308
- baseline PF: 2.466 → modified PF: 1.078
- t_stat: 0.000, p_value: 0.003, cohens_d: 0.799
- scalar_score: -6.4957
- accepted: False, reason: normalized_score -0.3150 <= 0.0, sharpe_delta -22.7340 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.078, diff=-1.388
- sharpe_ratio: baseline=24.727, modified=1.993, diff=-22.734
- win_rate: baseline=0.636, modified=0.486, diff=-0.150
- max_drawdown: baseline=0.050, modified=0.114, diff=0.064
- test_accuracy: baseline=0.992, modified=0.986, diff=-0.006
### Iteration 11
- DSL: `i_boll(k_close, 20) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_loop_iter_11_781c69)
- DSL valid: True
- FeatureSet candidate id: 1309
- baseline PF: 2.466 → modified PF: 1.222
- t_stat: 0.000, p_value: 0.000, cohens_d: 0.761
- scalar_score: -5.5490
- accepted: False, reason: normalized_score -0.2599 <= 0.0, sharpe_delta -19.2542 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.222, diff=-1.244
- sharpe_ratio: baseline=24.727, modified=5.473, diff=-19.254
- win_rate: baseline=0.636, modified=0.528, diff=-0.109
- max_drawdown: baseline=0.050, modified=0.142, diff=0.092
- test_accuracy: baseline=0.992, modified=0.992, diff=-0.000
### Iteration 12
- DSL: `obv_rebased.pct_change / (1 + atr_norm)` (feature=k_iter12_pct_change_atr_norm)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL triggered unexpected TypeError: unsupported operand type(s) for /: 'method' and 'float'
### Iteration 13
- DSL: `i_macd(k_close, 12, 26, 9) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_iter13_i_macd_k_close_i_atr_k_high)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: quality_gate: canonical duplicate: i_macd(k_close) / (1 + i_atr(k_high,k_low,k_close))
### Iteration 14
- DSL: `k_momentum_o_div_ratio * (1 + hl_range) / (1 + atr_norm)` (feature=k_iter14_k_momentum_o_div_rat_hl_range_atr_norm)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL: 變數未定義: k_momentum_o_div_ratio
### Iteration 15
- DSL: `abs(o_div_binary(48)) * k_volume.rolling.mean / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_iter15_abs_k_volume_rolling_mean)
- DSL valid: False
- FeatureSet candidate id: None
- baseline PF: 0.000 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: safe_eval DSL: 變數未定義: abs
📊 Multi-Objective Metrics
Iteration 1: k_iter1_pct_change_atr_norm_price_position
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 2: k_loop_iter_2_be4e29
Y Label: C8 | Parent FS: #7
Objective mode: scalarize
Scalar score: 1.4881
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.600 | 0.636 | 0.036 |
| max_drawdown | 0.056 | 0.050 | -0.006 |
| sharpe_ratio | 19.162 | 24.727 | 5.565 |
| profit_factor | 1.947 | 2.466 | 0.519 |
| test_accuracy | 0.992 | 0.992 | 0.000 |
Iteration 3: k_iter3_abs_k_volume_rolling_mean
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
Iteration 4: k_loop_iter_4_b064f8
Y Label: C8 | Parent FS: #1303
Objective mode: scalarize
Scalar score: -3.9796
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.428 | -0.208 |
| max_drawdown | 0.050 | 0.142 | 0.092 |
| sharpe_ratio | 24.727 | 3.436 | -21.291 |
| profit_factor | 2.466 | 1.141 | -1.325 |
| test_accuracy | 0.992 | 0.000 | -0.992 |
Iteration 5: k_loop_iter_5_5a75ad
Y Label: C8 | Parent FS: #1303
Objective mode: scalarize
Scalar score: -4.5400
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.513 | -0.124 |
| max_drawdown | 0.050 | 0.161 | 0.111 |
| sharpe_ratio | 24.727 | 2.987 | -21.740 |
| profit_factor | 2.466 | 1.110 | -1.356 |
| test_accuracy | 0.992 | 0.992 | 0.000 |
Iteration 6: k_iter6_abs_k_volume_i_atr_k_high
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
Iteration 7: k_loop_iter_7_f320f0
Y Label: C8 | Parent FS: #1303
Objective mode: scalarize
Scalar score: -5.3566
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.500 | -0.136 |
| max_drawdown | 0.050 | 0.089 | 0.039 |
| sharpe_ratio | 24.727 | 3.833 | -20.894 |
| profit_factor | 2.466 | 1.150 | -1.316 |
| test_accuracy | 0.992 | 0.986 | -0.006 |
Iteration 8: k_loop_iter_8_e70ae8
Y Label: C8 | Parent FS: #1303
Objective mode: scalarize
Scalar score: -0.5535
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.518 | -0.119 |
| max_drawdown | 0.050 | 0.098 | 0.047 |
| sharpe_ratio | 24.727 | 6.139 | -18.588 |
| profit_factor | 2.466 | 1.261 | -1.205 |
| test_accuracy | 0.992 | 0.986 | -0.006 |
Iteration 9: k_iter9_pct_change_i_atr_k_high_k_low
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
Iteration 10: k_loop_iter_10_601011
Y Label: C8 | Parent FS: #1303
Objective mode: scalarize
Scalar score: -6.4957
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.486 | -0.150 |
| max_drawdown | 0.050 | 0.114 | 0.064 |
| sharpe_ratio | 24.727 | 1.993 | -22.734 |
| profit_factor | 2.466 | 1.078 | -1.388 |
| test_accuracy | 0.992 | 0.986 | -0.006 |
Iteration 11: k_loop_iter_11_781c69
Y Label: C8 | Parent FS: #1303
Objective mode: scalarize
Scalar score: -5.5490
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.528 | -0.109 |
| max_drawdown | 0.050 | 0.142 | 0.092 |
| sharpe_ratio | 24.727 | 5.473 | -19.254 |
| profit_factor | 2.466 | 1.222 | -1.244 |
| test_accuracy | 0.992 | 0.992 | 0.000 |
Iteration 12: k_iter12_pct_change_atr_norm
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
Iteration 13: k_iter13_i_macd_k_close_i_atr_k_high
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
Iteration 14: k_iter14_k_momentum_o_div_rat_hl_range_atr_norm
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
Iteration 15: k_iter15_abs_k_volume_rolling_mean
Y Label: C8 | Parent FS: #1303
Objective mode: single
Scalar score: 0.0000
📁 Offline Report
Markdown backup: reports/autoloop/zz_sylvain/20260726_183746.md