Saltar para o conteúdo
Todas as estratégias

Estratégias

Reversão contrária à concentração do retalho, Long-Short (Cesto de 3 ativos USD-M com forte participação do retalho DOGE/XRP/SOL, barras de 4h + feed de rácio GLOBAL long/short ACCOUNT, contrariar a multidão ONLY em extremos de posicionamento estatístico — vender a descoberto quando o retalho está maximamente líquido longo / comprar quando está maximamente líquido curto, saída por reversão à média, 3 parâmetros)

Resultado: Abandonado

RetailCrowdingContrarianReversalLS

Resumo de Resultados

RetailCrowdingContrarianReversalLS tentou contrariar a multidão do retalho num cesto de DOGE/XRP/SOL, assumindo posições contrárias nos extremos do rácio global de contas long/short, num desenho deliberadamente neutro ao mercado com 3 parâmetros. Registou um impressionante +1814% em 1,695 operações e foi positiva em todos os anos completos, mas o Sharpe foi apenas 0.285, com intervalo de confiança a abranger zero; o lucro foi um artefacto de caudas pesadas, impulsionado por cerca de seis dias extremos de crash (sobretudo +80.8% durante o colapso de FTX), e não por uma vantagem consistente. Para agravar o problema, o processo suplementar do backtest forneceu o rácio de contas apenas para a perna principal, pelo que XRP e SOL negociaram efetivamente com o z-score de DOGE, e a premissa central de diversificação nunca se concretizou — uma limitação do motor que o programador não conseguiu resolver. O analista abandonou-a na etapa de revisão do backtest por falhas na qualidade do risco e na significância da vantagem; nunca chegou à otimização, revisão do risco ou negociação simulada.

Hipótese

Uma estratégia LONG-SHORT contrária multi-instrumento em três contratos perpétuos Binance USD-M com elevada participação do retalho (DOGEUSDT, XRPUSDT, SOLUSDT), em barras de 4h, orientada pelo rácio global long/short de GLOBAL ACCOUNT (proxy baseada em contagens do posicionamento do retalho no ficheiro de métricas Binance Vision CSV — count_long_short_ratio — com histórico de MULTI-YEAR, ao contrário do feed de principais traders exclusivo da API API, que deixou o anterior cesto «Informed-Positioning» inativo……Mostrar maisMostrar menos

Uma estratégia LONG-SHORT contrária multi-instrumento em três contratos perpétuos Binance USD-M com elevada participação do retalho (DOGEUSDT, XRPUSDT, SOLUSDT), em barras de 4h, orientada pelo rácio global long/short de GLOBAL ACCOUNT (proxy baseada em contagens do posicionamento do retalho no ficheiro de métricas Binance Vision CSV — count_long_short_ratio — com histórico de MULTI-YEAR, ao contrário do feed de principais traders exclusivo da API API, que deixou o anterior cesto «Informed-Positioning» inativo após 2021). A vantagem é comportamental e estrutural, não uma previsão de preços: a multidão de contas de retalho está sistematicamente errada nos extremos — quando a esmagadora maioria das contas de retalho está líquida longa num ativo, os compradores marginais estão esgotados e os retornos seguintes são fracos; quando o retalho está maximamente líquido curto, a pressão vendedora esgota-se e seguem-se recuperações. Crucialmente, esta é a leitura CONTRARIAN do retalho (contrariar a multidão), NOT a leitura seguidora de tendências das contas informadas/de grande dimensão, que já falhou. Deliberadamente com 3 parâmetros (z_lookback, entry_z, atr_stop_mult) para resistir às falhas por sobreajuste; um cesto com 3 ativos dilui o ajuste da curva a um único símbolo e aumenta o número de operações para fiabilidade estatística.

A iteração 4 corrige a falha da Camada -4 QA (incompatibilidade no conjunto de instrumentos e mensurabilidade de ativo único), transformando a estratégia no verdadeiro cesto de 3 ativos exigido pela hipótese: extra_instruments inclui agora XRPUSDT.BINANCE e SOLUSDT.BINANCE, on_extra_bar é substituído e ambas as pernas adicionais são efetivamente negociadas, com gestão completa de posições, saídas e dimensionamento. Isto restabelece a diversificação e ~3x operações (cerca de 300 operações contra as 100……Mostrar maisMostrar menos

A iteração 4 corrige a falha da Camada -4 QA (incompatibilidade no conjunto de instrumentos e mensurabilidade de ativo único), transformando a estratégia no verdadeiro cesto de 3 ativos exigido pela hipótese: extra_instruments inclui agora XRPUSDT.BINANCE e SOLUSDT.BINANCE, on_extra_bar é substituído e ambas as pernas adicionais são efetivamente negociadas, com gestão completa de posições, saídas e dimensionamento. Isto restabelece a diversificação e ~3x operações (cerca de 300 operações contra as 100 anteriores), mecanismo central contra o sobreajuste e para o tamanho da amostra descrito na hipótese; responde à nota QA de que o Sharpe CI abrangia zero com um único ativo. Limitação de dados tratada com rigor: confirmei em src/backtesting/supp_collector.py e executando load_for_subprocess que o processo de backtest carrega o rácio de contas L/S ONLY para a perna principal (as adicionais recebem apenas financiamento); assim, um cesto com rácios por perna deixaria XRP/SOL sem dados e sem operações (um cesto fictício). Em vez disso, o cesto partilha o rácio global de contas DOGE da perna principal — DOGE é o mais dominado pelo retalho dos três, um indicador amplo do sentimento do retalho —, mantendo-se dentro do mecanismo contrário baseado no rácio de contas L/S SAME (NOT uma mudança para uma proxy apenas de preço); a execução de cada perna (momento de entrada baseado no z partilhado, mas stop ATR, saída por reversão e preço e dimensionamento por perna independentes) é totalmente separada. O cálculo do z-score, das entradas, saídas e do dimensionamento é idêntico byte a byte à lógica que já passou a Camada 3 para DOGE ( 100 operações, reorganizada em funções auxiliares partilhadas _zscore_for_bars/_atr_of/_size_for), pelo que o comportamento DOGE é preservado e as pernas adicionais comportam-se da mesma forma. Segurança da Camada -2: as ordens das pernas adicionais passam por _submit_entry_instrument, que retorna logo se a cache simulada não fornecer um instrumento; por isso, o percurso on_extra_bar adicionado não pode bloquear a proxy sintética — confirmei localmente que a Camada 1 (estática) e os seis cenários da Camada 2 passam. Importações inalteradas (sem adições proibidas); o analisador do rácio continua a ser uma função local para evitar o problema de associação estática da proxy. A alavancagem é referenciada em _size_for (max_size = capital próprio*alavancagem/preço), pelo que não fica definida sem ser usada.

Vantagem ajustada ao risco não significativa, além de caudas pesadas dependentes de dias de crash. O Sharpe é apenas 0.285, com um 95% CI de [-0.326, 0.916] que atravessa zero, pelo que a vantagem não pode ser distinguida do ruído e a otimização de três parâmetros não a consegue elevar até cerca de 1.5, nível necessário para promoção. O retorno total de +1814% é um artefacto de caudas pesadas (curtose 15.5, assimetria 1.18), sustentado por cerca de 6 dias extremos isolados — +80.8% durante o colapso de 2022-11-01……Mostrar maisMostrar menos

Vantagem ajustada ao risco não significativa, além de caudas pesadas dependentes de dias de crash. O Sharpe é apenas 0.285, com um 95% CI de [-0.326, 0.916] que atravessa zero, pelo que a vantagem não pode ser distinguida do ruído e a otimização de três parâmetros não a consegue elevar até cerca de 1.5, nível necessário para promoção. O retorno total de +1814% é um artefacto de caudas pesadas (curtose 15.5, assimetria 1.18), sustentado por cerca de 6 dias extremos isolados — +80.8% durante o colapso de 2022-11-01 FTX, +40.3%, +37.5%, +32.9%, +30.2%, +30.0% — ou seja, alguns shorts contrários sortudos durante crashes, não uma vantagem consistente de contrariar investidores de retalho. Mais importante, a nota do código reconhece que o pipeline suplementar do backtest fornece o rácio de contas long/short apenas para a perna principal, pelo que XRP e SOL negoceiam com o z-score de posicionamento agregado de DOGE, em vez de usarem os seus próprios; assim, a premissa central de diversificação da hipótese (três sinais independentes de posicionamento de investidores de retalho) não se concretiza: é um sinal aplicado a três ativos principais correlacionados, razão pela qual a variância é enorme e o Sharpe colapsa. Essa deficiência é uma limitação na disponibilização de dados pelo motor que o programador não consegue corrigir, pelo que iterar não ajudará. Agravado por max_drawdown 40.4% (CI a 98.4%), rotação de carteira de 784x, impacto de 14.6% do retorno bruto e capacidade de apenas $4.67M. avg_trade_return_pct 0.716% ultrapassa o limiar das comissões, pelo que se trata de um abandono por qualidade do risco/significância da vantagem, não de uma inviabilidade por comissões.

Implementação

Reversão contrária long-short num cesto Binance USD-M de 3 ativos com forte presença do retalho (DOGEUSDT principal + XRPUSDT, SOLUSDT adicionais, todos em barras de 4h). O sinal é um z-score móvel do logaritmo do rácio long/short de GLOBAL ACCOUNT (proxy baseada em contagens do posicionamento do retalho, proveniente do feed Binance Vision de métricas/global_account_ratio). O mapeamento contrário vai contra a multidão nos extremos: z >= +entry_z (retalho maximamente líquido longo) -> curto; z <= -entry_z (retalho maximamente líquido curto) -> longo. Cada uma das três pernas é aberta e fechada de forma independente — stop ATR próprio, saída por reversão à média (z volta a cruzar 0 para o lado da posição) e dimensionamento baseado no risco (risk_frac do capital próprio sobre a distância até ao stop ATR, limitado ao valor nocional do capital próprio alavancado). DOGE operações passam pelo fluxo principal; XRP e SOL são geridas em on_extra_bar através de _submit_entry_instrument / _submit_exit_position.

Resultados da Verificação

Verificação falhou (Camada 4 — revisão QA): - Incompatibilidade no conjunto de instrumentos: a hipótese define explicitamente um cesto de 3 ativos (DOGEUSDT, XRPUSDT, SOLUSDT) e afirma que o cesto IS o mecanismo central contra o sobreajuste e para aumentar o número de operações («um cesto com 3 ativos dilui o ajuste da curva a um único símbolo e aumenta o número de operações para fiabilidade estatística»). O código entregue só usa o instrumento individual DOGE: config.instrument_id=DOGEUSDT.BINANCE,……Mostrar maisMostrar menos

Verificação falhou (Camada 4 — revisão QA): - Incompatibilidade no conjunto de instrumentos: a hipótese define explicitamente um cesto de 3 ativos (DOGEUSDT, XRPUSDT, SOLUSDT) e afirma que o cesto IS o mecanismo central contra o sobreajuste e para aumentar o número de operações («um cesto com 3 ativos dilui o ajuste da curva a um único símbolo e aumenta o número de operações para fiabilidade estatística»). O código entregue só usa o instrumento individual DOGE: config.instrument_id=DOGEUSDT.BINANCE, extra_instruments=[], a docstring da classe diz «single-name» e não existe tratamento multi-instrumento (on_extra_bar não foi substituído). Dois dos três instrumentos nomeados (XRP, SOL) estão ausentes; portanto, o código não implementa a hipótese a que está associado e perde a diversificação e o tamanho da amostra em que a hipótese se baseia. - O Sharpe do sandbox 1.05 CI é [-0.57, 2.66] (abrange zero) em 100 operações, e o resultado depende da perna curta (short_win_rate 0.596 contra long_win_rate 0.417) ao longo de uma única janela de 363 dias. Reduzir o cesto a um ativo deixa a vantagem no limite inferior da mensurabilidade.

Decidir se o DOGE de ativo único satisfaz a intenção; se for necessário um verdadeiro cabaz, é necessário suporte L/S por perna. Se for aceite um ativo único, dar grande peso a OOS/holdout.

UNIVERSE REDUCED FROM 3-ASSET BASKET TO SINGLE-NAME DOGE (analista/PM a regra). A hipótese define explicitamente um cesto de 3 ativos (DOGE/XRP/SOL), que depende do cesto para diluir o ajuste da curva a um único símbolo e aumentar o número de operações; a configuração é de instrumento único DOGEUSDT. O programador revela a limitação da framework (feed suplementar L/S injetado apenas para o instrumento principal) e recusou corretamente uma proxy de retalho de outro ativo por ser inadequada como sinal. DOGE é um ativo nomeado e o mecanismo é idêntico, pelo que não se trata de uma incompatibilidade crítica de ativo incorreto — mas elimina a resistência ao sobreajuste e a fiabilidade do número de operações que a hipótese pretendia obter.

Enviar para otimização/holdout; verificar a estabilidade excluindo os maiores ganhos e confirmar os resultados fora da amostra.

O resultado positivo no sandbox é frágil e impulsionado por caudas pesadas: +36% / Sharpe 1.02, mas CI [-0.58, 2.64] abrange zero, largest_win $11,287 contra avg_win $2,096 (~5x), assimetria +0.53, apenas 100 operações. É encorajador que NOT o padrão invertido sem atividade de RR (avg_win $2,096 > avg_loss $1,447, taxa de ganhos 0.51) e um feed genuíno de retalho não baseado no preço, pelo que a vantagem é plausível, mas precisa de confirmação OOS.

Verifique se o long_short_ratio carregado corresponde a count_long_short_ratio (contas globais), e não a top-trader/taker; se houver ambiguidade, selecione explicitamente a coluna.

Confirme se o campo do rácio é a proxy RETAIL pretendida. O código lê long_short_ratio/longShortRatio, mas as métricas CSV têm count_long_short_ratio (contas globais=retalho), rácios dos principais traders e rácio do volume taker. A vantagem contrária depende especificamente do rácio GLOBAL ACCOUNT baseado em contagens; contrariar os principais traders/taker seria um sinal diferente e possivelmente oposto.

Revisão do Backtest

Sharpe
0,29
Retorno Total
1814,71%
Drawdown Máximo
40,43%
Total de Operações
1695
Taxa de Acerto
46,2%
Fator de Lucro
1,35

avg_trade_return_pct 0.716% está acima do limiar das comissões de futuros; 1695 operações constituem uma amostra decisiva

Positiva em 5 dos 5 anos completos (2022 +82%, 2023 +22%, 2024 +74%, 2025 +209%, 2026 +76% YTD) — não se limita a um único regime

benchmark_meaningful=false e beta ~0 — construção genuinamente neutra ao mercado (não penalizar face a comprar e manter)

Sharpe 0.285 com 95% CI [-0.326, 0.916] a abranger zero — a vantagem ajustada ao risco não se distingue de zero; não pode ser ajustada para um valor promovível de ~1.5

O retorno de +1814% é um artefacto de caudas pesadas (curtose 15.5), impulsionado por ~6 dias isolados no período de crash, incluindo +80.8% durante o colapso de FTX — irregular, sem vantagem consistente

Lacuna estrutural: o pipeline de suporte só fornece o rácio L/S para a perna principal, pelo que todas as 3 pernas negoceiam com o z-score de posicionamento da multidão de DOGE — a diversificação da hipótese baseada em 3 sinais independentes não se concretiza (e é uma limitação do motor que o programador não consegue corrigir)

max_drawdown 40.4% (CI elevado 98.4%), Sortino 0.345, rotação de carteira 784x, impacto de 14.6% do retorno bruto, capacidade de apenas $4.67M — vulnerável a comissões/impacto, pequena escala, elevado risco de cauda

Análise

Desalinhamento entre código e hipótese detetado pelo auditor semântico — o código NOT implementa a hipótese. Volte a codificar a estratégia para implementar a hipótese EXACTLY (instrumento, período, direção, vantagem/mecânica indicada, dimensionamento). Problemas concretos: A hipótese (título + corpo) define um cabaz de LONG-SHORT 3 ativos ao longo de DOGEUSDT/XRPUSDT/SOLUSDT, cujo objetivo declarado é diluir o sobreajustamento à curva de um único símbolo e aumentar o número de transações, mas config.extra_instruments e extra_bar_types estão ambos vazios (apenas DOGEUSDT.BINANCE) e o código implementa uma estratégia de ativo único (um único _ts_arr/_ratio_arr, consultas únicas a self.instrument_id, sem lógica de cabaz/on_extra_bar, a docstring diz «ativo único»). O próprio campo de justificação da estratégia admite que o cabaz DOGE/XRP/SOL foi abandonado por ser «inviável» devido a uma limitação da estrutura de feeds suplementares; assim, a estratégia fornecida é uma reversão de ativo único, em vez do cabaz long-short de 3 ativos alegado pela hipótese.

Histórico de Iterações

Verificação falhou (Camada 2 — cenários sintéticos): Parâmetros usados: ['entry_z', 'risk_frac', 'atr_period', 'z_lookback', 'min_notional', 'atr_stop_mult', 'min_ratio_pts'] Confirme que __init__ define todos os atributos a partir de self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000) - steady_downtrend: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento……Mostrar maisMostrar menos

Verificação falhou (Camada 2 — cenários sintéticos): Parâmetros usados: ['entry_z', 'risk_frac', 'atr_period', 'z_lookback', 'min_notional', 'atr_stop_mult', 'min_ratio_pts'] Confirme que __init__ define todos os atributos a partir de self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000) - steady_downtrend: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000) - flat_ranging: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000) - volatility_spike: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000) - zero_volume: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000) - price_gap: TypeError: RetailCrowdingContrarianReversalLS._extract() aceita 1 argumento posicional, mas foram fornecidos 2 (timestamp da barra: 1735692540000)

Resumo de Resultados

Um retorno manchete enorme pode ser uma ilusão de caudas pesadas — verifique se a vantagem é estatisticamente significativa (Sharpe CI claramente afastado de zero) e não resulta de alguns dias de crash; confirme também que a premissa de diversificação entre vários ativos se concretiza, em vez de ser anulada por uma limitação na entrega de dados que encaminha todas as posições para um único sinal partilhado.

Foi abandonada na etapa de revisão do backtest, antes da otimização, porque a vantagem ajustada ao risco não se distinguia de zero (Sharpe CI a cruzar zero) e os retornos dependiam de um punhado de posições curtas afortunadas em dias de crash, em vez de uma vantagem consistente ao contrariar o retalho; a otimização foi omitida, pois os três parâmetros não conseguiam elevar um Sharpe não significativo para perto de ~1.5, valor necessário para promoção.

Uma estratégia contrária, neutra em relação ao mercado e long-short, num cabaz de ativos 3 da Binance USD-M, dominada por investidores de retalho (DOGE/XRP/SOL, barras de 4h), que contrariava a multidão nos extremos estatísticos do rácio global de contas longas/curtas — vendendo a descoberto quando os investidores de retalho estavam no máximo líquidos em posições longas e comprando quando estavam no máximo líquidos em posições curtas, saindo quando ocorre a reversão à média ou é acionado um stop ATR, com apenas três parâmetros ajustados.

Numa amostra decisiva de 1,695 operações, obteve um retorno de +1814.7% e foi positivo em todos os cinco anos completos, mas a qualidade ajustada ao risco foi fraca: Sharpe 0.285, com um 95% CI de [-0.326, 0.916] a abranger zero, Sortino 0.345, fator de lucro 1.35, taxa de ganhos de 46.2% e drawdown máximo de 40.4%. O retorno foi um artefacto de caudas pesadas (curtose 15.5), sustentado por ~6 dias extremos isolados, incluindo +80.8% durante o colapso de 2022 FTX, juntamente com rotação de 784x, custo de impacto de 14.6% e capacidade de apenas ~$4.67M.

O Stratmill é uma ferramenta de investigação e paper trading, não constitui aconselhamento financeiro nem é uma corretora. Os resultados de backtest e paper trading são hipotéticos. Negociar envolve risco de perda.