跳到主要內容

Feature Iteration Run #1011: zz_sylvain

Status: completed | Started: 2026-07-26 13:51:14 | Ended: 2026-07-26 14:01:52

⭐ Best Accepted Iteration

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

baseline PF: 1.947 → modified PF: 3.078 | Cohen's d: 0.313 | p-value: 0.008

📊 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_iter1_k_momentum_pct_chang_hl_range_return_5 k_momentum_pct_change * (1 + hl_range) … ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: k_momentum_pct_change * (1 + hl_range) * (1 - return_5)
2 C8 gradient_boosting — — #7 k_iter2_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: C8 leakage: ['dist_to_high']; NaN ratio 1.000 exceeds 0.3
3 C8 gradient_boosting — — #7 k_iter3_pct_change_price_position_hl_range_atr_norm obv_rebased.pct_change * (1 - price_pos… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL triggered unexpected TypeError: unsupported operand type(s) for *: 'method' and 'float'
4 C8 gradient_boosting — — #7 k_loop_iter_4_7391ce k_high.pct_change(12) / (1 + atr_norm) … ✅ 1.947 3.078 2.9215 0.000 0.008 0.313 ✅ ACCEPT accepted
5 C8 gradient_boosting — — #1331 k_loop_iter_5_6032bc k_high.pct_change(12) / (1 + atr_norm) … ✅ 3.078 1.201 -3.1673 0.000 0.306 0.521 ❌ REJECT scalar_score -3.1673 <= 0.0, sharpe_delta -25.0052 < -0.3, hypothesis test not confirmed
6 C8 gradient_boosting — — #1331 k_iter6_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
7 C8 gradient_boosting — — #1331 k_iter7_k_high_pct_change_hl_range_price_position k_high.pct_change(12) * (1 + hl_range) … ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: NaN ratio 1.000 exceeds 0.3
8 C8 gradient_boosting — — #1331 k_loop_iter_8_0f050c k_high.pct_change(12) / (1 + atr_norm) … ✅ 3.078 1.052 -8.2721 0.000 0.000 0.713 ❌ REJECT scalar_score -8.2721 <= 0.0, sharpe_delta -28.7148 < -0.3, hypothesis test not confirmed
9 C8 gradient_boosting — — #1331 k_loop_iter_9_9fedc7 k_high.pct_change(12) / (1 + atr_norm) … ✅ 3.078 1.274 -1.4874 0.000 0.404 0.425 ❌ REJECT scalar_score -1.4874 <= 0.0, sharpe_delta -23.9857 < -0.3, hypothesis test not confirmed
10 C8 gradient_boosting — — #1331 k_iter10_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: C8 leakage: ['dist_to_high']
11 C8 gradient_boosting — — #1331 k_loop_iter_11_f855c9 k_high.pct_change(12) / (1 + atr_norm) … ✅ 3.078 1.196 -5.3795 0.000 0.151 0.499 ❌ REJECT scalar_score -5.3795 <= 0.0, sharpe_delta -25.1943 < -0.3, hypothesis test not confirmed
12 C8 gradient_boosting — — #1331 k_iter12_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
13 C8 gradient_boosting — — #1331 k_loop_iter_13_f7f3c6 obv_ensemble_3 * k_high.pct_change(12) … ✅ 3.078 1.169 -7.0136 0.000 0.038 0.526 ❌ REJECT scalar_score -7.0136 <= 0.0, sharpe_delta -25.7367 < -0.3, hypothesis test not confirmed
14 C8 gradient_boosting — — #1331 k_loop_iter_14_1058f7 (k_momentum_pct_change - o_div_amplitud… ✅ 3.078 1.325 -0.8961 0.000 0.410 0.375 ❌ REJECT scalar_score -0.8961 <= 0.0, sharpe_delta -20.3526 < -0.3, hypothesis test not confirmed
15 C8 gradient_boosting — — #1331 k_loop_iter_15_c563af (o_div_amplitude_12 - k_momentum_pct_ch… ✅ 3.078 1.325 -0.6964 0.000 0.414 0.328 ❌ REJECT scalar_score -0.6964 <= 0.0, sharpe_delta -20.3233 < -0.3, hypothesis test not confirmed

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

## Iterations 詳情

### Iteration 1
- DSL: `k_momentum_pct_change * (1 + hl_range) * (1 - return_5)` (feature=k_iter1_k_momentum_pct_chang_hl_range_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: canonical duplicate: k_momentum_pct_change * (1 + hl_range) * (1 - return_5)

### Iteration 2
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - dist_to_high) * (1 - return_5) * i_rsi(k_close, 14) / 100` (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']; NaN ratio 1.000 exceeds 0.3

### Iteration 3
- DSL: `obv_rebased.pct_change * (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 triggered unexpected TypeError: unsupported operand type(s) for *: 'method' and 'float'

### Iteration 4
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) * i_ema(k_close, 20) / k_close` (feature=k_loop_iter_4_7391ce)
- DSL valid: True
- FeatureSet candidate id: 1331
- baseline PF: 1.947 → modified PF: 3.078
- t_stat: 0.000, p_value: 0.008, cohens_d: 0.313
- scalar_score: 2.9215
- accepted: True, reason: accepted

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=3.078, diff=1.130
  - sharpe_ratio: baseline=19.162, modified=30.120, diff=10.957
  - win_rate: baseline=0.600, modified=0.606, diff=0.006
  - max_drawdown: baseline=0.056, modified=0.043, diff=-0.013
  - test_accuracy: baseline=0.992, modified=0.991, diff=-0.001

### Iteration 5
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) * i_macd(k_close, 12, 26, 9) / (1 + atr_norm * 10)` (feature=k_loop_iter_5_6032bc)
- DSL valid: True
- FeatureSet candidate id: 1332
- baseline PF: 3.078 → modified PF: 1.201
- t_stat: 0.000, p_value: 0.306, cohens_d: 0.521
- scalar_score: -3.1673
- accepted: False, reason: scalar_score -3.1673 <= 0.0, sharpe_delta -25.0052 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.201, diff=-1.877
  - sharpe_ratio: baseline=30.120, modified=5.115, diff=-25.005
  - win_rate: baseline=0.606, modified=0.432, diff=-0.174
  - max_drawdown: baseline=0.043, modified=0.135, diff=0.092
  - test_accuracy: baseline=0.991, modified=0.000, diff=-0.991

### Iteration 6
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) * (i_rsi(k_close, 14) - 50) / 50` (feature=k_iter6_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 7
- DSL: `k_high.pct_change(12) * (1 + hl_range) * (1 - price_position) * (1 - return_5) * i_rsi(k_close, 14) / 100` (feature=k_iter7_k_high_pct_change_hl_range_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 8
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) * (1 - o_div_binary_48)` (feature=k_loop_iter_8_0f050c)
- DSL valid: True
- FeatureSet candidate id: 1333
- baseline PF: 3.078 → modified PF: 1.052
- t_stat: 0.000, p_value: 0.000, cohens_d: 0.713
- scalar_score: -8.2721
- accepted: False, reason: scalar_score -8.2721 <= 0.0, sharpe_delta -28.7148 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.052, diff=-2.026
  - sharpe_ratio: baseline=30.120, modified=1.405, diff=-28.715
  - win_rate: baseline=0.606, modified=0.500, diff=-0.106
  - max_drawdown: baseline=0.043, modified=0.155, diff=0.112
  - test_accuracy: baseline=0.991, modified=0.991, diff=0.000

### Iteration 9
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) * (k_volume / k_volume.rolling(20).mean())` (feature=k_loop_iter_9_9fedc7)
- DSL valid: True
- FeatureSet candidate id: 1334
- baseline PF: 3.078 → modified PF: 1.274
- t_stat: 0.000, p_value: 0.404, cohens_d: 0.425
- scalar_score: -1.4874
- accepted: False, reason: scalar_score -1.4874 <= 0.0, sharpe_delta -23.9857 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.274, diff=-1.803
  - sharpe_ratio: baseline=30.120, modified=6.134, diff=-23.986
  - win_rate: baseline=0.606, modified=0.445, diff=-0.161
  - max_drawdown: baseline=0.043, modified=0.097, diff=0.054
  - test_accuracy: baseline=0.991, modified=0.984, diff=-0.007

### Iteration 10
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - dist_to_high) * (1 + i_ema(k_close, 20) / k_close - 1)` (feature=k_iter10_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']

### Iteration 11
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) * (i_macd(k_close, 12, 26, 9) - i_macd(k_close, 6, 13, 4))` (feature=k_loop_iter_11_f855c9)
- DSL valid: True
- FeatureSet candidate id: 1335
- baseline PF: 3.078 → modified PF: 1.196
- t_stat: 0.000, p_value: 0.151, cohens_d: 0.499
- scalar_score: -5.3795
- accepted: False, reason: scalar_score -5.3795 <= 0.0, sharpe_delta -25.1943 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.196, diff=-1.882
  - sharpe_ratio: baseline=30.120, modified=4.926, diff=-25.194
  - win_rate: baseline=0.606, modified=0.500, diff=-0.106
  - max_drawdown: baseline=0.043, modified=0.139, diff=0.096
  - test_accuracy: baseline=0.991, modified=0.992, diff=0.000

### Iteration 12
- DSL: `abs(o_div_binary(12)) * k_volume.rolling.mean / (1 + atr_norm) * (1 - price_position)` (feature=k_iter12_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 13
- DSL: `obv_ensemble_3 * k_high.pct_change(12) / (1 + atr_norm * 10) * (1 - price_position)` (feature=k_loop_iter_13_f7f3c6)
- DSL valid: True
- FeatureSet candidate id: 1336
- baseline PF: 3.078 → modified PF: 1.169
- t_stat: 0.000, p_value: 0.038, cohens_d: 0.526
- scalar_score: -7.0136
- accepted: False, reason: scalar_score -7.0136 <= 0.0, sharpe_delta -25.7367 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.169, diff=-1.909
  - sharpe_ratio: baseline=30.120, modified=4.383, diff=-25.737
  - win_rate: baseline=0.606, modified=0.486, diff=-0.120
  - max_drawdown: baseline=0.043, modified=0.136, diff=0.093
  - test_accuracy: baseline=0.991, modified=0.991, diff=0.000

### Iteration 14
- DSL: `(k_momentum_pct_change - o_div_amplitude_48) * (1 - price_position) / (1 + atr_norm * 10)` (feature=k_loop_iter_14_1058f7)
- DSL valid: True
- FeatureSet candidate id: 1337
- baseline PF: 3.078 → modified PF: 1.325
- t_stat: 0.000, p_value: 0.410, cohens_d: 0.375
- scalar_score: -0.8961
- accepted: False, reason: scalar_score -0.8961 <= 0.0, sharpe_delta -20.3526 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.325, diff=-1.752
  - sharpe_ratio: baseline=30.120, modified=9.767, diff=-20.353
  - win_rate: baseline=0.606, modified=0.504, diff=-0.102
  - max_drawdown: baseline=0.043, modified=0.180, diff=0.137
  - test_accuracy: baseline=0.991, modified=0.980, diff=-0.012

### Iteration 15
- DSL: `(o_div_amplitude_12 - k_momentum_pct_change) / (1 + atr_norm * 10) * vol_ratio` (feature=k_loop_iter_15_c563af)
- DSL valid: True
- FeatureSet candidate id: 1338
- baseline PF: 3.078 → modified PF: 1.325
- t_stat: 0.000, p_value: 0.414, cohens_d: 0.328
- scalar_score: -0.6964
- accepted: False, reason: scalar_score -0.6964 <= 0.0, sharpe_delta -20.3233 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=3.078, modified=1.325, diff=-1.753
  - sharpe_ratio: baseline=30.120, modified=9.796, diff=-20.323
  - win_rate: baseline=0.606, modified=0.496, diff=-0.110
  - max_drawdown: baseline=0.043, modified=0.129, diff=0.086
  - test_accuracy: baseline=0.991, modified=0.981, diff=-0.010

📊 Multi-Objective Metrics

Iteration 1: k_iter1_k_momentum_pct_chang_hl_range_return_5

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

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_loop_iter_4_7391ce

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 2.9215

MetricBaselineModifiedDiff
win_rate 0.600 0.606 0.006
max_drawdown 0.056 0.043 -0.013
sharpe_ratio 19.162 30.120 10.957
profit_factor 1.947 3.078 1.130
test_accuracy 0.992 0.991 -0.001

Iteration 5: k_loop_iter_5_6032bc

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -3.1673

MetricBaselineModifiedDiff
win_rate 0.606 0.432 -0.174
max_drawdown 0.043 0.135 0.092
sharpe_ratio 30.120 5.115 -25.005
profit_factor 3.078 1.201 -1.877
test_accuracy 0.991 0.000 -0.991

Iteration 6: k_iter6_k_high_pct_change_atr_norm_price_position

Y Label: C8 | Parent FS: #1331

Objective mode: single

Scalar score: 0.0000

Iteration 7: k_iter7_k_high_pct_change_hl_range_price_position

Y Label: C8 | Parent FS: #1331

Objective mode: single

Scalar score: 0.0000

Iteration 8: k_loop_iter_8_0f050c

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -8.2721

MetricBaselineModifiedDiff
win_rate 0.606 0.500 -0.106
max_drawdown 0.043 0.155 0.112
sharpe_ratio 30.120 1.405 -28.715
profit_factor 3.078 1.052 -2.026
test_accuracy 0.991 0.991 0.000

Iteration 9: k_loop_iter_9_9fedc7

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -1.4874

MetricBaselineModifiedDiff
win_rate 0.606 0.445 -0.161
max_drawdown 0.043 0.097 0.054
sharpe_ratio 30.120 6.134 -23.986
profit_factor 3.078 1.274 -1.803
test_accuracy 0.991 0.984 -0.007

Iteration 10: k_iter10_k_high_pct_change_atr_norm_price_position

Y Label: C8 | Parent FS: #1331

Objective mode: single

Scalar score: 0.0000

Iteration 11: k_loop_iter_11_f855c9

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -5.3795

MetricBaselineModifiedDiff
win_rate 0.606 0.500 -0.106
max_drawdown 0.043 0.139 0.096
sharpe_ratio 30.120 4.926 -25.194
profit_factor 3.078 1.196 -1.882
test_accuracy 0.991 0.992 0.000

Iteration 12: k_iter12_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #1331

Objective mode: single

Scalar score: 0.0000

Iteration 13: k_loop_iter_13_f7f3c6

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -7.0136

MetricBaselineModifiedDiff
win_rate 0.606 0.486 -0.120
max_drawdown 0.043 0.136 0.093
sharpe_ratio 30.120 4.383 -25.737
profit_factor 3.078 1.169 -1.909
test_accuracy 0.991 0.991 0.000

Iteration 14: k_loop_iter_14_1058f7

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -0.8961

MetricBaselineModifiedDiff
win_rate 0.606 0.504 -0.102
max_drawdown 0.043 0.180 0.137
sharpe_ratio 30.120 9.767 -20.353
profit_factor 3.078 1.325 -1.752
test_accuracy 0.991 0.980 -0.012

Iteration 15: k_loop_iter_15_c563af

Y Label: C8 | Parent FS: #1331

Objective mode: scalarize

Scalar score: -0.6964

MetricBaselineModifiedDiff
win_rate 0.606 0.496 -0.110
max_drawdown 0.043 0.129 0.086
sharpe_ratio 30.120 9.796 -20.323
profit_factor 3.078 1.325 -1.753
test_accuracy 0.991 0.981 -0.010

📁 Offline Report

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