Executado em: 2026-04-24 12:51 UTC Janela: 365 dias (1 ano) no timeframe 1d Capital simulado: $1000 USDT Risco por trade: 1% equity Fees: 0.15% round-trip (BNB discount 0.075% taker x 2) Min RR (net): 1.5 Símbolos: BTCUSDT / ETHUSDT / XRPUSDT Strategies testadas: 9 (legacy + 8 StormIA components + full engine)
| Símbolo | Strategy vencedora | Return | N trades | WR | Expectancy |
|---|---|---|---|---|---|
| BTCUSDT | bollinger_reversion |
+7.9% | 5 | 40% | +1.58% |
| ETHUSDT | ifr2_with_mm200 |
+1.8% | 35 | 40% | +0.05% |
| XRPUSDT | ifr2_with_mm200 |
+7.0% | 20 | 50% | +0.35% |
Vencedor global: ifr2_with_mm200 — único positivo em 2 de 3 ativos,
com wr 40-50% e expectancy positiva. Mais robusto que bollinger_reversion
(que foi vencedor em BTC mas catastrófico em ETH -26% e XRP -10%).
| strategy | n | wr | avg_win | avg_loss | expectancy | return | sharpe | max_dd | fees |
|---|---|---|---|---|---|---|---|---|---|
| bollinger_reversion 🥇 | 5 | 40% | +7.54% | -2.39% | +1.581% | +7.9% | +0.67 | -0.4% | $0.38 |
| legacy_rules | 0 | — | — | — | — | — | — | — | — |
| breakout | 0 | — | — | — | — | — | — | — | — |
| bollinger_breakout | 0 | — | — | — | — | — | — | — | — |
| stochastic | 0 | — | — | — | — | — | — | — | — |
| stormia_full_engine | 0 | — | — | — | — | — | — | — | — |
| ifr2_pure | 65 | 35% | +1.85% | -1.12% | -0.072% | -4.7% | -0.40 | -0.5% | $4.86 |
| ifr2_with_mm200 | 33 | 33% | +1.85% | -1.10% | -0.117% | -3.9% | -0.48 | -0.4% | $2.47 |
| pullback | 11 | 27% | +5.01% | -6.49% | -3.357% | -36.9% | -1.89 | -2.4% | $0.82 |
| strategy | n | wr | avg_win | avg_loss | expectancy | return | sharpe | max_dd | fees |
|---|---|---|---|---|---|---|---|---|---|
| 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 | — | — | — | — | — | — | — | — |
| stormia_full_engine | 0 | — | — | — | — | — | — | — | — |
| bollinger_reversion | 8 | 12% | +5.87% | -4.61% | -3.300% | -26.4% | -2.03 | -1.6% | $0.60 |
| pullback | 8 | 25% | +12.32% | -8.61% | -3.377% | -27.0% | -0.97 | -2.0% | $0.60 |
| 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 | 0 | — | — | — | — | — | — | — | — |
| bollinger_reversion | 3 | 0% | — | -3.41% | -3.410% | -10.2% | -7.70 | -0.5% | $0.22 |
| pullback | 2 | 0% | — | -4.60% | -4.598% | -9.2% | -2.56 | -0.5% | $0.15 |
legacy_rules, breakout, bollinger_breakout, stochastic,
stormia_full_engine — todas zeraram. Causas prováveis:
close > upper AND close > ema20 — em 1d
isso é bem restritivo. Provavelmente disparou raramente E o gate
rr_net_below_min filtrou.pullback é catastrófico em 1dReturn -36.9% (BTC), -27% (ETH), -9% (XRP). O setup EMA9>EMA21 +
pullback + candle rejeição simples em 1d gera poucos trades mas com
perdas grandes (avg_loss -6% a -8%). Em 1d os swings são maiores que
em 1h — o stop de swing low longo tem um R:R aparente bom no papel mas
a MAE intra-trade é forte. Sugestão: usar pullback apenas no 1h/4h.
ifr2 vence mas com expectancy marginalMesmo o vencedor em ETH (+0.05%) e BTC (-0.12%!) está no limiar — a vantagem
real vem de ifr2_with_mm200 em XRP (WR 50%, expectancy +0.35%).
ifr2_pure (sem filtro MM200) degrada: mais trades, menos wr, expectancy
pior por causa de fees acumuladas. Lição: o filtro de tendência MM200
agrega edge real, não é ornamental.
Ligar STRATEGY_REGISTRY_ENABLED=true seria arriscado hoje porque
pullback e bollinger_reversion (as que entram em ranging no registry
atual) têm expectancy negativa em 2 de 3 ativos em 1d. Preciso ajustar
o registry antes.
Recomendação imediata pro primeiro live:
- Rodar só ifr2_with_mm200 em XRPUSDT (wr 50%, expectancy +0.35%)
- Capital simulado de $100 → return esperado 1y ≈ +$7 (7%)
- Isso é um teto estimado otimista — dados 2025-2026 podem não se repetir em 2026-2027.
Reparar o StormIA full engine: zero trades em 1 ano é bug de
design, não de dados. Checar por que dispatch() retorna flat em
condições que claramente tiveram trending D1 e W1 aligned (ex: BTC
em janela de uptrend). Provável que eden.evaluate ou
detect_regime estejam num nível de exigência diferente do que
quando foram testados individualmente.
Migrar pullback e breakout pra timeframes menores: 1h e 4h.
No live o ShadowRunner já roda esses TFs — o backtest deveria cobri-los.
bollinger_reversion em BTC é o único com expectancy +1.58% —
mas só 5 trades em 365d é amostra pequena demais. Antes de live
com essa, precisa ≥20 trades históricos.
stormia_full_engine não dispara (debugger no
dispatch()). Provavelmente relaxar um dos filtros (W1 bias mais
permissivo quando D1 está claramente em trend?).1h e 4h — strategies StormIA foram desenhadas
pra esses TFs. 1d foi só um teste inicial.ifr2_with_mm200 continua vencedor, aumentar exposure
(risk_per_trade 1% → 1.5%) quando gate ready.ifr2_with_bb combinando RSI2<25 AND close<BB_lower
(confluência de mean-reversion).sources/backtests/runs/20260424-125141/summary.csv — 27 rowssources/backtests/runs/20260424-125141/summary.md — tabela markdown brutasources/backtests/runs/20260424-125141/<symbol>_<strategy>_trades.json — trade-by-trade detailEntities: [[../entities/BTCUSDT]], [[../entities/XRPUSDT]] Strategies: [[../strategy/bollinger_breakout]] Regimes: [[../regimes/ranging]], [[../regimes/trending_up]]