Feature Iteration Run #1327: zz_sylvain
Status: completed | Started: 2026-09-26 01:31:13 | Ended: 2026-09-26 01:31:28
📊 Iterations
📄 Report Markdown
# AUTOLOOP: zz_sylvain (2 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**: 14.96s
> **Total accepted**: 0
> **Total rejected**: 2
## Iterations 詳情
### Iteration 1
- DSL: `// Factor: k_high_pct_chg_atr_ppos_divamp_volshrink
high_pct_12 = (high - high[12]) / high[12]
atr_val = ta.atr(high, low, close, 5)
atr_n = atr_val / close
pp = (high != low) ? (close - low) / (high - low) : 0.0
// OBV divergence amplitude (continuous): binary flag * vol_sma
diff = close - close[1]
obv_val = ta.cum(diff > 0 ? volume : (diff < 0 ? -volume : 0))
o_val = obv_val[1]
obv_past_max = ta.highest(o_val, 12)
h_shift1 = high[1]
h_shift_w1 = high[13]
price_new_high = h_shift1 > ta.highest(h_shift_w1, 12)
div_flag = (price_new_high and (o_val < obv_past_max)) ? 1 : 0
vol_sma_12 = ta.sma(volume, 12)
div_amp = bar_index == 0 ? 0.0 : div_flag * vol_sma_12
// Consecutive volume shrink (0..length_short)
vol_ma_long = ta.sma(volume, 12)
vol_shrink_v = (volume < vol_ma_long) ? 1 : 0
shrink_count = ta.sum(vol_shrink_v, 6)
shrink_norm = shrink_count / 6.0
result = high_pct_12 / (1.0 + atr_n) * (1.0 - pp) * (1.0 - div_amp) * (1.0 - shrink_norm)
result` (feature=k_iter1_k_high_pct_chg_atr_ppos_divamp_volshrink)
- 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: 非原生呼叫 ['amplitude', 'shrink'] (只准 Pine 原生函數, 對齊 _check_fd_align A10)
### Iteration 2
- DSL: `//@version=6
indicator("k_high_pct12_atrnorm_ppos_hlr")
high_pct_12 = (high - high[12]) / high[12]
atr_val = ta.atr(high, low, close, 5)
atr_n = atr_val / close
pp = (high != low) ? (close - low) / (high - low) : 0.0
hl_r = (high - low) / close
result = high_pct_12 / (1.0 + atr_n) * (1.0 - pp) * (1.0 + hl_r)
plot(result)` (feature=k_iter2_k_high_pct12_atrnorm_ppos_hlr)
- 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: 非原生呼叫 ['indicator', 'plot'] (只准 Pine 原生函數, 對齊 _check_fd_align A10)
📊 Multi-Objective Metrics
Iteration 1: k_iter1_k_high_pct_chg_atr_ppos_divamp_volshrink
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
Iteration 2: k_iter2_k_high_pct12_atrnorm_ppos_hlr
Y Label: C8 | Parent FS: #7
Objective mode: single
Scalar score: 0.0000
📁 Offline Report
Markdown backup: reports/autoloop/zz_sylvain/20260926_093128.md