跳到主要內容

Feature Iteration Run #999: zz_sylvain

Status: completed | Started: 2026-07-26 09:07:36 | Ended: 2026-07-26 09:13:16

📊 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 k_momentum_pct_change - o_div_amplitude… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: constant feature (variance < 1e-12)
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']
3 C8 gradient_boosting — — #7 k_loop_iter_3_e8bc4b o_div_amplitude_12 * (1 - price_positio… ✅ 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
4 C8 gradient_boosting — — #7 k_iter4_k_high_pct_change_price_position_dist_to_high 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']
5 C8 gradient_boosting — — #7 k_iter5_k_momentum_pct_chang_i_macd_k_close_atr_norm k_momentum_pct_change * i_macd(k_close,… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: k_momentum_pct_change * i_macd(k_close) / (1 + atr_norm * 10)
6 C8 gradient_boosting — — #7 k_iter6_k_momentum_pct_chang_atr_norm_price_position k_momentum_pct_change * o_pct_change_12… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: k_momentum_pct_change * o_pct_change_12 / (1 + atr_norm * 10) * (1 - price_position)
7 C8 gradient_boosting — — #7 k_loop_iter_7_bfe435 i_ema(k_close, 5) / i_ema(k_close, 20) … ✅ 1.947 1.757 -0.1123 0.000 0.107 0.318 ❌ REJECT normalized_score -0.0381 <= 0.0, sharpe_delta -1.5651 < -0.3, hypothesis test not confirmed
8 C8 gradient_boosting — — #7 k_iter8_pct_change_k_body_size_pct_price_position_atr_norm obv_rebased.pct_change(12) * (1 + k_bod… ❌ 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_iter9_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
10 C8 gradient_boosting — — #7 k_iter10_pct_change_price_position_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
11 C8 gradient_boosting — — #7 k_loop_iter_11_d5995c obv_ensemble_3 * (1 - hl_range) * (1 - … ✅ 1.947 1.138 -0.4196 0.000 0.512 0.261 ❌ REJECT normalized_score -0.2435 <= 0.0, sharpe_delta -14.6732 < -0.3, hypothesis test not confirmed
12 C8 gradient_boosting — — #7 k_loop_iter_12_2f3e45 k_momentum_pct_change * (1 - return_5) … ✅ 1.947 0.775 -3.6248 0.000 0.278 0.577 ❌ REJECT normalized_score -0.4195 <= 0.0, sharpe_delta -26.7167 < -0.3, hypothesis test not confirmed, constraints: ['sharpe_ratio >= 1.0: got -7.5544']
13 C8 gradient_boosting — — #7 k_iter13_i_macd_k_close_k_high_pct_change i_macd(k_close, 12, 26, 9) * k_high.pct… ❌ 0.000 0.000 0.0000 0.000 1.000 0.000 ❌ REJECT quality_gate: canonical duplicate: i_macd(k_close) * k_high.pct_change / (1 + atr_norm) * (1 - price_position)
14 C8 gradient_boosting — — #7 k_loop_iter_14_2a82a0 o_pct_change_12 * k_momentum_pct_change… ✅ 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
15 C8 gradient_boosting — — #7 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**: 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**: 339.69s
> **Total accepted**: 0
> **Total rejected**: 15

## Iterations 詳情

### Iteration 1
- DSL: `k_momentum_pct_change - o_div_amplitude_12` (feature=k_iter1_k_momentum_pct_chang)
- 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: constant feature (variance < 1e-12)

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

### Iteration 3
- DSL: `o_div_amplitude_12 * (1 - price_position) / (1 + atr_norm)` (feature=k_loop_iter_3_e8bc4b)
- DSL valid: True
- FeatureSet candidate id: 1283
- 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 4
- DSL: `k_high.pct_change(12) * (1 - price_position) * (1 - dist_to_high) * k_volume / (k_volume.rolling(20).mean() + 1e-10)` (feature=k_iter4_k_high_pct_change_price_position_dist_to_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: C8 leakage: ['dist_to_high']

### Iteration 5
- DSL: `k_momentum_pct_change * i_macd(k_close, 12, 26, 9) / (1 + atr_norm * 10)` (feature=k_iter5_k_momentum_pct_chang_i_macd_k_close_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 * i_macd(k_close) / (1 + atr_norm * 10)

### Iteration 6
- DSL: `k_momentum_pct_change * o_pct_change_12 / (1 + atr_norm * 10) * (1 - price_position)` (feature=k_iter6_k_momentum_pct_chang_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: canonical duplicate: k_momentum_pct_change * o_pct_change_12 / (1 + atr_norm * 10) * (1 - price_position)

### Iteration 7
- DSL: `i_ema(k_close, 5) / i_ema(k_close, 20) - 1 / (1 + atr_norm) * (1 - price_position)` (feature=k_loop_iter_7_bfe435)
- DSL valid: True
- FeatureSet candidate id: 1284
- baseline PF: 1.947 → modified PF: 1.757
- t_stat: 0.000, p_value: 0.107, cohens_d: 0.318
- scalar_score: -0.1123
- accepted: False, reason: normalized_score -0.0381 <= 0.0, sharpe_delta -1.5651 < -0.3, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=1.757, diff=-0.191
  - sharpe_ratio: baseline=19.162, modified=17.597, diff=-1.565
  - win_rate: baseline=0.600, modified=0.600, diff=0.000
  - max_drawdown: baseline=0.056, modified=0.046, diff=-0.010
  - test_accuracy: baseline=0.992, modified=0.992, diff=-0.000

### Iteration 8
- DSL: `obv_rebased.pct_change(12) * (1 + k_body_size_pct) * (1 - price_position) / (1 + atr_norm)` (feature=k_iter8_pct_change_k_body_size_pct_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 produced inf values; likely division by zero

### Iteration 9
- DSL: `abs(o_div_binary(48)) * k_volume.rolling.mean() * k_high.pct_change(12) / (k_volume.rolling.mean() + 1e-10)` (feature=k_iter9_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 10
- DSL: `obv_rebased.pct_change(12) * (1 - price_position) / (1 + atr_norm * 10)` (feature=k_iter10_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: safe_eval DSL produced inf values; likely division by zero

### Iteration 11
- DSL: `obv_ensemble_3 * (1 - hl_range) * (1 - price_position) * k_high.pct_change(12)` (feature=k_loop_iter_11_d5995c)
- DSL valid: True
- FeatureSet candidate id: 1285
- 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: normalized_score -0.2435 <= 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 12
- DSL: `k_momentum_pct_change * (1 - return_5) * (1 - price_position) * (1 + hl_range)` (feature=k_loop_iter_12_2f3e45)
- DSL valid: True
- FeatureSet candidate id: 1286
- baseline PF: 1.947 → modified PF: 0.775
- t_stat: 0.000, p_value: 0.278, cohens_d: 0.577
- scalar_score: -3.6248
- accepted: False, reason: normalized_score -0.4195 <= 0.0, sharpe_delta -26.7167 < -0.3, hypothesis test not confirmed, constraints: ['sharpe_ratio >= 1.0: got -7.5544']

**Metrics summary:**
  - profit_factor: baseline=1.947, modified=0.775, diff=-1.172
  - sharpe_ratio: baseline=19.162, modified=-7.554, diff=-26.717
  - win_rate: baseline=0.600, modified=0.424, diff=-0.176
  - max_drawdown: baseline=0.056, modified=0.131, diff=0.075
  - test_accuracy: baseline=0.992, modified=0.992, diff=-0.001

### Iteration 13
- DSL: `i_macd(k_close, 12, 26, 9) * k_high.pct_change(12) / (1 + atr_norm) * (1 - price_position)` (feature=k_iter13_i_macd_k_close_k_high_pct_change)
- 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) * k_high.pct_change / (1 + atr_norm) * (1 - price_position)

### Iteration 14
- DSL: `o_pct_change_12 * k_momentum_pct_change / (1 + atr_norm * 10) * (1 - hl_range)` (feature=k_loop_iter_14_2a82a0)
- DSL valid: True
- FeatureSet candidate id: 1287
- 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 15
- DSL: `abs(o_div_binary(48)) * k_volume.rolling.mean() / (1 + atr_norm) * (1 - price_position)` (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_k_momentum_pct_chang

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_loop_iter_3_e8bc4b

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 4: k_iter4_k_high_pct_change_price_position_dist_to_high

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 5: k_iter5_k_momentum_pct_chang_i_macd_k_close_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 6: k_iter6_k_momentum_pct_chang_atr_norm_price_position

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 7: k_loop_iter_7_bfe435

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -0.1123

MetricBaselineModifiedDiff
win_rate 0.600 0.600 0.000
max_drawdown 0.056 0.046 -0.010
sharpe_ratio 19.162 17.597 -1.565
profit_factor 1.947 1.757 -0.191
test_accuracy 0.992 0.992 0.000

Iteration 8: k_iter8_pct_change_k_body_size_pct_price_position_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 9: k_iter9_abs_k_volume_rolling_mean

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 10: k_iter10_pct_change_price_position_atr_norm

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 11: k_loop_iter_11_d5995c

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

Y Label: C8 | Parent FS: #7

Objective mode: scalarize

Scalar score: -3.6248

Failed constraints: sharpe_ratio >= 1.0: got -7.5544

MetricBaselineModifiedDiff
win_rate 0.600 0.424 -0.176
max_drawdown 0.056 0.131 0.075
sharpe_ratio 19.162 -7.554 -26.717
profit_factor 1.947 0.775 -1.172
test_accuracy 0.992 0.992 -0.001

Iteration 13: k_iter13_i_macd_k_close_k_high_pct_change

Y Label: C8 | Parent FS: #7

Objective mode: single

Scalar score: 0.0000

Iteration 14: k_loop_iter_14_2a82a0

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 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/20260726_171316.md