Conteúdo do artigo
- Evidências e escopo
- Ilustração
- Processo
- O que as fontes públicas estabelecem
- Uma especificação proposta de base plana causal
- Separe a atividade dentro da base da atividade no rompimento
- Exemplos sintéticos e uma negociação fracassada
- Restrições de execução e de portfólio
- Testando quais componentes contribuem
- Erros comuns
- Lista prática de verificação
- Perguntas frequentes
- Fontes de pesquisa
Evidências e escopo
As informações do livreto público do IBD e do livro da editora foram verificadas. Os gráficos selecionados das ações vencedoras não representam um registro completo das negociações da carteira. O algoritmo abaixo é uma configuração de pesquisa proposta, semelhante a uma base plana, e não uma reprodução completa de CAN SLIM. Nenhum novo backtest foi executado.
Fluxo de trabalho prático
- Validar o universoUtilize os dados de preço, volume e fundamentos disponíveis no período histórico.
- Congele a baseSalve K, F, ATR e o período de espera antes da ruptura.
- Separe as duas funções do volumeDiferencie a atividade tranquila na base da expansão na ruptura.
- Envie um pedido viávelApós o fechamento e o volume serem conhecidos, calcule o stop, o tamanho e a alocação.
- Avalie cada camadaCompare o detector OHLCV com os componentes adicionais CAN SLIM.
O que as fontes públicas estabelecem
O livreto do IBD descreve uma base plana com duração de pelo menos cinco semanas, com uma correção não superior a 15%. Seu ponto de compra tradicional é 10 centavos acima da máxima da base, com volume aproximadamente 40–50% acima da média de volume dos 50 dias anteriores. [1] Essas são regras básicas do mercado de ações, não constantes universais para todas as classes de ativos.
O livro "How to Make Money in Stocks" de William J. O'Neil organiza o CAN SLIM em torno de resultados trimestrais, resultados anuais, novos desenvolvimentos, oferta e demanda, liderança, patrocínio institucional e direção do mercado. [2] Um scanner OHLCV mede apenas parte dessa estrutura. Um resultado produzido sem os dados restantes não deve ser considerado um backtest CAN SLIM completo.
Essa distinção torna a pesquisa mais informativa. Um detector de preço-volume pode estabelecer se a definição da base é reproduzível e economicamente viável. Informações adicionais sobre a empresa ou o mercado podem então ser testadas como filtros separados. Se tudo for combinado ao mesmo tempo, fica difícil determinar se um benefício aparente provém do padrão gráfico, do universo de ações, do filtro de mercado ou de uma estratégia de saída específica.
Uma especificação proposta de base plana causal
Ao final da barra candidata c, inspecione as 25 sessões que terminam em c. Seja K a sua máxima, F a sua mínima e depth=(K−F)/K. Requer-se depth≤0.15. O proxy de tendência proposto é C[c]>SMA200[c] juntamente com SMA200[c]>SMA200[c−20]. A janela fixa, o proxy de média móvel e o buffer de volatilidade abaixo são escolhas de pesquisa e não uma tentativa de reproduzir todas as regras do livro.
Congele K,F,A=ATR14[c] e b=max(2 ticks,0.1A) quando o candidato for criado. Durante as dez sessões seguintes, aceite um cruzamento do preço de fechamento acima de K+b somente quando RVOL50=V[t]/mean(V[t−50..t−1]) for pelo menos 1.5. Cancele um candidato não negociado se o preço cair abaixo de F−b ou se o período de espera expirar. A barra de rompimento não deve ser inserida na base congelada e, assim, elevar seu próprio nível de resistência.
Se forem adicionados filtros fundamentais, utilize o registro de data e hora em que o relatório ficou disponível. O fim de um trimestre contábil não corresponde à data em que seus resultados foram conhecidos. Lucro por ação (EPS) reapresentado em revisões contábeis, classificações setoriais atuais e um universo contendo apenas as ações ainda em operação hoje podem introduzir informações que não estavam disponíveis no momento da decisão histórica.
O registro de dados deve, portanto, conter um valor, um período de observação e uma data e hora de disponibilidade para cada campo fundamental. Um candidato só pode ser avaliado com o registro mais recente disponível no momento da decisão. As informações ausentes devem permanecer ausentes ou acionar uma regra de exclusão declarada; elas não devem ser preenchidas silenciosamente com uma demonstração financeira posterior.
on close c with no active candidate:
K=max(H[c-24:c]); F=min(L[c-24:c]) # inclusive
if depth<=0.15 and trend_proxy: freeze K,F,A,b,expiry=c+10
for c<t<=expiry:
if L[t]<F-b: cancel
elif C[t-1]<=K+b and C[t]>K+b and RVOL50[t]>=1.5:
signal LONG; stop=F-b; enter next executable event
# Comparison baseline: target=entry+2*(entry-stop), time-stop=20 sessions.
Separe a atividade dentro da base da atividade no rompimento
O volume tem duas funções possíveis: identificar a atividade reduzida na base e identificar o aumento da atividade quando a resistência é rompida. A linha de base utiliza apenas o RVOL do rompimento. Um experimento de secagem separado adiciona o volume médio nas cinco sessões finais antes da criação do candidato, dividido pelo volume médio nas 50 sessões precedentes, com um máximo proposto de 0.75. Este é um parâmetro de pesquisa adicional, não um conjunto completo de regras extraído do livro.
O volume diário final só é conhecido após o término da sessão. [3] Não utilize esse valor final RVOL para simular uma entrada anterior na mesma sessão, na primeira travessia. Uma versão intradiária requer o volume cumulativo observado no momento da decisão e uma linha de base de volume esperado comparável para aquele horário do dia.
Teste as condições de seca e expansão de forma independente. Elas podem selecionar ações bastante diferentes: uma base tranquila pode romper com volume normal, enquanto uma base muito ativa pode produzir um rompimento com alto volume. Manter ambas as medições contínuas no conjunto de dados é mais informativo do que armazenar apenas um indicador combinado de aprovação/reprovação. Isso também permite verificações de sensibilidade em torno dos limites propostos sem a necessidade de reconstruir os candidatos a preço.
Exemplos sintéticos e uma negociação fracassada
Suponha K=50, F=45, depth=10%, A=1 e b=0.1, com aprovação do indicador indireto de tendência. Após fixar a base, o preço fecha em 50.3 com 1.8 milhão de ações negociadas, contra a média de um milhão, resultando em RVOL=1.8. Uma entrada executável em 50.4 e um stop em 44.9 implicam risco R=5.5 por ação. O alvo proposto de 2R é 61.4. Com um orçamento hipotético de risco de 550 unidades monetárias, o tamanho preliminar é de 100 ações antes de custos, limites de valor nocional e restrições de liquidez.
Um caso de falha de filtro apresenta o mesmo preço de fechamento, porém em RVOL=1.1. A versão filtrada por volume não entra, enquanto o controle baseado apenas no preço pode entrar. Um caso de falha de negociação ocorre após a entrada em 50.4: uma lacuna faz com que o stop de proteção seja executado em 44.5. A perda é de 5.9 por ação, em vez dos 5.5 planejados. Essa negociação não pode ser removida porque a base posteriormente se mostra insuficientemente atrativa.
Para que uma trajetória sintética seja bem-sucedida, o preço atinge 61.4 antes do stop de proteção ou do limite temporal de 20 sessões. Essa trajetória demonstra como a saída prevista seria contabilizada; ela não estima a frequência com que tal trajetória ocorre. Os ramos filtrados e não filtrados devem manter seus próprios conjuntos de oportunidades reais, incluindo candidatos que nunca resultam em uma negociação.
Restrições de execução e de portfólio
Para um experimento inicial, um stop fora de toda a base é simples. Um stop abaixo de uma mínima menor, próxima à borda direita, é uma implementação separada e pode produzir uma distribuição muito diferente de operações stopadas. Nem este stop estrutural proposto, nem a saída com alvo 2R ou limite de 20 sessões devem ser atribuídos a O'Neil como uma política original completa de gerenciamento de risco.
Após a confirmação, observe uma cotação executável disponível antes de enviar uma nova ordem. Se esse preço criar uma relação de stop inválida ou violar um limite de risco predefinido, registre uma rejeição prévia ao envio. Uma vez que uma ordem tenha sido executada, informações posteriores sobre a lacuna não podem cancelá-la retroativamente. Se o stop e o alvo estiverem ambos dentro da mesma barra OHLC, resolva a ordem com dados mais precisos ou uma regra conservadora aplicada de forma consistente.
Diversas ações podem romper suas bases simultaneamente. Uma carteira precisa de uma política de classificação e alocação estabelecida antes que seus resultados sejam conhecidos: limites de liquidez, risco por ação, concentração setorial, exposição correlacionada e capacidade nocional total. Um backtest não pode comprar todas as ações qualificadas com um capital ilimitado. Registre os candidatos que não receberam alocação de capital para que os efeitos da seleção permaneçam visíveis.
Testando quais componentes contribuem
Comece com o mesmo conjunto de candidatos definidos pelo preço e compare os cenários sem filtro de volume, apenas com filtro de contração de volume, apenas com filtro de expansão e com ambos os filtros. Em seguida, adicione filtros de lucros, força relativa e mercado amplo, um grupo de cada vez. Mantenha inalterados os momentos de entrada, saída, dimensionamento e custos ao medir o efeito incremental de um filtro. Alterar a saída simultaneamente não isola a contribuição do volume.
Utilize um universo reconstruído para cada data histórica que inclua ações excluídas da bolsa, quando a questão de pesquisa assim o exigir. Apresente o número de candidatos, as posições preenchidas, a expectativa líquida em R, o retorno da carteira, o drawdown, a rotatividade e o tempo de manutenção. Uma lista de ações que eventualmente subiram várias centenas por cento não fornece um denominador para estimar a taxa de sucesso das negociações.
Algumas verificações úteis para a implementação incluem uma semana mais curta devido a feriados, um desdobramento de ações durante a base, um pico de volume no dia da ruptura, a divulgação de resultados após o fechamento do mercado e um gap acima da resistência antes da próxima decisão de ordem. Congele os candidatos históricos e reproduza o mesmo prefixo com dados futuros adicionais. Nem os níveis originais nem os dados disponíveis no momento da decisão devem mudar.
Erros comuns
Tratar um padrão como se fosse o sistema inteiro.
Uma base plana não contém os componentes da empresa e do mercado amplo de CAN SLIM.
Utilizando o volume do final do dia no início do dia.
Isso é vazamento de informação futura (look-ahead). O momento da entrada deve respeitar a disponibilidade da observação de volume.
Selecionando apenas as ações remanescentes
Omitir nomes de empresas falidas ou excluídas da bolsa pode inflar os resultados históricos e representar de forma distorcida o universo de dados disponíveis.
Lista de verificação antes de usar este método
Marque cada item após verificá-lo nos seus dados. O progresso fica salvo neste navegador; isso não certifica que a estratégia seja lucrativa.
Perguntas frequentes
O buffer tradicional 10-cent deve ser usado em todos os mercados?
Não automaticamente. O tamanho do tick e o preço nominal diferem. Um buffer baseado em ATR é uma variante de pesquisa separada e deve ser rotulado e testado como tal.
Um RVOL de 1.5 comprova rentabilidade?
Não. Trata-se de uma condição em uma estratégia completa. Seu valor deve ser medido após a consideração dos custos e fora da amostra, comparando-se a mesma estratégia sem esse filtro.
Fontes de pesquisa
Cada fonte sustenta a definição ou evidência descrita ao lado. O pseudocódigo, os exemplos sintéticos e os parâmetros propostos exigem validação separada.
- IBD: How To Recognize Great Performing Stocks — Flat BaseInvestor’s Business Daily. Folheto informativo: geometria de base plana e volume. Os ganhos selecionados em ações não são considerados retornos do sistema. Verificado em: .
- How to Make Money in Stocks, Fourth EditionMcGraw Hill. Metadados e sumário da editora; o livro completo pago não foi lido. Verificado em: .
- TradingView: RepaintingTradingView. Disponibilidade de dados em determinado momento; sem validação de rentabilidade. Verificado em: .
Métodos relacionados
Nota de risco
Este conteúdo apoia a educação e o planejamento de pesquisas, não constitui aconselhamento financeiro. O Backtest é uma simulação histórica, não garante desempenho futuro e não executa operações reais. Os métodos desta biblioteca não são necessariamente recursos disponíveis no aplicativo. Consulte a metodologia e a central de aprendizado.
Valide as regras antes de arriscar capital real
Verifique o suporte do aplicativo, os dados e cada operação simulada; detectores avançados podem exigir uma implementação própria.
Baixe o Backtest na App Store