跳到主要內容

Feature Iteration Run #1001: zz_sylvain

Status: completed | Started: 2026-07-26 10:18:33 | Ended: 2026-07-26 10:28:08

⭐ Best Accepted Iteration

Iteration 4: k_high.pct_change(12) / (1 + atr_norm) * (1 - price_positio…

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 DSL DSL Valid Baseline PF Modified PF Scalar Score t-stat p-value Cohen's d Result Reason
1 C8 gradient_boosting — — #7 k_loop_iter_1_86e754 k_momentum_pct_change * (1 - price_posi… ✅ 1.947 1.399 -0.2116 0.000 0.427 0.181 ❌ REJECT normalized_score -0.1396 <= 0.0, sharpe_delta -7.2425 < -0.3, hypothesis test not confirmed
2 C8 gradient_boosting — — #7 k_iter2_k_high_pct_change_price_position_dist_to_high k_high.pct_change(12) * (1 - price_posi… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: C8 leakage: ['dist_to_high']
3 C8 gradient_boosting — — #7 k_loop_iter_3_4474f9 k_momentum_pct_change * (1 - price_posi… ✅ 1.947 1.679 -0.0358 0.000 0.324 0.233 ❌ REJECT normalized_score -0.0478 <= 0.0, sharpe_delta -0.9962 < -0.3, hypothesis test not confirmed
4 C8 gradient_boosting — — #7 k_loop_iter_4_173572 k_high.pct_change(12) / (1 + atr_norm) … ✅ 1.947 2.466 1.4881 0.000 0.012 0.388 ✅ ACCEPT accepted
5 C8 gradient_boosting — — #1295 k_iter5_k_high_pct_change_atr_norm_price_position k_high.pct_change(12) / (1 + atr_norm) … ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: NaN ratio 1.000 exceeds 0.3
6 C8 gradient_boosting — — #1295 k_loop_iter_6_ffc69b obv_ensemble_3 * (1 - hl_range) / (1 + … ✅ 2.466 1.110 -4.5400 0.000 0.142 0.676 ❌ REJECT normalized_score -0.2884 <= 0.0, sharpe_delta -21.7399 < -0.3, hypothesis test not confirmed
7 C8 gradient_boosting — — #1295 k_loop_iter_7_99c651 k_high.pct_change(12) / (1 + atr_norm) … ✅ 2.466 1.677 -2.9795 0.000 0.000 0.535 ❌ REJECT normalized_score -0.1485 <= 0.0, sharpe_delta -10.1979 < -0.3, hypothesis test not confirmed
8 C8 gradient_boosting — — #1295 k_loop_iter_8_38cdc6 k_high.pct_change(12) / (1 + atr_norm) … ✅ 2.466 1.072 -5.8710 0.000 0.033 0.931 ❌ REJECT normalized_score -0.2764 <= 0.0, sharpe_delta -22.5188 < -0.3, hypothesis test not confirmed
9 C8 gradient_boosting — — #1295 k_iter9_abs_k_volume_rolling_mean abs(o_div_binary(12)) * k_volume.rollin… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: 變數未定義: abs
10 C8 gradient_boosting — — #1295 k_loop_iter_10_67667e k_momentum_pct_change * (1 - price_posi… ✅ 2.466 1.172 -5.5257 0.000 0.011 0.657 ❌ REJECT normalized_score -0.2729 <= 0.0, sharpe_delta -20.3327 < -0.3, hypothesis test not confirmed
11 C8 gradient_boosting — — #1295 k_loop_iter_11_0a7bc3 (k_high.pct_change(12) * (1 - price_pos… ✅ 2.466 1.197 -5.2088 0.000 0.052 0.858 ❌ REJECT normalized_score -0.2769 <= 0.0, sharpe_delta -19.8223 < -0.3, hypothesis test not confirmed
12 C8 gradient_boosting — — #1295 k_loop_iter_12_0a59df (obv_rebased.pct_change(12) - k_momentu… ✅ 2.466 1.110 -5.9392 0.000 0.033 0.739 ❌ REJECT normalized_score -0.2884 <= 0.0, sharpe_delta -21.7399 < -0.3, hypothesis test not confirmed
13 C8 gradient_boosting — — #1295 k_loop_iter_13_c3b4e0 (k_momentum_pct_change - i_macd(k_close… ✅ 2.466 1.203 -4.8424 0.000 0.081 0.534 ❌ REJECT normalized_score -0.2768 <= 0.0, sharpe_delta -19.4990 < -0.3, hypothesis test not confirmed
14 C8 gradient_boosting — — #1295 k_iter14_i_rsi_k_close_i_ema_i_atr i_rsi(k_close, 14) * (k_close - i_ema(k… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: NaN ratio 1.000 exceeds 0.3
15 C8 gradient_boosting — — #1295 k_iter15_abs_k_volume_rolling_mean abs(o_div_binary(12)) * k_volume.rollin… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: 變數未定義: abs

📄 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**: 1295
> **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**: 575.26s
> **Total accepted**: 1
> **Total rejected**: 14

## Iterations 詳情

### Iteration 1
- DSL: `k_momentum_pct_change * (1 - price_position) * (k_close - i_ema(k_close, 20)) / (1 + atr_norm * 10)` (feature=k_loop_iter_1_86e754)
- DSL valid: True
- FeatureSet candidate id: 1293
- baseline PF: 1.947 → modified PF: 1.399
- t_stat: 0.000, p_value: 0.427, cohens_d: 0.181
- scalar_score: -0.2116
- accepted: False, reason: normalized_score -0.1396 <= 0.0, sharpe_delta -7.2425 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=1.399, diff=-0.549
  - sharpe_ratio: baseline=19.162, modified=11.920, diff=-7.243
  - win_rate: baseline=0.600, modified=0.532, diff=-0.068
  - max_drawdown: baseline=0.056, modified=0.098, diff=0.042
  - test_accuracy: baseline=0.992, modified=0.981, diff=-0.011

### Iteration 2
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - dist_to_high) / (1 + hl_range)` (feature=k_iter2_k_high_pct_change_price_position_dist_to_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: C8 leakage: ['dist_to_high']

### Iteration 3
- DSL: `k_momentum_pct_change * (1 - price_position) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_loop_iter_3_4474f9)
- DSL valid: True
- FeatureSet candidate id: 1294
- baseline PF: 1.947 → modified PF: 1.679
- t_stat: 0.000, p_value: 0.324, cohens_d: 0.233
- scalar_score: -0.0358
- accepted: False, reason: normalized_score -0.0478 <= 0.0, sharpe_delta -0.9962 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=1.679, diff=-0.268
  - sharpe_ratio: baseline=19.162, modified=18.166, diff=-0.996
  - win_rate: baseline=0.600, modified=0.548, diff=-0.052
  - max_drawdown: baseline=0.056, modified=0.070, diff=0.014
  - test_accuracy: baseline=0.992, modified=0.981, diff=-0.011

### Iteration 4
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) / (1 + hl_range)` (feature=k_loop_iter_4_173572)
- DSL valid: True
- FeatureSet candidate id: 1295
- 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 5
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) / (1 + i_rsi(k_close, 14) - 50)` (feature=k_iter5_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: NaN ratio 1.000 exceeds 0.3

### Iteration 6
- DSL: `obv_ensemble_3 * (1 - hl_range) / (1 + atr_norm * 10) * (1 - price_position)` (feature=k_loop_iter_6_ffc69b)
- DSL valid: True
- FeatureSet candidate id: 1296
- 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 7
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) / (1 + i_ema(k_close, 20) / k_close)` (feature=k_loop_iter_7_99c651)
- DSL valid: True
- FeatureSet candidate id: 1297
- baseline PF: 2.466 → modified PF: 1.677
- t_stat: 0.000, p_value: 0.000, cohens_d: 0.535
- scalar_score: -2.9795
- accepted: False, reason: normalized_score -0.1485 <= 0.0, sharpe_delta -10.1979 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.677, diff=-0.789
  - sharpe_ratio: baseline=24.727, modified=14.529, diff=-10.198
  - win_rate: baseline=0.636, modified=0.541, diff=-0.096
  - max_drawdown: baseline=0.050, modified=0.135, diff=0.085
  - test_accuracy: baseline=0.992, modified=0.992, diff=0.000

### Iteration 8
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * i_macd(k_close, 12, 26, 9) / (i_atr(k_high, k_low, k_close, 14) + 1e-10)` (feature=k_loop_iter_8_38cdc6)
- DSL valid: True
- FeatureSet candidate id: 1298
- baseline PF: 2.466 → modified PF: 1.072
- t_stat: 0.000, p_value: 0.033, cohens_d: 0.931
- scalar_score: -5.8710
- accepted: False, reason: normalized_score -0.2764 <= 0.0, sharpe_delta -22.5188 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.072, diff=-1.394
  - sharpe_ratio: baseline=24.727, modified=2.208, diff=-22.519
  - win_rate: baseline=0.636, modified=0.478, diff=-0.158
  - max_drawdown: baseline=0.050, modified=0.322, diff=0.271
  - test_accuracy: baseline=0.992, modified=0.973, diff=-0.019

### Iteration 9
- DSL: `abs(o_div_binary(12)) * k_volume.rolling.mean * (1 - price_position) / (1 + atr_norm)` (feature=k_iter9_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 10
- DSL: `k_momentum_pct_change * (1 - price_position) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close + 1e-10)` (feature=k_loop_iter_10_67667e)
- DSL valid: True
- FeatureSet candidate id: 1299
- baseline PF: 2.466 → modified PF: 1.172
- t_stat: 0.000, p_value: 0.011, cohens_d: 0.657
- scalar_score: -5.5257
- accepted: False, reason: normalized_score -0.2729 <= 0.0, sharpe_delta -20.3327 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.172, diff=-1.294
  - sharpe_ratio: baseline=24.727, modified=4.395, diff=-20.333
  - win_rate: baseline=0.636, modified=0.526, diff=-0.110
  - max_drawdown: baseline=0.050, modified=0.143, diff=0.093
  - test_accuracy: baseline=0.992, modified=0.992, diff=-0.000

### Iteration 11
- DSL: `(k_high.pct_change(12) * (1 - price_position) - k_momentum_pct_change * i_atr(k_high, k_low, k_close, 14) / k_close) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_loop_iter_11_0a7bc3)
- DSL valid: True
- FeatureSet candidate id: 1300
- baseline PF: 2.466 → modified PF: 1.197
- t_stat: 0.000, p_value: 0.052, cohens_d: 0.858
- scalar_score: -5.2088
- accepted: False, reason: normalized_score -0.2769 <= 0.0, sharpe_delta -19.8223 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.197, diff=-1.269
  - sharpe_ratio: baseline=24.727, modified=4.905, diff=-19.822
  - win_rate: baseline=0.636, modified=0.470, diff=-0.166
  - max_drawdown: baseline=0.050, modified=0.155, diff=0.105
  - test_accuracy: baseline=0.992, modified=0.985, diff=-0.007

### Iteration 12
- DSL: `(obv_rebased.pct_change(12) - k_momentum_pct_change) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close + 1e-10)` (feature=k_loop_iter_12_0a59df)
- DSL valid: True
- FeatureSet candidate id: 1301
- 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: 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 13
- DSL: `(k_momentum_pct_change - i_macd(k_close, 12, 26, 9)) * (1 - price_position) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close + 1e-10)` (feature=k_loop_iter_13_c3b4e0)
- DSL valid: True
- FeatureSet candidate id: 1302
- baseline PF: 2.466 → modified PF: 1.203
- t_stat: 0.000, p_value: 0.081, cohens_d: 0.534
- scalar_score: -4.8424
- accepted: False, reason: normalized_score -0.2768 <= 0.0, sharpe_delta -19.4990 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.203, diff=-1.263
  - sharpe_ratio: baseline=24.727, modified=5.228, diff=-19.499
  - win_rate: baseline=0.636, modified=0.500, diff=-0.136
  - max_drawdown: baseline=0.050, modified=0.103, diff=0.053
  - test_accuracy: baseline=0.992, modified=0.992, diff=0.000

### Iteration 14
- DSL: `i_rsi(k_close, 14) * (k_close - i_ema(k_close, 20)) / (k_close * (1 + i_atr(k_high, k_low, k_close, 14) / k_close + 1e-10))` (feature=k_iter14_i_rsi_k_close_i_ema_i_atr)
- 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 15
- DSL: `abs(o_div_binary(12)) * k_volume.rolling.mean / (1 + i_atr(k_high, k_low, k_close, 14) / k_close + 1e-10)` (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_86e754

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -0.2116

MetricBaselineModifiedDiff
win_rate 0.600 0.532 -0.068
max_drawdown 0.056 0.098 0.042
sharpe_ratio 19.162 11.920 -7.243
profit_factor 1.947 1.399 -0.549
test_accuracy 0.992 0.981 -0.011

Iteration 2: k_iter2_k_high_pct_change_price_position_dist_to_high

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 3: k_loop_iter_3_4474f9

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -0.0358

MetricBaselineModifiedDiff
win_rate 0.600 0.548 -0.052
max_drawdown 0.056 0.070 0.014
sharpe_ratio 19.162 18.166 -0.996
profit_factor 1.947 1.679 -0.268
test_accuracy 0.992 0.981 -0.011

Iteration 4: k_loop_iter_4_173572

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 1.4881

MetricBaselineModifiedDiff
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 5: k_iter5_k_high_pct_change_atr_norm_price_position

Y Label: C8 | Parent FS: #1295

Objective mode: single

Scalar score: 0.0000

Iteration 6: k_loop_iter_6_ffc69b

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -4.5400

MetricBaselineModifiedDiff
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 7: k_loop_iter_7_99c651

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -2.9795

MetricBaselineModifiedDiff
win_rate 0.636 0.541 -0.096
max_drawdown 0.050 0.135 0.085
sharpe_ratio 24.727 14.529 -10.198
profit_factor 2.466 1.677 -0.789
test_accuracy 0.992 0.992 0.000

Iteration 8: k_loop_iter_8_38cdc6

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -5.8710

MetricBaselineModifiedDiff
win_rate 0.636 0.478 -0.158
max_drawdown 0.050 0.322 0.271
sharpe_ratio 24.727 2.208 -22.519
profit_factor 2.466 1.072 -1.394
test_accuracy 0.992 0.973 -0.019

Iteration 9: k_iter9_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #1295

Objective mode: single

Scalar score: 0.0000

Iteration 10: k_loop_iter_10_67667e

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -5.5257

MetricBaselineModifiedDiff
win_rate 0.636 0.526 -0.110
max_drawdown 0.050 0.143 0.093
sharpe_ratio 24.727 4.395 -20.333
profit_factor 2.466 1.172 -1.294
test_accuracy 0.992 0.992 0.000

Iteration 11: k_loop_iter_11_0a7bc3

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -5.2088

MetricBaselineModifiedDiff
win_rate 0.636 0.470 -0.166
max_drawdown 0.050 0.155 0.105
sharpe_ratio 24.727 4.905 -19.822
profit_factor 2.466 1.197 -1.269
test_accuracy 0.992 0.985 -0.007

Iteration 12: k_loop_iter_12_0a59df

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -5.9392

MetricBaselineModifiedDiff
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_c3b4e0

Y Label: C8 | Parent FS: #1295

Objective mode: scalarize

Scalar score: -4.8424

MetricBaselineModifiedDiff
win_rate 0.636 0.500 -0.136
max_drawdown 0.050 0.103 0.053
sharpe_ratio 24.727 5.228 -19.499
profit_factor 2.466 1.203 -1.263
test_accuracy 0.992 0.992 0.000

Iteration 14: k_iter14_i_rsi_k_close_i_ema_i_atr

Y Label: C8 | Parent FS: #1295

Objective mode: single

Scalar score: 0.0000

Iteration 15: k_iter15_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #1295

Objective mode: single

Scalar score: 0.0000

📁 Offline Report

Markdown backup: reports/autoloop/zz_sylvain/20260726_182808.md