跳到主要內容

Feature Iteration Run #1058: zz_sylvain

Status: completed | Started: 2026-07-26 18:22:43 | Ended: 2026-07-26 18:29:21

📊 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 lightgbm — — #7 k_loop_iter_1_4f77b0 i_macd(k_close, 12, 26, 9) / (i_atr(k_h… ✅ 1.000 1.590 2.7186 0.000 0.002 1.140 ❌ REJECT max_drawdown_delta -0.0412 < -0.02
2 C8 lightgbm — — #7 k_loop_iter_2_139273 k_high.pct_change(12) / (1 + atr_norm) … ✅ 1.000 1.379 0.8884 0.000 0.279 0.326 ❌ REJECT max_drawdown_delta -0.0777 < -0.02
3 C8 lightgbm — — #7 k_iter3_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
4 C8 lightgbm — — #7 k_iter4_k_high_pct_change_hl_range_atr_norm k_high.pct_change(12) * (1 + hl_range) … ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: k_high.pct_change * (1 + hl_range) / (1 + atr_norm) * (1 - price_position) * (1 - return_5)
5 C8 lightgbm — — #7 k_iter5_i_macd_k_close i_macd(k_close, 12, 26, 9) - i_macd(k_c… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: i_macd(k_close) - i_macd(k_close)
6 C8 lightgbm — — #7 k_iter6_i_rsi_k_close_i_atr_k_high o_div_amplitude_12 * i_rsi(k_close, 14)… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: NaN ratio 1.000 exceeds 0.3
7 C8 lightgbm — — #7 k_iter7_hl_range_i_atr_k_high_k_low obv_ensemble_3 * (1 - hl_range) / (1 + … ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: obv_ensemble_3 * (1 - hl_range) / (1 + i_atr(k_high,k_low,k_close) / k_close)
8 C8 lightgbm — — #7 k_loop_iter_8_a4f62e k_momentum_pct_change - o_div_amplitude… ✅ 1.000 1.528 0.4087 0.000 0.006 0.402 ❌ REJECT max_drawdown_delta -0.0748 < -0.02
9 C8 lightgbm — — #7 k_iter9_k_high_pct_change_price_position_i_atr (k_high.pct_change * (1 - price_positio… ❌ 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 lightgbm — — #7 k_loop_iter_10_a97265 k_momentum_pct_change * (1 + hl_range) … ✅ 1.000 1.528 1.7117 0.000 0.221 0.638 ❌ REJECT max_drawdown_delta -0.0748 < -0.02
11 C8 lightgbm — — #7 k_loop_iter_11_193441 k_momentum_pct_change * (1 - hl_range) … ✅ 1.000 0.959 -0.1191 0.000 0.172 0.345 ❌ REJECT scalar_score -0.1191 <= 0.0, sharpe_delta -1.1215 < -0.3, hypothesis test not confirmed, constraints: ['sharpe_ratio >= 1.0: got -1.1197']
12 C8 lightgbm — — #7 k_loop_iter_12_765a0e o_div_amplitude_12 / (1 + i_atr(k_high,… ✅ 1.000 1.000 0.0000 0.000 0.052 0.159 ❌ REJECT scalar_score 0.0000 <= 0.0, hypothesis test not confirmed, constraints: ['sharpe_ratio >= 1.0: got 0.0017']
13 C8 lightgbm — — #7 k_iter13_i_macd_k_close i_macd(k_close, 12, 26, 9) - i_macd(k_c… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: i_macd(k_close) - i_macd(k_close)
14 C8 lightgbm — — #7 k_iter14_i_rsi_k_close_hl_range_i_atr i_rsi(k_close, 14) * (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
15 C8 lightgbm — — #7 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**: 7
> **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**: 397.46s
> **Total accepted**: 0
> **Total rejected**: 15

## Iterations 詳情

### Iteration 1
- DSL: `i_macd(k_close, 12, 26, 9) / (i_atr(k_high, k_low, k_close, 14) / k_close + 1e-10) * (1 - price_position)` (feature=k_loop_iter_1_4f77b0)
- DSL valid: True
- FeatureSet candidate id: 1403
- baseline PF: 1.000 → modified PF: 1.590
- t_stat: 0.000, p_value: 0.002, cohens_d: 1.140
- scalar_score: 2.7186
- accepted: False, reason: max_drawdown_delta -0.0412 < -0.02

**Metrics summary:**
  - profit_factor: baseline=1.000, modified=1.590, diff=0.589
  - sharpe_ratio: baseline=0.002, modified=11.579, diff=11.577
  - win_rate: baseline=0.465, modified=0.620, diff=0.155
  - max_drawdown: baseline=0.162, modified=0.121, diff=-0.041
  - test_accuracy: baseline=0.966, modified=0.983, diff=0.017

### Iteration 2
- DSL: `k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position) * (1 - return_5) / (1 + hl_range)` (feature=k_loop_iter_2_139273)
- DSL valid: True
- FeatureSet candidate id: 1404
- baseline PF: 1.000 → modified PF: 1.379
- t_stat: 0.000, p_value: 0.279, cohens_d: 0.326
- scalar_score: 0.8884
- accepted: False, reason: max_drawdown_delta -0.0777 < -0.02

**Metrics summary:**
  - profit_factor: baseline=1.000, modified=1.379, diff=0.378
  - sharpe_ratio: baseline=0.002, modified=8.487, diff=8.486
  - win_rate: baseline=0.465, modified=0.516, diff=0.051
  - max_drawdown: baseline=0.162, modified=0.084, diff=-0.078
  - test_accuracy: baseline=0.966, modified=0.981, diff=0.015

### Iteration 3
- DSL: `(abs(o_div_binary_12) * k_volume.rolling.mean(20)) * (1 - hl_range) / (1 + atr_norm)` (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: `k_high.pct_change(12) * (1 + hl_range) / (1 + atr_norm) * (1 - price_position) * (1 - return_5)` (feature=k_iter4_k_high_pct_change_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: quality_gate: canonical duplicate: k_high.pct_change * (1 + hl_range) / (1 + atr_norm) * (1 - price_position) * (1 - return_5)

### Iteration 5
- DSL: `i_macd(k_close, 12, 26, 9) - i_macd(k_close, 6, 13, 4)` (feature=k_iter5_i_macd_k_close)
- 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) - i_macd(k_close)

### Iteration 6
- DSL: `o_div_amplitude_12 * i_rsi(k_close, 14) / (i_atr(k_high, k_low, k_close, 14) + 1e-10)` (feature=k_iter6_i_rsi_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: NaN ratio 1.000 exceeds 0.3

### Iteration 7
- DSL: `obv_ensemble_3 * (1 - hl_range) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_iter7_hl_range_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: quality_gate: canonical duplicate: obv_ensemble_3 * (1 - hl_range) / (1 + i_atr(k_high,k_low,k_close) / k_close)

### Iteration 8
- DSL: `k_momentum_pct_change - o_div_amplitude_12 / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_loop_iter_8_a4f62e)
- DSL valid: True
- FeatureSet candidate id: 1405
- baseline PF: 1.000 → modified PF: 1.528
- t_stat: 0.000, p_value: 0.006, cohens_d: 0.402
- scalar_score: 0.4087
- accepted: False, reason: max_drawdown_delta -0.0748 < -0.02

**Metrics summary:**
  - profit_factor: baseline=1.000, modified=1.528, diff=0.527
  - sharpe_ratio: baseline=0.002, modified=9.850, diff=9.848
  - win_rate: baseline=0.465, modified=0.579, diff=0.115
  - max_drawdown: baseline=0.162, modified=0.087, diff=-0.075
  - test_accuracy: baseline=0.966, modified=0.963, diff=-0.003

### Iteration 9
- DSL: `(k_high.pct_change * (1 - price_position) - o_div_amplitude_12) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_iter9_k_high_pct_change_price_position_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: safe_eval DSL triggered unexpected TypeError: unsupported operand type(s) for *: 'method' and 'float'

### Iteration 10
- DSL: `k_momentum_pct_change * (1 + hl_range) - o_div_amplitude_12` (feature=k_loop_iter_10_a97265)
- DSL valid: True
- FeatureSet candidate id: 1406
- baseline PF: 1.000 → modified PF: 1.528
- t_stat: 0.000, p_value: 0.221, cohens_d: 0.638
- scalar_score: 1.7117
- accepted: False, reason: max_drawdown_delta -0.0748 < -0.02

**Metrics summary:**
  - profit_factor: baseline=1.000, modified=1.528, diff=0.527
  - sharpe_ratio: baseline=0.002, modified=9.850, diff=9.848
  - win_rate: baseline=0.465, modified=0.579, diff=0.115
  - max_drawdown: baseline=0.162, modified=0.087, diff=-0.075
  - test_accuracy: baseline=0.966, modified=0.963, diff=-0.003

### Iteration 11
- DSL: `k_momentum_pct_change * (1 - hl_range) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close) - o_div_amplitude_12 * price_position` (feature=k_loop_iter_11_193441)
- DSL valid: True
- FeatureSet candidate id: 1407
- baseline PF: 1.000 → modified PF: 0.959
- t_stat: 0.000, p_value: 0.172, cohens_d: 0.345
- scalar_score: -0.1191
- accepted: False, reason: scalar_score -0.1191 <= 0.0, sharpe_delta -1.1215 < -0.3, hypothesis test not confirmed, constraints: ['sharpe_ratio >= 1.0: got -1.1197']

**Metrics summary:**
  - profit_factor: baseline=1.000, modified=0.959, diff=-0.041
  - sharpe_ratio: baseline=0.002, modified=-1.120, diff=-1.121
  - win_rate: baseline=0.465, modified=0.463, diff=-0.001
  - max_drawdown: baseline=0.162, modified=0.239, diff=0.077
  - test_accuracy: baseline=0.966, modified=0.804, diff=-0.162

### Iteration 12
- DSL: `o_div_amplitude_12 / (1 + i_atr(k_high, k_low, k_close, 14) / k_close) * (1 - return_5)` (feature=k_loop_iter_12_765a0e)
- DSL valid: True
- FeatureSet candidate id: 1408
- baseline PF: 1.000 → modified PF: 1.000
- t_stat: 0.000, p_value: 0.052, cohens_d: 0.159
- scalar_score: 0.0000
- accepted: False, reason: scalar_score 0.0000 <= 0.0, hypothesis test not confirmed, constraints: ['sharpe_ratio >= 1.0: got 0.0017']

**Metrics summary:**
  - profit_factor: baseline=1.000, modified=1.000, diff=0.000
  - sharpe_ratio: baseline=0.002, modified=0.002, diff=0.000
  - win_rate: baseline=0.465, modified=0.465, diff=0.000
  - max_drawdown: baseline=0.162, modified=0.162, diff=0.000
  - test_accuracy: baseline=0.966, modified=0.966, diff=0.000

### Iteration 13
- DSL: `i_macd(k_close, 12, 26, 9) - i_macd(k_close, 6, 13, 4)` (feature=k_iter13_i_macd_k_close)
- 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) - i_macd(k_close)

### Iteration 14
- DSL: `i_rsi(k_close, 14) * (1 - hl_range) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close) - o_div_amplitude_12` (feature=k_iter14_i_rsi_k_close_hl_range_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)` (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_4f77b0

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 2.7186

MetricBaselineModifiedDiff
win_rate 0.465 0.620 0.155
max_drawdown 0.162 0.121 -0.041
sharpe_ratio 0.002 11.579 11.577
profit_factor 1.000 1.590 0.589
test_accuracy 0.966 0.983 0.017

Iteration 2: k_loop_iter_2_139273

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 0.8884

MetricBaselineModifiedDiff
win_rate 0.465 0.516 0.051
max_drawdown 0.162 0.084 -0.078
sharpe_ratio 0.002 8.487 8.486
profit_factor 1.000 1.379 0.378
test_accuracy 0.966 0.981 0.015

Iteration 3: k_iter3_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 4: k_iter4_k_high_pct_change_hl_range_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 5: k_iter5_i_macd_k_close

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 6: k_iter6_i_rsi_k_close_i_atr_k_high

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 7: k_iter7_hl_range_i_atr_k_high_k_low

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 8: k_loop_iter_8_a4f62e

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 0.4087

MetricBaselineModifiedDiff
win_rate 0.465 0.579 0.115
max_drawdown 0.162 0.087 -0.075
sharpe_ratio 0.002 9.850 9.848
profit_factor 1.000 1.528 0.527
test_accuracy 0.966 0.963 -0.003

Iteration 9: k_iter9_k_high_pct_change_price_position_i_atr

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 10: k_loop_iter_10_a97265

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 1.7117

MetricBaselineModifiedDiff
win_rate 0.465 0.579 0.115
max_drawdown 0.162 0.087 -0.075
sharpe_ratio 0.002 9.850 9.848
profit_factor 1.000 1.528 0.527
test_accuracy 0.966 0.963 -0.003

Iteration 11: k_loop_iter_11_193441

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -0.1191

Failed constraints: sharpe_ratio >= 1.0: got -1.1197

MetricBaselineModifiedDiff
win_rate 0.465 0.463 -0.001
max_drawdown 0.162 0.239 0.077
sharpe_ratio 0.002 -1.120 -1.121
profit_factor 1.000 0.959 -0.041
test_accuracy 0.966 0.804 -0.162

Iteration 12: k_loop_iter_12_765a0e

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: 0.0000

Failed constraints: sharpe_ratio >= 1.0: got 0.0017

MetricBaselineModifiedDiff
win_rate 0.465 0.465 0.000
max_drawdown 0.162 0.162 0.000
sharpe_ratio 0.002 0.002 0.000
profit_factor 1.000 1.000 0.000
test_accuracy 0.966 0.966 0.000

Iteration 13: k_iter13_i_macd_k_close

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 14: k_iter14_i_rsi_k_close_hl_range_i_atr

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 15: k_iter15_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

📁 Offline Report

Markdown backup: reports/autoloop/zz_sylvain/20260727_022921.md