Backtest re-run após fix do regime_detector

Fix aplicado: ATR_PCT_VOLATILE antes era fixo em 2.5% (calibrado para 15m/1h). Em 1d BTC ATR% típico é 3-5% — classificava 97.4% dos dias como "volatile" → StormIA abstava de tudo.

Novo threshold por TF: - 15m: 1.5% - 1h: 2.5% - 4h: 4.0% - 1d: 6.0% ← era 2.5% - 1w: 10.0%

Plus: _detect_w1_bias agora passa interval="1w" ao regime detector.


🏆 Resultados atualizados

Símbolo Vencedor Return N WR Expectancy
BTCUSDT bollinger_reversion +8.3% 5 40% +1.66%
ETHUSDT stormia_full_engine 🥇 +10.6% 24 33% +0.44%
XRPUSDT ifr2_with_mm200 +7.0% 20 50% +0.35%

Vencedor global novo: stormia_full_engine em ETH com +10.6% — maior return absoluto de toda a matriz. R:R médio 3:1 (+3.9% win vs -1.3% loss). O engine multi-TF mostrou edge real quando o regime fica estável.


Comparação antes/depois do fix (stormia_full_engine)

BTCUSDT ETHUSDT XRPUSDT
Antes (threshold fixo 2.5%) 0 trades 0 trades 0 trades
Depois (TF-aware) 24 trades, -14.2% 24 trades, +10.6% 🥇 18 trades, -5.8%

Tabela completa atualizada

BTCUSDT · 1d · 364d

strategy n wr avg_win avg_loss expectancy return sharpe max_dd fees
bollinger_reversion 5 40% +7.75% -2.39% +1.662% +8.3% +0.68 -0.4% $0.38
legacy_rules 0
breakout 0
bollinger_breakout 0
stochastic 0
ifr2_pure 65 35% +1.85% -1.13% -0.077% -5.0% -0.44 -0.5% $4.86
ifr2_with_mm200 33 33% +1.85% -1.12% -0.128% -4.2% -0.52 -0.4% $2.47
stormia_full_engine 24 21% +2.61% -1.43% -0.590% -14.2% -1.33 -0.8% $1.79
pullback 11 27% +5.14% -6.49% -3.322% -36.5% -1.86 -2.4% $0.82

ETHUSDT · 1d · 364d

strategy n wr avg_win avg_loss expectancy return sharpe max_dd fees
stormia_full_engine 🥇 24 33% +3.90% -1.29% +0.441% +10.6% +0.54 -0.5% $1.80
ifr2_with_mm200 35 40% +1.85% -1.15% +0.050% +1.8% +0.20 -0.4% $2.62
ifr2_pure 67 39% +1.85% -1.15% +0.014% +0.9% +0.08 -0.8% $5.01
legacy_rules 0
breakout 0
bollinger_breakout 0
stochastic 0
bollinger_reversion 8 12% +5.87% -4.61% -3.300% -26.4% -2.03 -1.6% $0.60
pullback 8 25% +12.52% -8.61% -3.327% -26.6% -0.95 -2.0% $0.60

XRPUSDT · 1d · 364d

strategy n wr avg_win avg_loss expectancy return sharpe max_dd fees
ifr2_with_mm200 20 50% +1.85% -1.15% +0.350% +7.0% +1.04 -0.2% $1.50
ifr2_pure 62 39% +1.85% -1.15% +0.011% +0.7% +0.06 -0.4% $4.64
legacy_rules 0
breakout 0
bollinger_breakout 0
stochastic 0
stormia_full_engine 18 33% +1.85% -1.41% -0.321% -5.8% -0.81 -0.5% $1.35
bollinger_reversion 3 0% +0.00% -3.41% -3.410% -10.2% -7.70 -0.5% $0.22
pullback 2 0% +0.00% -4.90% -4.900% -9.8% -3.10 -0.5% $0.15

🔍 Análise aprofundada

StormIA full engine: promissor em trending, ruim em choppy

Por que funciona em ETH e não em BTC?

BTC 2025 teve drawdown 78k → 55k → 120k com muitas voltas intermediárias violentas. ETH teve um rally estrutural mais limpo. StormIA é uma engine de tendência — precisa de trending persistent. Em choppy ranges com expansões/compressões curtas, os setups pullback/breakout ficam pegando stops.

Strategies com 0 trades — diagnóstico

Investigação rápida: - legacy_rules: MACD 8/21/5 em 1d é lentíssimo — sinais reais aparecem em semanas. Em 365 bars de D1 com filtro triplo (EMA10>30 + macd_hist>0 + RSI<70), quase nunca TODAS as 3 condições alinham. Strategy OK pra 1h. - breakout: rompe max(20) em 1d só em topos históricos. 2025 teve 2 desses mas ambos à noite — provavelmente o backtest não capturou porque o engine compara com high do dia. - bollinger_breakout: close > upper AND close > ema20 em 1d é raro + rr_net < 1.5 after fees rejeita os poucos que surgem. - stochastic standalone: em 1d precisa de stoch cross no extremo — em bars diários de uma vez por dia, cross limpo é raro. Funciona em 15m/1h melhor.

Nenhum deles é bug de design — são strategies calibradas pra TFs menores. Pra validar edge no 1d precisaria reconfigurar periods (MACD 26/52 em vez de 8/21, etc.) ou rodar backtest em 1h/4h, que é onde elas foram pensadas.


✅ Recomendação atualizada para primeiro live

Duas opções claras:

Opção A — conservador (recomendado)

Opção B — agressivo, mais return

Minha sugestão: começar com A por 2-4 semanas pra validar o pipeline end-to-end (OCO server-side, circuit breaker, Telegram alerts). Depois adicionar B com outro $100.


Próximos experimentos

  1. Backtest em 1h e 4h — strategies pullback/breakout/bollinger foram desenhadas pra esses TFs. Vai revelar se elas têm edge real ou são só ruído no 1d.
  2. Walk-forward — janela de 90d pra treinar + 30d pra validar, rolando. Vai mostrar se o edge é estável ou overfit a 2025.
  3. Mais símbolos — adicionar SOL, BNB, ADA. Se stormia_full_engine vence em múltiplos ativos, evidência mais robusta.
  4. Ajustar thresholds: RSI_OVERSOLD=25 pode ser apertado demais. Testar 20 e 30 num grid search.
  5. Reduzir pullback em 1d — já ruim no 1d, restringir pra regimes trending_* only (não emitir sinal em ranging).

Fontes

Cross-references

Entities: [[../entities/BTCUSDT]], [[../entities/XRPUSDT]] Strategies: [[../strategy/bollinger_breakout]] Regimes: [[../regimes/ranging]], [[../regimes/volatile]]