跳到主要內容

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 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_pct_change_atr_norm_price_position obv_rebased.pct_change(12) / (1 + atr_n… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL produced inf values; likely division by zero
2 C8 gradient_boosting — — #7 k_loop_iter_2_be4e29 k_high.pct_change(12) * (1 + hl_range) … ✅ 1.947 2.466 1.4881 0.000 0.012 0.388 ✅ ACCEPT accepted
3 C8 gradient_boosting — — #1303 k_iter3_abs_k_volume_rolling_mean (abs(o_div_binary(12)) * k_volume.rolli… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: 變數未定義: abs
4 C8 gradient_boosting — — #1303 k_loop_iter_4_b064f8 i_macd(k_close, 12, 26, 9) / (1 + i_atr… ✅ 2.466 1.141 -3.9796 0.000 0.200 0.864 ❌ REJECT normalized_score -0.5013 <= 0.0, sharpe_delta -21.2913 < -0.3, hypothesis test not confirmed
5 C8 gradient_boosting — — #1303 k_loop_iter_5_5a75ad obv_rebased * (1 + hl_range) / (1 + atr… ✅ 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
6 C8 gradient_boosting — — #1303 k_iter6_abs_k_volume_i_atr_k_high abs(o_div_binary_12) * k_volume / (1 + … ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: 變數未定義: abs
7 C8 gradient_boosting — — #1303 k_loop_iter_7_f320f0 k_high.pct_change(12) * (1 + hl_range) … ✅ 2.466 1.150 -5.3566 0.000 0.031 0.733 ❌ REJECT normalized_score -0.2964 <= 0.0, sharpe_delta -20.8939 < -0.3, hypothesis test not confirmed
8 C8 gradient_boosting — — #1303 k_loop_iter_8_e70ae8 i_roc(k_close, 20) / (1 + i_atr(k_high,… ✅ 2.466 1.261 -0.5535 0.000 0.000 0.275 ❌ REJECT normalized_score -0.2635 <= 0.0, sharpe_delta -18.5881 < -0.3, hypothesis test not confirmed
9 C8 gradient_boosting — — #1303 k_iter9_pct_change_i_atr_k_high_k_low obv_rebased.pct_change / (1 + i_atr(k_h… ❌ 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'
10 C8 gradient_boosting — — #1303 k_loop_iter_10_601011 i_hma(k_close, 20) / (1 + i_atr(k_high,… ✅ 2.466 1.078 -6.4957 0.000 0.003 0.799 ❌ REJECT normalized_score -0.3150 <= 0.0, sharpe_delta -22.7340 < -0.3, hypothesis test not confirmed
11 C8 gradient_boosting — — #1303 k_loop_iter_11_781c69 i_boll(k_close, 20) / (1 + i_atr(k_high… ✅ 2.466 1.222 -5.5490 0.000 0.000 0.761 ❌ REJECT normalized_score -0.2599 <= 0.0, sharpe_delta -19.2542 < -0.3, hypothesis test not confirmed
12 C8 gradient_boosting — — #1303 k_iter12_pct_change_atr_norm obv_rebased.pct_change / (1 + atr_norm) ❌ 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'
13 C8 gradient_boosting — — #1303 k_iter13_i_macd_k_close_i_atr_k_high i_macd(k_close, 12, 26, 9) / (1 + i_atr… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: i_macd(k_close) / (1 + i_atr(k_high,k_low,k_close))
14 C8 gradient_boosting — — #1303 k_iter14_k_momentum_o_div_rat_hl_range_atr_norm k_momentum_o_div_ratio * (1 + hl_range)… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: 變數未定義: k_momentum_o_div_ratio
15 C8 gradient_boosting — — #1303 k_iter15_abs_k_volume_rolling_mean abs(o_div_binary(48)) * 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**: 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

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

MetricBaselineModifiedDiff
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

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

MetricBaselineModifiedDiff
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

MetricBaselineModifiedDiff
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

MetricBaselineModifiedDiff
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

MetricBaselineModifiedDiff
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