BB trailing take-profit sweep — XRP/ADA/DOGE 4h

Gerado em 2026-04-25T18:10:28.072328+00:00 (sweep 284s).

Hipótese H_TRAIL (Boss 2026-04-25): trailing take-profit ativado em peak_gain >= activate%, fechando quando drawdown_from_peak >= distance%.

720d, 6 windows. Stop hard (-2%) e target (1.8R) inalterados.

Ordem dentro de barra: stop > trailing > target. peak rastreia bar high (long).

XRPUSDT

config wins mean_ret Δret vs base trades wr_avg per-window
baseline (off) (baseline) 6/6 +29.96% +0.00% 372 47% [+11 +33 +62 +36 +17 +21]
act=0.5% dist=0.3% 6/6 +119.91% +89.95% 535 62% [+56 +191 +208 +59 +122 +84]
act=0.5% dist=0.5% 6/6 +108.69% +78.73% 535 58% [+49 +179 +196 +48 +108 +73]
act=0.5% dist=0.8% 6/6 +92.24% +62.28% 533 52% [+38 +163 +178 +31 +88 +57]
act=1.0% dist=0.5% 6/6 +109.75% +79.79% 500 58% [+54 +174 +197 +51 +114 +68]
act=1.0% dist=0.8% 6/6 +95.21% +65.25% 500 58% [+44 +159 +180 +35 +97 +55]
act=1.0% dist=1.0% 6/6 +85.56% +55.60% 500 55% [+37 +150 +169 +25 +86 +46]
act=1.5% dist=0.5% 6/6 +109.97% +80.01% 473 55% [+54 +173 +197 +52 +113 +71]
act=1.5% dist=1.0% 6/6 +88.16% +58.20% 473 55% [+39 +151 +170 +29 +90 +50]
act=2.0% dist=1.0% 6/6 +91.47% +61.51% 446 53% [+42 +149 +181 +27 +97 +53]

ADAUSDT

config wins mean_ret Δret vs base trades wr_avg per-window
baseline (off) (baseline) 5/6 +15.66% +0.00% 392 42% [+2 +48 +31 +5 -17 +24]
act=0.5% dist=0.3% 6/6 ⬆ +115.66% +100.00% 540 61% [+39 +202 +198 +72 +114 +70]
act=0.5% dist=0.5% 6/6 ⬆ +104.76% +89.09% 540 58% [+32 +187 +187 +60 +104 +59]
act=0.5% dist=0.8% 6/6 ⬆ +88.55% +72.88% 539 54% [+21 +166 +170 +42 +90 +43]
act=1.0% dist=0.5% 6/6 ⬆ +107.47% +91.80% 514 58% [+33 +195 +186 +68 +103 +60]
act=1.0% dist=0.8% 6/6 ⬆ +92.85% +77.19% 513 58% [+24 +175 +170 +51 +91 +47]
act=1.0% dist=1.0% 6/6 ⬆ +83.61% +67.95% 511 54% [+20 +162 +159 +40 +82 +38]
act=1.5% dist=0.5% 6/6 ⬆ +108.73% +93.06% 485 54% [+37 +201 +178 +70 +107 +60]
act=1.5% dist=1.0% 6/6 ⬆ +86.84% +71.18% 485 54% [+23 +170 +154 +45 +88 +41]
act=2.0% dist=1.0% 6/6 ⬆ +89.24% +73.57% 458 51% [+21 +178 +162 +47 +89 +40]

DOGEUSDT

config wins mean_ret Δret vs base trades wr_avg per-window
baseline (off) (baseline) 5/6 +17.59% +0.00% 412 43% [-5 +14 +48 +24 +8 +16]
act=0.5% dist=0.3% 6/6 ⬆ +106.31% +88.72% 528 56% [+44 +182 +153 +55 +137 +68]
act=0.5% dist=0.5% 6/6 ⬆ +96.48% +78.89% 528 55% [+38 +170 +142 +44 +126 +59]
act=0.5% dist=0.8% 6/6 ⬆ +81.84% +64.25% 527 51% [+29 +153 +126 +27 +110 +45]
act=1.0% dist=0.5% 6/6 ⬆ +96.54% +78.95% 513 53% [+40 +162 +140 +50 +126 +60]
act=1.0% dist=0.8% 6/6 ⬆ +82.86% +65.26% 513 53% [+32 +146 +125 +35 +111 +48]
act=1.0% dist=1.0% 6/6 ⬆ +73.56% +55.97% 512 51% [+26 +136 +115 +25 +99 +41]
act=1.5% dist=0.5% 6/6 ⬆ +99.30% +81.71% 497 51% [+41 +165 +144 +56 +126 +64]
act=1.5% dist=1.0% 6/6 ⬆ +77.96% +60.37% 497 51% [+28 +140 +120 +32 +101 +46]
act=2.0% dist=1.0% 6/6 ⬆ +78.07% +60.48% 468 48% [+30 +139 +124 +27 +97 +52]

Vencedor por símbolo

símbolo best config mean_ret wins Δ vs baseline
XRPUSDT act=0.5% dist=0.3% +119.91% 6/6 +89.95%
ADAUSDT act=0.5% dist=0.3% +115.66% 6/6 +100.00%
DOGEUSDT act=0.5% dist=0.3% +106.31% 6/6 +88.72%

⚠️ Alerta: resultados provavelmente inflados por lookahead intra-bar

TODAS as 10 configs ganham 60-100% sobre baseline em TODOS os 3 símbolos. Win rate sobe de 42-47% para 51-62%. Esse padrão "good to be true" é sinal clássico de lookahead intra-bar.

Causa provável

O engine processa cada barra como atômica. Para uma barra com OHLC, o código atualiza peak_favorable = max(peak, bar_high) antes de checar se bar_low <= peak * (1 - distance). Implica: na mesma barra em que o bar_high aparece, o engine assume que o high veio primeiro (pra setar o peak) e a queda até bar_low veio depois (pra disparar trailing no preço peak * (1-distance)).

Em real-time, isso é uma das duas ordens possíveis. A outra (low antes de high) faria o trailing nem armar. O engine sempre pega o cenário favorável.

Em barras de 4h essa janela é grande: BTC pode oscilar 3-5% dentro de uma única barra. O engine captura o peak e vende a 0.3% dele, quando na realidade pode ter ido low primeiro, depois high (e exit seria no close, não no peak). Isso infla mean_ret massivamente.

Como validar

Rodar o mesmo sweep em TFs mais finos (1h, 15m). Quanto menor a barra, menor o bias intra-bar. Se em 15m o ganho do trailing cair de +90% para +5-10%, confirma que o resultado em 4h é artefato. Se ainda ganhar +50% em 15m, é edge real.

Alternativa correta: backtester precisa simular trailing em escala intra-bar (e.g. usando 1m candles internamente quando há trade aberto em 4h). Custoso mas única forma realista.

Recomendação

NÃO PROMOVER esses params pra live. Ganho é provavelmente artefato do engine, não edge real. Próximos passos:

  1. Rodar mesmo sweep em 15m e 1h pra dimensionar o bias.
  2. Se persistir ganho razoável (>10% sobre baseline) em 15m, considerar reescrever engine com trailing intra-bar (1m candles).
  3. Em paralelo: implementar trailing em client-side live (cancelar OCO + recriar) com params conservadores e rodar 30d em shadow antes de promover. Shadow já tem o ground truth real (tick-by-tick da Binance), evita o bias do backtest.

H_TRAIL fica pendente, não descartada.

Cross-references

Entities: [[../entities/ADAUSDT]], [[../entities/XRPUSDT]] Strategies: [[../strategy/bollinger_breakout]] Patterns: [[../patterns/lookahead-bias]]