跳到主要內容

Feature Iteration Run #1003: zz_sylvain

Status: completed | Started: 2026-07-26 10:45:57 | Ended: 2026-07-26 10:54:44

⭐ Best Accepted Iteration

Iteration 2: k_high.pct_change(12) * (1 + hl_range) * (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_b62b11 obv_ensemble_3 * (1 - hl_range) / (1 + … ✅ 1.947 1.085 -0.4789 0.000 0.463 0.243 ❌ REJECT normalized_score -0.2581 <= 0.0, sharpe_delta -16.8215 < -0.3, hypothesis test not confirmed
2 C8 gradient_boosting — — #7 k_loop_iter_2_885894 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 — — #1311 k_iter3_i_mtm_k_close_k_volume_rolling i_mtm(k_close, 12) * k_volume.rolling.m… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL: DSL hallucinated attribute: Attribute(value=Attribute(value=Name(id='k_volume', ctx=Load()), attr='rolling', ctx=Load()), attr='mean', ctx=Load()) — 'function' object has no attribute 'mean'
4 C8 gradient_boosting — — #1311 k_loop_iter_4_a56443 i_boll(k_close, 20) * (1 + hl_range) ✅ 2.466 1.492 -3.9796 0.000 0.000 0.503 ❌ REJECT normalized_score -0.2024 <= 0.0, sharpe_delta -13.7025 < -0.3, hypothesis test not confirmed
5 C8 gradient_boosting — — #1311 k_iter5_hl_range_atr_norm obv_rebased * (1 + hl_range) / (1 + atr… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: obv_rebased * (1 + hl_range) / (1 + atr_norm)
6 C8 gradient_boosting — — #1311 k_iter6_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'
7 C8 gradient_boosting — — #1311 k_loop_iter_7_1f135e k_momentum_pct_change * (1 + hl_range) … ✅ 2.466 1.204 -5.6753 0.000 0.012 0.799 ❌ REJECT normalized_score -0.2820 <= 0.0, sharpe_delta -19.8530 < -0.3, hypothesis test not confirmed
8 C8 gradient_boosting — — #1311 k_iter8_i_atr_k_high_k_low_k_close i_atr(k_high, k_low, k_close, 14) / k_c… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT safe_eval DSL produces inf when ['k_close'] is zero; avoid unprotected division by these variables
9 C8 gradient_boosting — — #1311 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 — — #1311 k_iter10_i_rsi_k_close_hl_range 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
11 C8 gradient_boosting — — #1311 k_loop_iter_11_1840f9 obv_raw * (1 + hl_range) ✅ 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
12 C8 gradient_boosting — — #1311 k_iter12_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
13 C8 gradient_boosting — — #1311 k_loop_iter_13_23948c i_atr(k_high, k_low, k_close, 14) * (1 … ✅ 2.466 1.192 -5.7129 0.000 0.008 0.725 ❌ REJECT normalized_score -0.2814 <= 0.0, sharpe_delta -19.9750 < -0.3, hypothesis test not confirmed
14 C8 gradient_boosting — — #1311 k_loop_iter_14_2c6339 i_ema(k_close, 20) / i_atr(k_high, k_lo… ✅ 2.466 1.098 -6.3305 0.000 0.006 0.787 ❌ REJECT normalized_score -0.3099 <= 0.0, sharpe_delta -22.1741 < -0.3, hypothesis test not confirmed
15 C8 gradient_boosting — — #1311 k_iter15_pct_change_atr_norm obv_rebased.pct_change * 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'

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

## Iterations 詳情

### Iteration 1
- DSL: `obv_ensemble_3 * (1 - hl_range) / (1 + atr_norm)` (feature=k_loop_iter_1_b62b11)
- DSL valid: True
- FeatureSet candidate id: 1310
- baseline PF: 1.947 → modified PF: 1.085
- t_stat: 0.000, p_value: 0.463, cohens_d: 0.243
- scalar_score: -0.4789
- accepted: False, reason: normalized_score -0.2581 <= 0.0, sharpe_delta -16.8215 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=1.085, diff=-0.862
  - sharpe_ratio: baseline=19.162, modified=2.341, diff=-16.821
  - win_rate: baseline=0.600, modified=0.500, diff=-0.100
  - max_drawdown: baseline=0.056, modified=0.187, diff=0.131
  - test_accuracy: baseline=0.992, modified=0.992, diff=-0.000

### Iteration 2
- DSL: `k_high.pct_change(12) * (1 + hl_range) * (1 - price_position)` (feature=k_loop_iter_2_885894)
- DSL valid: True
- FeatureSet candidate id: 1311
- 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: `i_mtm(k_close, 12) * k_volume.rolling.mean()` (feature=k_iter3_i_mtm_k_close_k_volume_rolling)
- 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 attribute: Attribute(value=Attribute(value=Name(id='k_volume', ctx=Load()), attr='rolling', ctx=Load()), attr='mean', ctx=Load()) — 'function' object has no attribute 'mean'

### Iteration 4
- DSL: `i_boll(k_close, 20) * (1 + hl_range)` (feature=k_loop_iter_4_a56443)
- DSL valid: True
- FeatureSet candidate id: 1312
- baseline PF: 2.466 → modified PF: 1.492
- t_stat: 0.000, p_value: 0.000, cohens_d: 0.503
- scalar_score: -3.9796
- accepted: False, reason: normalized_score -0.2024 <= 0.0, sharpe_delta -13.7025 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.492, diff=-0.974
  - sharpe_ratio: baseline=24.727, modified=11.025, diff=-13.703
  - win_rate: baseline=0.636, modified=0.514, diff=-0.123
  - max_drawdown: baseline=0.050, modified=0.110, diff=0.060
  - test_accuracy: baseline=0.992, modified=0.992, diff=-0.000

### Iteration 5
- DSL: `obv_rebased * (1 + hl_range) / (1 + atr_norm)` (feature=k_iter5_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: obv_rebased * (1 + hl_range) / (1 + atr_norm)

### Iteration 6
- DSL: `obv_rebased.pct_change / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_iter6_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 7
- DSL: `k_momentum_pct_change * (1 + hl_range) / (1 + i_atr(k_high, k_low, k_close, 14))` (feature=k_loop_iter_7_1f135e)
- DSL valid: True
- FeatureSet candidate id: 1313
- baseline PF: 2.466 → modified PF: 1.204
- t_stat: 0.000, p_value: 0.012, cohens_d: 0.799
- scalar_score: -5.6753
- accepted: False, reason: normalized_score -0.2820 <= 0.0, sharpe_delta -19.8530 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.204, diff=-1.262
  - sharpe_ratio: baseline=24.727, modified=4.874, diff=-19.853
  - win_rate: baseline=0.636, modified=0.519, diff=-0.118
  - max_drawdown: baseline=0.050, modified=0.079, diff=0.029
  - test_accuracy: baseline=0.992, modified=0.986, diff=-0.006

### Iteration 8
- DSL: `i_atr(k_high, k_low, k_close, 14) / k_close` (feature=k_iter8_i_atr_k_high_k_low_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: safe_eval DSL produces inf when ['k_close'] is zero; avoid unprotected division by these variables

### 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_rsi(k_close, 14) * (1 + hl_range)` (feature=k_iter10_i_rsi_k_close_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: `obv_raw * (1 + hl_range)` (feature=k_loop_iter_11_1840f9)
- DSL valid: True
- FeatureSet candidate id: 1314
- 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 12
- DSL: `(abs(o_div_binary(12)) * k_volume.rolling.mean) / (1 + i_atr(k_high, k_low, k_close, 14))` (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: `i_atr(k_high, k_low, k_close, 14) * (1 - price_position)` (feature=k_loop_iter_13_23948c)
- DSL valid: True
- FeatureSet candidate id: 1315
- baseline PF: 2.466 → modified PF: 1.192
- t_stat: 0.000, p_value: 0.008, cohens_d: 0.725
- scalar_score: -5.7129
- accepted: False, reason: normalized_score -0.2814 <= 0.0, sharpe_delta -19.9750 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.192, diff=-1.274
  - sharpe_ratio: baseline=24.727, modified=4.752, diff=-19.975
  - win_rate: baseline=0.636, modified=0.509, diff=-0.127
  - max_drawdown: baseline=0.050, modified=0.100, diff=0.050
  - test_accuracy: baseline=0.992, modified=0.986, diff=-0.006

### Iteration 14
- DSL: `i_ema(k_close, 20) / i_atr(k_high, k_low, k_close, 14)` (feature=k_loop_iter_14_2c6339)
- DSL valid: True
- FeatureSet candidate id: 1316
- baseline PF: 2.466 → modified PF: 1.098
- t_stat: 0.000, p_value: 0.006, cohens_d: 0.787
- scalar_score: -6.3305
- accepted: False, reason: normalized_score -0.3099 <= 0.0, sharpe_delta -22.1741 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.466, modified=1.098, diff=-1.368
  - sharpe_ratio: baseline=24.727, modified=2.553, diff=-22.174
  - win_rate: baseline=0.636, modified=0.495, diff=-0.141
  - max_drawdown: baseline=0.050, modified=0.100, diff=0.050
  - test_accuracy: baseline=0.992, modified=0.985, diff=-0.007

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

📊 Multi-Objective Metrics

Iteration 1: k_loop_iter_1_b62b11

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -0.4789

MetricBaselineModifiedDiff
win_rate 0.600 0.500 -0.100
max_drawdown 0.056 0.187 0.131
sharpe_ratio 19.162 2.341 -16.821
profit_factor 1.947 1.085 -0.862
test_accuracy 0.992 0.992 0.000

Iteration 2: k_loop_iter_2_885894

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_i_mtm_k_close_k_volume_rolling

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 4: k_loop_iter_4_a56443

Y Label: C8 | Parent FS: #1311

Objective mode: scalarize

Scalar score: -3.9796

MetricBaselineModifiedDiff
win_rate 0.636 0.514 -0.123
max_drawdown 0.050 0.110 0.060
sharpe_ratio 24.727 11.025 -13.703
profit_factor 2.466 1.492 -0.974
test_accuracy 0.992 0.992 0.000

Iteration 5: k_iter5_hl_range_atr_norm

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 6: k_iter6_pct_change_i_atr_k_high_k_low

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 7: k_loop_iter_7_1f135e

Y Label: C8 | Parent FS: #1311

Objective mode: scalarize

Scalar score: -5.6753

MetricBaselineModifiedDiff
win_rate 0.636 0.519 -0.118
max_drawdown 0.050 0.079 0.029
sharpe_ratio 24.727 4.874 -19.853
profit_factor 2.466 1.204 -1.262
test_accuracy 0.992 0.986 -0.006

Iteration 8: k_iter8_i_atr_k_high_k_low_k_close

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 9: k_iter9_pct_change_i_atr_k_high_k_low

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 10: k_iter10_i_rsi_k_close_hl_range

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 11: k_loop_iter_11_1840f9

Y Label: C8 | Parent FS: #1311

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_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

Iteration 13: k_loop_iter_13_23948c

Y Label: C8 | Parent FS: #1311

Objective mode: scalarize

Scalar score: -5.7129

MetricBaselineModifiedDiff
win_rate 0.636 0.509 -0.127
max_drawdown 0.050 0.100 0.050
sharpe_ratio 24.727 4.752 -19.975
profit_factor 2.466 1.192 -1.274
test_accuracy 0.992 0.986 -0.006

Iteration 14: k_loop_iter_14_2c6339

Y Label: C8 | Parent FS: #1311

Objective mode: scalarize

Scalar score: -6.3305

MetricBaselineModifiedDiff
win_rate 0.636 0.495 -0.141
max_drawdown 0.050 0.100 0.050
sharpe_ratio 24.727 2.553 -22.174
profit_factor 2.466 1.098 -1.368
test_accuracy 0.992 0.985 -0.007

Iteration 15: k_iter15_pct_change_atr_norm

Y Label: C8 | Parent FS: #1311

Objective mode: single

Scalar score: 0.0000

📁 Offline Report

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