跳到主要內容

Feature Iteration Run #1876: zz_sylvain

Status: completed | Started: 2026-10-04 12:14:25 | Ended: 2026-10-04 14:11:33

📊 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 — — #1748 k_rsi_atr_macd_momentum rsi_val = ta.rsi(close, 14) macd_line =… ✅ 2.049 1.769 -0.1039 0.000 0.476 0.120 ❌ REJECT normalized_score -0.0659 <= 0.0, profit_factor_delta -0.2800 < 0.25, sharpe_delta -3.3876 (-16.31%) < -10%, champion trades 43 < 100 — PF statistically meaningless, hypothesis test not confirmed, DSR gate failed: champion SR=7.0143 ≤ expected_max=4.9782 (N=29 effective trials, PSR=0.9202)
2 C8 gradient_boosting — — #1748 k_ema_norm_range_pct fast_ema = ta.ema(close, 8) slow_ema = … ✅ 2.049 1.340 -3.6867 0.000 0.003 0.299 ❌ REJECT normalized_score -0.1885 <= 0.0, profit_factor_delta -0.7088 < 0.25, sharpe_delta -13.0903 (-63.02%) < -10%, hypothesis test not confirmed, DSR gate failed: champion SR=4.1806 ≤ expected_max=4.5678 (N=29 effective trials, PSR=0.4622)
3 C8 gradient_boosting — — #1748 k_vol_price_pos denom = high - low price_pos = denom !=… ✅ 2.049 1.649 -0.1920 0.000 1.000 0.000 ❌ REJECT normalized_score -0.1064 <= 0.0, profit_factor_delta -0.4003 < 0.25, sharpe_delta -6.6869 (-32.19%) < -10%, champion trades 61 < 100 — PF statistically meaningless, hypothesis test not confirmed

📄 Report Markdown

# AUTOLOOP: zz_sylvain (3 iterations)

> **Phase**: Y4.7 Option B (DSL → Python code → FeatureSet candidate)
> **Target indicator**: zz_sylvain
> **Base feature_set_id**: 1748
> **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**: 7027.84s
> **Total accepted**: 0
> **Total rejected**: 3

## Iterations 詳情

### Iteration 1
- DSL: `rsi_val = ta.rsi(close, 14)
macd_line = ta.ema(close, 12) - ta.ema(close, 26)
macd_norm = macd_line / (ta.atr(high, low, close, 14) + 1e-10)
result = (rsi_val - 50) / (1 + ta.atr(high, low, close, 5) / close) + macd_norm` (feature=k_rsi_atr_macd_momentum)
- DSL valid: True
- FeatureSet candidate id: 1843
- baseline PF: 2.049 → modified PF: 1.769
- t_stat: 0.000, p_value: 0.476, cohens_d: 0.120
- scalar_score: -0.1039
- accepted: False, reason: normalized_score -0.0659 <= 0.0, profit_factor_delta -0.2800 < 0.25, sharpe_delta -3.3876 (-16.31%) < -10%, champion trades 43 < 100 — PF statistically meaningless, hypothesis test not confirmed, DSR gate failed: champion SR=7.0143 ≤ expected_max=4.9782 (N=29 effective trials, PSR=0.9202)

**Metrics summary:**
  - profit_factor: baseline=2.049, modified=1.769, diff=-0.280
  - sharpe_ratio: baseline=20.771, modified=17.383, diff=-3.388
  - win_rate: baseline=0.545, modified=0.558, diff=0.013
  - max_drawdown: baseline=0.045, modified=0.040, diff=-0.004
  - test_accuracy: baseline=0.988, modified=0.949, diff=-0.038

### Iteration 2
- DSL: `fast_ema = ta.ema(close, 8)
slow_ema = ta.ema(close, 34)
ema_diff = fast_ema - slow_ema
atr_v = ta.atr(high, low, close, 14)
ema_diff_norm = ema_diff / (close * (1 + atr_v / close))
range_n = ta.highest(high, 14) - ta.lowest(low, 14) + 1e-10
result = ema_diff_norm * (1 - 2 * atr_v / range_n)` (feature=k_ema_norm_range_pct)
- DSL valid: True
- FeatureSet candidate id: 1844
- baseline PF: 2.049 → modified PF: 1.340
- t_stat: 0.000, p_value: 0.003, cohens_d: 0.299
- scalar_score: -3.6867
- accepted: False, reason: normalized_score -0.1885 <= 0.0, profit_factor_delta -0.7088 < 0.25, sharpe_delta -13.0903 (-63.02%) < -10%, hypothesis test not confirmed, DSR gate failed: champion SR=4.1806 ≤ expected_max=4.5678 (N=29 effective trials, PSR=0.4622)

**Metrics summary:**
  - profit_factor: baseline=2.049, modified=1.340, diff=-0.709
  - sharpe_ratio: baseline=20.771, modified=7.681, diff=-13.090
  - win_rate: baseline=0.545, modified=0.500, diff=-0.045
  - max_drawdown: baseline=0.045, modified=0.125, diff=0.080
  - test_accuracy: baseline=0.988, modified=0.987, diff=-0.001

### Iteration 3
- DSL: `denom = high - low
price_pos = denom != 0 ? (close - low) / denom : 0.5
vol_ratio = volume / (ta.sma(volume, 20) + 1e-10)
result = price_pos * vol_ratio` (feature=k_vol_price_pos)
- DSL valid: True
- FeatureSet candidate id: 1845
- baseline PF: 2.049 → modified PF: 1.649
- t_stat: 0.000, p_value: 1.000, cohens_d: 0.000
- scalar_score: -0.1920
- accepted: False, reason: normalized_score -0.1064 <= 0.0, profit_factor_delta -0.4003 < 0.25, sharpe_delta -6.6869 (-32.19%) < -10%, champion trades 61 < 100 — PF statistically meaningless, hypothesis test not confirmed

**Metrics summary:**
  - profit_factor: baseline=2.049, modified=1.649, diff=-0.400
  - sharpe_ratio: baseline=20.771, modified=14.084, diff=-6.687
  - win_rate: baseline=0.545, modified=0.508, diff=-0.037
  - max_drawdown: baseline=0.045, modified=0.083, diff=0.038
  - test_accuracy: baseline=0.988, modified=0.972, diff=-0.015

📊 Multi-Objective Metrics

Iteration 1: k_rsi_atr_macd_momentum

Y Label: C8 | Parent FS: #1748

Objective mode: scalarize

Scalar score: -0.1039

MetricBaselineModifiedDiff
win_rate 0.545 0.558 0.013
max_drawdown 0.045 0.040 -0.004
sharpe_ratio 20.771 17.383 -3.388
profit_factor 2.049 1.769 -0.280
test_accuracy 0.988 0.949 -0.038

Iteration 2: k_ema_norm_range_pct

Y Label: C8 | Parent FS: #1748

Objective mode: scalarize

Scalar score: -3.6867

MetricBaselineModifiedDiff
win_rate 0.545 0.500 -0.045
max_drawdown 0.045 0.125 0.080
sharpe_ratio 20.771 7.681 -13.090
profit_factor 2.049 1.340 -0.709
test_accuracy 0.988 0.987 -0.001

Iteration 3: k_vol_price_pos

Y Label: C8 | Parent FS: #1748

Objective mode: scalarize

Scalar score: -0.1920

MetricBaselineModifiedDiff
win_rate 0.545 0.508 -0.037
max_drawdown 0.045 0.083 0.038
sharpe_ratio 20.771 14.084 -6.687
profit_factor 2.049 1.649 -0.400
test_accuracy 0.988 0.972 -0.015

📁 Offline Report

Markdown backup: reports/autoloop/zz_sylvain/20261004_221133.md