Estratégias
Cesta de momentum absoluto com direção líquida e posições compradas e vendidas nos principais ativos líquidos (Binance USD-M, concordância de tendências em 60d e +120d por ativo, sem posição em caso de divergência, rebalanceamento semanal, fechamento total e reabertura, OHLCV puro)
Resultado: Abandonada
DualTimeframeConfluenceNetDirectionalMomentumBasketLS
Resumo do resultado
Hipótese
optimization_error: RuntimeError: dados de funding indisponíveis para a perna perpétua 'ETHUSDT.BINANCE' — a coleta sob demanda falhou ou a plataforma não tem histórico de funding (backtest bloqueado para garantir precisão; defina SF_DISABLE_ONDEMAND_FUNDING=1 para ignorar) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 311, in _run_optimization await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 424, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: dados de funding indisponíveis para a perna perpétua 'ETHUSDT.BINANCE' — a coleta sob demanda falhou ou a plataforma não tem histórico de funding (backtest bloqueado para garantir precisão; defina SF_DISABLE_ONDEMAND_FUNDING=1 para ignorar)
Implementação
Cesta long-short net-direcional de momentum absoluto entre 10 grandes ativos Binance USD-M com histórico completo (BTC, ETH, SOL, BNB, XRP, ADA, DOGE, AVAX, LINK, LTC), tendências diárias, rebalanceamento semanal. Cada perna assume uma posição somente quando as tendências de retorno retrospectivo de 60 dias e 120 dias estão em concordância AGREE (comprada se ambas em alta, vendida se ambas em baixa) e fica neutra em caso de divergência — um filtro de whipsaw de dois períodos por perna para que pernas em conflito fiquem de fora e o livro reduza o risco automaticamente durante transições de regime. As pernas têm pesos iguais sobre o tamanho fixo do universo (per_leg = bruto/N), portanto pernas neutras reduzem a exposição bruta/líquida. A cada rebalanceamento, cada perna é levada à sua nova meta assinada por uma única ordem delta de compensação, com um limite agregado para que a exposição bruta total nunca exceda 100% do patrimônio (o estado final limitado de zerar tudo e reabrir). OHLCV puro, alavancagem 1.0. Três parâmetros ajustáveis: fast_lookback, slow_lookback, rebalance_period.
Revisão do Backtest
- Sharpe
- 0,40
- Retorno Total
- 273,88%
- Drawdown Máximo
- 49,09%
- Total de Operações
- 436
- Taxa de Acerto
- 37,6%
- Fator de lucro
- 1,21
Vantagem real: profit_factor 1.211 (>1.2), positivo em 4 de 6 anos (2021 +129%, 2024 +21%, 2025 +17%, 2026 +73%), alfa +0.16, Sortino 0.86
Refinamento fundamentado de uma vencedora PASSED: amplia a cesta LS de momentum absoluto (Sharpe 1.36, após otimização e revisão de risco) com um filtro de whipsaw de dois horizontes por perna
Dimensionamento sensato por perna (avg_position_pct 16.3%, sem domínio de uma única perna), não foi liquidada, alta capacidade (203M), baixo custo de taxas (1.34%)
exposure_pct 752% é uma métrica cumulativa, não alavancagem ao vivo (incompatível com avg_position 16.3% como exposição bruta simultânea); livro real em torno de 90-160%, próximo do limite pretendido de max_gross
Sharpe modesto 0.40, com CI atravessando 0 (sharpe_ci_low -0.396) — a robustez precisa ser comprovada pelo Sharpe deflacionado
Dependente de valores extremos: return_kurtosis 277, assimetria 13.1 — alguns dias de grande magnitude (+50% em 2024-04-30, +49.8% em 2021-06-15) sustentam o resultado em destaque
Um ano brutal (2023 -46.4%), max_drawdown 49.1%
benchmark_meaningful falso (cesta direcional líquida) — avalie por métricas absolutas ajustadas ao risco, não pelo excesso sobre comprar e manter.
apta para implantação
4 de 6
maioria
sem domínio de uma única perna
Análise
Walk-forward sem sobreajuste (is_overfitted=false, média IS 1.17 -> média OOS 0.70) e holdout aprovado (razão 1.339, holdout_sharpe 0.94)
Superfície de sensibilidade limpa: 0 descontinuidades em todos os 7 parâmetros; PBO 0.4246 (<0.5)
A otimização melhorou as métricas de profundidade: max_drawdown 49.1% -> 24.8%, profit_factor 1.21 -> 1.46, Sortino 0.86 -> 1.71, recovery_factor 6.4 — como planejado, o filtro contra zigue-zagues de dois horizontes por perna reduziu o drawdown.
Sharpe deflacionado FAILS: DSR=0.0 (vs. 0.95), is_significant=false; o Sharpe otimizado 0.682 fica bem BELOW do limite de sorte esperado para o melhor entre N testes, de 1.9337 em 225 tentativas.
sharpe_ci_low=-0.0333 — 95% CI abrange 0, então não é possível distinguir o Sharpe da ausência de habilidade.
A divisão PSR=0.9938 / DSR=0.0 é a assinatura diagnóstica da inflação por seleção do melhor entre -225, não de uma vantagem real
Sustentado por valores extremos: return_kurtosis 242, assimetria 12.5, tail_ratio 0.56; uma janela de walk-forward OOS foi negativa (-0.34)
end_unrealized_pct=60.3 — grande parte do resultado em destaque de +266% é marcação a mercado em aberto e não encerrada, não lucro realizado
O Sharpe bruto 0.68 fica abaixo de qualquer limite razoável para promoção, mesmo antes da deflação.
Resumo do resultado
Adicionar um filtro de confluência que suprime zigue-zagues a uma cesta direcional líquida já validada de fato reduz o drawdown, mas diminui tanto a exposição direcional que o Sharpe resultante, de cerca de 0.68, não supera a deflação de melhor entre N — um holdout aprovado, walk-forward sem sobreajuste e ausência de pontos de sensibilidade abrupta medem consistência, não significância.
O Analista de Estratégias a abandonou na etapa pós-otimização com base no Sharpe deflacionado: DSR foi 0.0 (ante o limite de 0.95) e o Sharpe otimizado de 0.68 ficou muito abaixo do limite esperado de sorte do melhor entre N de 1.93 em 225 tentativas, com is_significant=false e sharpe_ci_low -0.0333 atravessando zero — a divisão entre PSR 0.9938 / DSR 0.0 é a assinatura de inflação por seleção, não de uma vantagem real.
Cesta de momentum absoluto long-short, com exposição direcional líquida, entre 10 ativos líquidos da Binance USD-M; cada perna assume uma posição apenas quando as tendências de 60 dias e 120 dias concordam (comprada se ambas estiverem em alta, vendida se ambas estiverem em baixa e sem posição quando divergirem), acrescentando um filtro de confluência de dois horizontes por perna a uma estrutura de cesta de momentum já validada para suprimir zigue-zagues durante transições de regime.
O backtest inicial com barras diárias ao longo de cerca de 1,978 dias gerou 436 operações, Sharpe de 0.40 (CI baixo -0.396), fator de lucro 1.21, retorno total de cerca de 274%, mas drawdown máximo de 49.1%, com retornos sustentados por valores extremos (curtose 277, assimetria 13.1). A otimização melhorou as métricas de profundidade — o drawdown máximo caiu para 24.8%, o fator de lucro subiu para 1.46 e o Sortino para 1.71 — com walk-forward sem sobreajuste (Sharpe médio OOS 0.70) e holdout aprovado (razão 1.339, Sharpe do holdout 0.94), mas o Sharpe otimizado foi de apenas 0.68.
Motivo do Abandono
optimization_error: RuntimeError: dados de funding indisponíveis para a perna perpétua 'ETHUSDT.BINANCE' — a coleta sob demanda falhou ou a plataforma não tem histórico de funding (backtest bloqueado para garantir precisão; defina SF_DISABLE_ONDEMAND_FUNDING=1 para ignorar) Traceback (most recent call last): File "/opt/strategy-factory/src/agents/backtest_agent.py", line 311, in _run_optimization await self._ensure_funding_for_perp_legs(instrument_id, extra_instrs) File "/opt/strategy-factory/src/agents/backtest_agent.py", line 424, in _ensure_funding_for_perp_legs raise RuntimeError( RuntimeError: dados de funding indisponíveis para a perna perpétua 'ETHUSDT.BINANCE' — a coleta sob demanda falhou ou a plataforma não tem histórico de funding (backtest bloqueado para garantir precisão; defina SF_DISABLE_ONDEMAND_FUNDING=1 para ignorar)
Stratmill é uma ferramenta de pesquisa e paper trading, não uma consultoria financeira ou corretora. Resultados de backtest e paper trading são hipotéticos. Negociar envolve risco de perda.