Gerado em 2026-04-25T19:08:05.414543+00:00 (131s).
Mecânica: ao atingir target (1.8R = +3.6% pra LONG), realiza X% do notional, mantém o restante (1-X)% open com trailing armado.
⚠ AVISO: mesmo bias intra-bar do trailing afeta a perna trailing dos (1-X)% restantes. Em 4h o número está provavelmente inflado. Use a validação cross-TF [[2026-04-25-bb-trailing-validation]] como sanity check.
| config | wins | mean_ret | Δ vs base | trades | wr |
|---|---|---|---|---|---|
| baseline (off) (base) | 6/6 | +29.96% | +0.00% | 372 | 47% |
| partial=50% act=0.5% dist=0.3% | 6/6 | +31.64% | +1.68% | 308 | 41% |
| partial=50% act=1.0% dist=0.5% | 6/6 | +29.67% | -0.29% | 308 | 41% |
| partial=50% act=1.0% dist=1.0% | 6/6 | +24.82% | -5.14% | 308 | 41% |
| partial=33% act=1.0% dist=0.5% | 6/6 | +37.01% | +7.05% | 308 | 38% |
| config | wins | mean_ret | Δ vs base | trades | wr |
|---|---|---|---|---|---|
| baseline (off) (base) | 5/6 | +15.66% | +0.00% | 392 | 42% |
| partial=50% act=0.5% dist=0.3% | 5/6 | +26.62% | +10.96% | 327 | 38% |
| partial=50% act=1.0% dist=0.5% | 4/6 | +24.67% | +9.01% | 327 | 38% |
| partial=50% act=1.0% dist=1.0% | 4/6 | +19.79% | +4.12% | 327 | 38% |
| partial=33% act=1.0% dist=0.5% | 5/6 | +32.51% | +16.85% | 327 | 35% |
| config | wins | mean_ret | Δ vs base | trades | wr |
|---|---|---|---|---|---|
| baseline (off) (base) | 5/6 | +17.59% | +0.00% | 412 | 43% |
| partial=50% act=0.5% dist=0.3% | 6/6 | +35.81% | +18.22% | 345 | 39% |
| partial=50% act=1.0% dist=0.5% | 6/6 | +33.71% | +16.12% | 345 | 39% |
| partial=50% act=1.0% dist=1.0% | 6/6 | +28.42% | +10.82% | 345 | 39% |
| partial=33% act=1.0% dist=0.5% | 6/6 | +44.04% | +26.45% | 345 | 37% |
1ª rodada do sweep retornou números IDÊNTICOS ao trailing puro
([[2026-04-25-bb-trailing-sweep]]). Causa: ordem na barra era
stop > trailing > target, mas trailing_armed ativava
automaticamente quando peak_gain >= activate. Como bar_high cruza
target na mesma barra que armaria trailing, trailing disparava
ANTES do target, e o partial nunca era acionado.
Fix em engine.py: quando partial_take_profit_pct > 0, trailing NÃO
arma automaticamente. Arma SOMENTE depois do partial taken (target hit
pela 1ª vez). Garante que a sequência seja: target hit → 50/33%
realizado → trailing armado pra restante.
partial=33% é o vencedor em todos 3 símbolos:
| símbolo | baseline | partial=33% act=1% dist=0.5% | Δ |
|---|---|---|---|
| XRP | 6/6 +29.96% | 6/6 +37.01% | +7.05% |
| ADA | 5/6 +15.66% | 5/6 +32.51% | +16.85% |
| DOGE | 5/6 +17.59% | 6/6 +44.04% | +26.45% |
Por que partial=33% > partial=50%? - partial=50%: lock 50% lucro, 50% qty segue trailing - partial=33%: lock 33% lucro, 67% qty segue trailing — mais "skin in the game" pra capturar runners pós-target
Bias intra-bar remanescente: a perna trailing dos (1-partial)% restantes herda o mesmo bias do sweep de trailing puro. Em 4h, ~50-70% do ganho do trailing pode ser artefato (validar em 15m repete o exercício de [[2026-04-25-bb-trailing-validation]]).
Estimativa conservadora pós-bias: - XRP: +7% → ~+3-4% real (modest) - ADA: +17% → ~+8-10% real (decent) - DOGE: +26% → ~+13-16% real (good)
Win rate: cai ligeiramente em scale-out (47→41% XRP, 42→38% ADA, 43→37% DOGE). Esperado — trailing fecha alguns que iam pro stop com small win locked do partial, mas magnitudes do leg trailing compensam.
3 caminhos:
| # | path | custo | resultado esperado |
|---|---|---|---|
| A | Validar em 15m (mesmo sweep) | 3min | Confirma quanto do Δ é real vs artefato |
| B | Promover live partial=33% | médio (refactor OCO cancel+recreate, ~50-100 LOC) | Coleta dados shadow real |
| C | Manter atual sem scale-out | zero | Linha base atual |
Recomendação: A primeiro (3min, decide entre B e C com mais informação). Se em 15m o Δ persiste >50% do número de 4h, vale o investimento de B. Se colapsa pra ~0, fica C.
Entities: [[../entities/ADAUSDT]], [[../entities/XRPUSDT]] Strategies: [[../strategy/bollinger_breakout]]