Feature Iteration Run #1018: zz_sylvain
Status: completed | Started: 2026-07-26 14:51:10 | Ended: 2026-07-26 14:59:27
⭐ Best Accepted Iteration
Iteration 8: k_high.pct_change(12) * (1 - price_position) * (1 - return_…
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_loop_iter_1_a0ff53 | 1.947 | 1.465 | -0.2506 | ❌ REJECT |
| 2 | C8 |
gradient_boosting |
— | — | #7 | k_iter2_k_high_pct_change_atr_norm_price_position | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 3 | C8 |
gradient_boosting |
— | — | #7 | k_iter3_pct_change_price_position_hl_range_atr_norm | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 4 | C8 |
gradient_boosting |
— | — | #7 | k_iter4_k_high_pct_change_price_position_hl_range | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 5 | C8 |
gradient_boosting |
— | — | #7 | k_loop_iter_5_0b3558 | 1.947 | 0.000 | 0.0000 | ❌ REJECT |
| 6 | C8 |
gradient_boosting |
— | — | #7 | k_iter6_abs_k_volume_rolling_mean | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 7 | C8 |
gradient_boosting |
— | — | #7 | k_iter7_hl_range_atr_norm_price_position_i_rsi | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 8 | C8 |
gradient_boosting |
— | — | #7 | k_loop_iter_8_5e5717 | 1.947 | 2.466 | 1.4881 | ✅ ACCEPT |
| 9 | C8 |
gradient_boosting |
— | — | #1348 | k_iter9_abs_hl_range_atr_norm_price_position | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 10 | C8 |
gradient_boosting |
— | — | #1348 | k_iter10_k_high_pct_change_price_position_return_5 | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 11 | C8 |
gradient_boosting |
— | — | #1348 | k_iter11_k_high_pct_change_price_position_return_5 | 0.000 | 0.000 | 0.0000 | ❌ REJECT |
| 12 | C8 |
gradient_boosting |
— | — | #1348 | k_loop_iter_12_497d47 | 2.466 | 1.110 | -5.9392 | ❌ REJECT |
| 13 | C8 |
gradient_boosting |
— | — | #1348 | k_loop_iter_13_7d6c0f | 2.466 | 1.512 | -3.7887 | ❌ REJECT |
| 14 | C8 |
gradient_boosting |
— | — | #1348 | k_loop_iter_14_3b83b1 | 2.466 | 0.000 | 0.0000 | ❌ REJECT |
| 15 | C8 |
gradient_boosting |
— | — | #1348 | 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**: 1348
> **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**: 496.78s
> **Total accepted**: 1
> **Total rejected**: 14
## Iterations 詳情
### Iteration 1
- DSL: `k_momentum_pct_change - o_div_amplitude_12 + i_macd(k_close, 12, 26, 9) - i_ema(k_close, 20)` (feature=k_loop_iter_1_a0ff53)
- DSL valid: True
- FeatureSet candidate id: 1346
- baseline PF: 1.947 → modified PF: 1.465
- t_stat: 0.000, p_value: 0.302, cohens_d: 0.258
- scalar_score: -0.2506
- accepted: False, reason: scalar_score -0.2506 <= 0.0, sharpe_delta -8.5168 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=1.947, modified=1.465, diff=-0.482
- sharpe_ratio: baseline=19.162, modified=10.646, diff=-8.517
- win_rate: baseline=0.600, modified=0.514, diff=-0.086
- max_drawdown: baseline=0.056, modified=0.103, diff=0.047
- test_accuracy: baseline=0.992, modified=0.992, diff=-0.000
### Iteration 2
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - dist_to_high) * (1 + hl_range)` (feature=k_iter2_k_high_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: quality_gate: C8 leakage: ['dist_to_high']; canonical duplicate: k_high.pct_change / (1 + atr_norm) * (1 - price_position) * (1 - dist_to_high) * (1 + hl_range)
### Iteration 3
- DSL: `obv_rebased.pct_change(12) * (1 - price_position) * (1 + hl_range) / (1 + atr_norm)` (feature=k_iter3_pct_change_price_position_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 produced inf values; likely division by zero
### Iteration 4
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 + hl_range) / (1 + atr_norm) * (1 - dist_to_high)` (feature=k_iter4_k_high_pct_change_price_position_hl_range)
- 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: C8 leakage: ['dist_to_high']
### Iteration 5
- DSL: `k_momentum_pct_change * (1 - price_position) / (1 + atr_norm)` (feature=k_loop_iter_5_0b3558)
- DSL valid: True
- FeatureSet candidate id: 1347
- baseline PF: 1.947 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: 1-trial proxy PF=0.775 < 0.95, no improvement expected
### Iteration 6
- DSL: `abs(o_div_binary(12)) * k_volume.rolling(20).mean() / (1 + atr_norm * 10) * (1 - price_position) * (1 + hl_range)` (feature=k_iter6_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 7
- DSL: `obv_ensemble_3 * (1 - hl_range) / (1 + atr_norm) * (1 - price_position) * i_rsi(k_close, 14) / 50` (feature=k_iter7_hl_range_atr_norm_price_position_i_rsi)
- 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: NaN ratio 1.000 exceeds 0.3
### Iteration 8
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - return_5) / (1 + atr_norm * 10)` (feature=k_loop_iter_8_5e5717)
- DSL valid: True
- FeatureSet candidate id: 1348
- 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 9
- DSL: `abs(o_div_binary(12)) * (1 + hl_range) / (1 + atr_norm) * (1 - price_position) * (1 - return_5)` (feature=k_iter9_abs_hl_range_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: 變數未定義: abs
### Iteration 10
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - return_5) * i_rsi(k_close, 14) / (50 * (1 + atr_norm * 10))` (feature=k_iter10_k_high_pct_change_price_position_return_5)
- 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: NaN ratio 1.000 exceeds 0.3
### Iteration 11
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - return_5) / (1 + atr_norm * 10) * (1 + obv_ensemble_3 / (1 + abs(o_div_amplitude_12)))` (feature=k_iter11_k_high_pct_change_price_position_return_5)
- 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 12
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - return_5) * obv_ensemble_3 / (1 + atr_norm * 10)` (feature=k_loop_iter_12_497d47)
- DSL valid: True
- FeatureSet candidate id: 1349
- baseline PF: 2.466 → modified PF: 1.110
- t_stat: 0.000, p_value: 0.033, cohens_d: 0.739
- scalar_score: -5.9392
- accepted: False, reason: scalar_score -5.9392 <= 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 13
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - return_5) / (1 + atr_norm * 10) * (1 + k_consecutive_shrink / 6)` (feature=k_loop_iter_13_7d6c0f)
- DSL valid: True
- FeatureSet candidate id: 1350
- baseline PF: 2.466 → modified PF: 1.512
- t_stat: 0.000, p_value: 0.001, cohens_d: 0.646
- scalar_score: -3.7887
- accepted: False, reason: scalar_score -3.7887 <= 0.0, sharpe_delta -13.0368 < -0.3, hypothesis test not confirmed
**Metrics summary:**
- profit_factor: baseline=2.466, modified=1.512, diff=-0.954
- sharpe_ratio: baseline=24.727, modified=11.690, diff=-13.037
- win_rate: baseline=0.636, modified=0.538, diff=-0.098
- max_drawdown: baseline=0.050, modified=0.135, diff=0.085
- test_accuracy: baseline=0.992, modified=0.992, diff=-0.000
### Iteration 14
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - return_5) / (1 + atr_norm * 10) * i_ema(k_close, 20)` (feature=k_loop_iter_14_3b83b1)
- DSL valid: True
- FeatureSet candidate id: 1351
- baseline PF: 2.466 → modified PF: 0.000
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: 0.0000
- accepted: False, reason: 1-trial proxy PF=0.000 < 0.95, no improvement expected
### Iteration 15
- DSL: `abs(o_div_binary(12)) * k_volume.rolling.mean / (1 + atr_norm * 10) * (1 - price_position)` (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_loop_iter_1_a0ff53
Y Label: C8 | Parent FS: #7
Objective mode: scalarize
Scalar score: -0.2506
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.600 | 0.514 | -0.086 |
| max_drawdown | 0.056 | 0.103 | 0.047 |
| sharpe_ratio | 19.162 | 10.646 | -8.517 |
| profit_factor | 1.947 | 1.465 | -0.482 |
| test_accuracy | 0.992 | 0.992 | 0.000 |
Iteration 2: k_iter2_k_high_pct_change_atr_norm_price_position
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 3: k_iter3_pct_change_price_position_hl_range_atr_norm
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 4: k_iter4_k_high_pct_change_price_position_hl_range
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 5: k_loop_iter_5_0b3558
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 6: k_iter6_abs_k_volume_rolling_mean
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 7: k_iter7_hl_range_atr_norm_price_position_i_rsi
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 8: k_loop_iter_8_5e5717
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 9: k_iter9_abs_hl_range_atr_norm_price_position
Y Label: C8 | Parent FS: #1348
Objective mode: single
Scalar score: 0.0000
Iteration 10: k_iter10_k_high_pct_change_price_position_return_5
Y Label: C8 | Parent FS: #1348
Objective mode: single
Scalar score: 0.0000
Iteration 11: k_iter11_k_high_pct_change_price_position_return_5
Y Label: C8 | Parent FS: #1348
Objective mode: single
Scalar score: 0.0000
Iteration 12: k_loop_iter_12_497d47
Y Label: C8 | Parent FS: #1348
Objective mode: scalarize
Scalar score: -5.9392
| 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 13: k_loop_iter_13_7d6c0f
Y Label: C8 | Parent FS: #1348
Objective mode: scalarize
Scalar score: -3.7887
| Metric | Baseline | Modified | Diff |
|---|---|---|---|
| win_rate | 0.636 | 0.538 | -0.098 |
| max_drawdown | 0.050 | 0.135 | 0.085 |
| sharpe_ratio | 24.727 | 11.690 | -13.037 |
| profit_factor | 2.466 | 1.512 | -0.954 |
| test_accuracy | 0.992 | 0.992 | 0.000 |
Iteration 14: k_loop_iter_14_3b83b1
Y Label: C8 | Parent FS: #1348
Objective mode: single
Scalar score: 0.0000
Iteration 15: k_iter15_abs_k_volume_rolling_mean
Y Label: C8 | Parent FS: #1348
Objective mode: single
Scalar score: 0.0000
📁 Offline Report
Markdown backup: reports/autoloop/zz_sylvain/20260726_225927.md