跳到主要內容

Feature Iteration Run #1010: zz_sylvain

Status: completed | Started: 2026-07-26 11:41:27 | Ended: 2026-07-26 11:47:33

⭐ Best Accepted Iteration

Iteration 9: k_high.pct_change(12) * (1 - price_position) * (1 + hl_rang…

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_k_momentum_pct_chang_price_position_atr_norm (k_momentum_pct_change - o_div_amplitud… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: (k_momentum_pct_change - o_div_amplitude_12) * (1 - price_position) / (1 + atr_norm)
2 C8 gradient_boosting — — #7 k_iter2_k_high_pct_change_price_position_atr_norm 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_iter3_k_high_pct_change_12_price_position_atr_norm k_high_pct_change_12 * (1 - price_posit… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: 變數未定義: k_high_pct_change_12
4 C8 gradient_boosting — — #7 k_iter4_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: C8 leakage: ['dist_to_low']
5 C8 gradient_boosting — — #7 k_iter5_k_momentum_pct_chang_price_position_i_atr_k_high (k_momentum_pct_change - o_div_amplitud… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: DSL hallucinated function call: Call(func=Name(id='o_div_amplitude', ctx=Load()), args=[Constant(value=12)], keywords=[]) — 'Series' object is not callable
6 C8 gradient_boosting — — #7 k_iter6_k_momentum_pct_chang_price_position_i_rsi_k_close k_momentum_pct_change * (1 - price_posi… ❌ 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 — — #7 k_loop_iter_7_ef5c80 k_momentum_pct_change * (1 - price_posi… ✅ 1.947 1.138 -0.4196 0.000 0.512 0.261 ❌ REJECT scalar_score -0.4196 <= 0.0, sharpe_delta -14.6732 < -0.3, hypothesis test not confirmed
8 C8 gradient_boosting — — #7 k_iter8_pct_change_price_position_return_5_atr_norm obv_rebased.pct_change(12) * (1 - price… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL produced inf values; likely division by zero
9 C8 gradient_boosting — — #7 k_loop_iter_9_156336 k_high.pct_change(12) * (1 - price_posi… ✅ 1.947 2.466 1.4881 0.000 0.012 0.388 ✅ ACCEPT accepted
10 C8 gradient_boosting — — #1327 k_iter10_k_high_pct_change_price_position_hl_range k_high.pct_change(12) * (1 - price_posi… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: NaN ratio 1.000 exceeds 0.3
11 C8 gradient_boosting — — #1327 k_loop_iter_11_198654 o_pct_change_12 * (1 - price_position) … ✅ 2.466 1.110 -4.5400 0.000 0.142 0.676 ❌ REJECT scalar_score -4.5400 <= 0.0, sharpe_delta -21.7399 < -0.3, hypothesis test not confirmed
12 C8 gradient_boosting — — #1327 k_iter12_k_high_pct_change_price_position_hl_range k_high.pct_change(12) * (1 - price_posi… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: NaN ratio 1.000 exceeds 0.3
13 C8 gradient_boosting — — #1327 k_loop_iter_13_7a3248 k_high.pct_change(12) * (1 - price_posi… ✅ 2.466 1.512 -3.7887 0.000 0.001 0.646 ❌ REJECT scalar_score -3.7887 <= 0.0, sharpe_delta -13.0368 < -0.3, hypothesis test not confirmed
14 C8 gradient_boosting — — #1327 k_loop_iter_14_976ee7 k_high.pct_change(12) * (1 - price_posi… ✅ 2.466 1.108 -6.2495 0.000 0.012 0.754 ❌ REJECT scalar_score -6.2495 <= 0.0, sharpe_delta -21.8677 < -0.3, hypothesis test not confirmed
15 C8 gradient_boosting — — #1327 k_iter15_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'

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

## Iterations 詳情

### Iteration 1
- DSL: `(k_momentum_pct_change - o_div_amplitude_12) * (1 - price_position) / (1 + atr_norm)` (feature=k_iter1_k_momentum_pct_chang_price_position_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_momentum_pct_change - o_div_amplitude_12) * (1 - price_position) / (1 + atr_norm)

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

### Iteration 3
- DSL: `k_high_pct_change_12 * (1 - price_position) * obv_ensemble_3 / (1 + atr_norm)` (feature=k_iter3_k_high_pct_change_12_price_position_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_high_pct_change_12

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

### Iteration 5
- DSL: `(k_momentum_pct_change - o_div_amplitude(12)) * (1 - price_position) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_iter5_k_momentum_pct_chang_price_position_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: DSL hallucinated function call: Call(func=Name(id='o_div_amplitude', ctx=Load()), args=[Constant(value=12)], keywords=[]) — 'Series' object is not callable

### Iteration 6
- DSL: `k_momentum_pct_change * (1 - price_position) * (i_rsi(k_close, 14) - 50) / 100 / (1 + atr_norm)` (feature=k_iter6_k_momentum_pct_chang_price_position_i_rsi_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: NaN ratio 1.000 exceeds 0.3

### Iteration 7
- DSL: `k_momentum_pct_change * (1 - price_position) * vol_ratio / (1 + i_atr(k_high, k_low, k_close, 14) / k_close)` (feature=k_loop_iter_7_ef5c80)
- DSL valid: True
- FeatureSet candidate id: 1326
- baseline PF: 1.947 → modified PF: 1.138
- t_stat: 0.000, p_value: 0.512, cohens_d: 0.261
- scalar_score: -0.4196
- accepted: False, reason: scalar_score -0.4196 <= 0.0, sharpe_delta -14.6732 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=1.138, diff=-0.810
  - sharpe_ratio: baseline=19.162, modified=4.489, diff=-14.673
  - win_rate: baseline=0.600, modified=0.466, diff=-0.134
  - max_drawdown: baseline=0.056, modified=0.166, diff=0.110
  - test_accuracy: baseline=0.992, modified=0.981, diff=-0.012

### Iteration 8
- DSL: `obv_rebased.pct_change(12) * (1 - price_position) * (1 - return_5) / (1 + atr_norm * 10)` (feature=k_iter8_pct_change_price_position_return_5_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 9
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 + hl_range) / (1 + atr_norm)` (feature=k_loop_iter_9_156336)
- DSL valid: True
- FeatureSet candidate id: 1327
- 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 10
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 + hl_range) * (i_rsi(k_close, 14) - 50) / (50 * (1 + atr_norm))` (feature=k_iter10_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: NaN ratio 1.000 exceeds 0.3

### Iteration 11
- DSL: `o_pct_change_12 * (1 - price_position) * (1 + hl_range) / (1 + atr_norm)` (feature=k_loop_iter_11_198654)
- DSL valid: True
- FeatureSet candidate id: 1328
- 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: scalar_score -4.5400 <= 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 12
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 + hl_range) / (1 + i_atr(k_high, k_low, k_close, 14) / k_close) * (1 + i_rsi(k_close, 14) / 100)` (feature=k_iter12_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: NaN ratio 1.000 exceeds 0.3

### Iteration 13
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 + hl_range) / (1 + atr_norm) * (1 - return_20)` (feature=k_loop_iter_13_7a3248)
- DSL valid: True
- FeatureSet candidate id: 1329
- 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 + hl_range) / (1 + atr_norm) * (1 + i_ema(k_close, 20) / k_close - 1)` (feature=k_loop_iter_14_976ee7)
- DSL valid: True
- FeatureSet candidate id: 1330
- baseline PF: 2.466 → modified PF: 1.108
- t_stat: 0.000, p_value: 0.012, cohens_d: 0.754
- scalar_score: -6.2495
- accepted: False, reason: scalar_score -6.2495 <= 0.0, sharpe_delta -21.8677 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.108, diff=-1.358
  - sharpe_ratio: baseline=24.727, modified=2.860, diff=-21.868
  - win_rate: baseline=0.636, modified=0.543, diff=-0.093
  - max_drawdown: baseline=0.050, modified=0.139, diff=0.089
  - test_accuracy: baseline=0.992, modified=0.986, diff=-0.006

### Iteration 15
- DSL: `obv_rebased.pct_change * (1 - price_position) * (1 + hl_range) / (1 + atr_norm)` (feature=k_iter15_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'

📊 Multi-Objective Metrics

Iteration 1: k_iter1_k_momentum_pct_chang_price_position_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 2: k_iter2_k_high_pct_change_price_position_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 3: k_iter3_k_high_pct_change_12_price_position_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 4: k_iter4_k_high_pct_change_hl_range_price_position

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 5: k_iter5_k_momentum_pct_chang_price_position_i_atr_k_high

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 6: k_iter6_k_momentum_pct_chang_price_position_i_rsi_k_close

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 7: k_loop_iter_7_ef5c80

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -0.4196

MetricBaselineModifiedDiff
win_rate 0.600 0.466 -0.134
max_drawdown 0.056 0.166 0.110
sharpe_ratio 19.162 4.489 -14.673
profit_factor 1.947 1.138 -0.810
test_accuracy 0.992 0.981 -0.012

Iteration 8: k_iter8_pct_change_price_position_return_5_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 9: k_loop_iter_9_156336

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 10: k_iter10_k_high_pct_change_price_position_hl_range

Y Label: C8 | Parent FS: #1327

Objective mode: single

Scalar score: 0.0000

Iteration 11: k_loop_iter_11_198654

Y Label: C8 | Parent FS: #1327

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 12: k_iter12_k_high_pct_change_price_position_hl_range

Y Label: C8 | Parent FS: #1327

Objective mode: single

Scalar score: 0.0000

Iteration 13: k_loop_iter_13_7a3248

Y Label: C8 | Parent FS: #1327

Objective mode: scalarize

Scalar score: -3.7887

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

Y Label: C8 | Parent FS: #1327

Objective mode: scalarize

Scalar score: -6.2495

MetricBaselineModifiedDiff
win_rate 0.636 0.543 -0.093
max_drawdown 0.050 0.139 0.089
sharpe_ratio 24.727 2.860 -21.868
profit_factor 2.466 1.108 -1.358
test_accuracy 0.992 0.986 -0.006

Iteration 15: k_iter15_pct_change_price_position_hl_range_atr_norm

Y Label: C8 | Parent FS: #1327

Objective mode: single

Scalar score: 0.0000

📁 Offline Report

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