Conteúdo do artigo

Evidências e escopo

As fontes corroboram fórmulas de canal, deslocamento de dados e simulação de tempo de ordens. Nenhuma alegação de seguimento de tendências históricas é considerada como evidência de que a entrada, o limite de volume e a saída propostos aqui sejam lucrativos.

Dados e mercadosUtilize um instrumento e uma sessão definidos. Os contratos futuros exigem um contrato explícito e uma convenção de rolagem; as ações exigem um ajuste consistente de desdobramento entre máximas, mínimas e preços executáveis.
Períodos gráficos da pesquisaN=20 em H=1 ou dados diários é uma configuração experimental, não uma recomendação universal. A duração da sessão e os custos de execução alteram seu significado.
Os preços oscilam entre 99 e 105, fechando em seguida acima de 105 com aumento de volume e continuando a subir no exemplo sintético.Abrir ilustração em tamanho completo
Preço e volume sintéticos originais. Os dois níveis representam um instantâneo pré-gatilho, e não um canal móvel recalculado a cada ponto plotado.

Fluxo de trabalho prático

Fluxo de trabalho de Extremos Donchian: referências prévias para rompimentos e retornos
As etapas completas aparecem abaixo. Em cada etapa, dados ausentes ou condições não atendidas exigem o registro de um motivo de rejeição.
  1. Colecione barras NUtilize as observações concluídas anteriores à barra atual.
  2. Congelar U e DArmazene o preço e a idade de cada extremo.
  3. Classifique o eventoUm rompimento confirmado no fechamento difere de um avanço além do nível seguido de retorno.
  4. Aplicar volumeUse apenas variáveis observadas disponíveis ao enviar a ordem.
  5. Simular execuçãoAplique a política de entrada, parada e expiração registradas.

Um limite móvel não é um swing confirmado

Donchian utiliza os extremos de N observações; o TradingView descreve as bandas superior e inferior e seu ponto médio [1]. Ao contrário de um pivô bilateral, não requer uma reversão subsequente. A janela anterior completa já é conhecida quando a próxima barra começa. Durante uma tendência, seu limite superior pode continuar subindo sem funcionar como uma resistência permanente.

A definição causal proposta é U[t]=max(H[t−N:t]), D[t]=min(L[t−N:t]), M[t]=(U[t]+D[t])/2, com o ponto final superior da fatia excluído. Assim, a janela termina em t−1. Se H[t] estiver incluído em U[t], a condição H[t]>U[t] torna-se impossível por construção.

Essa simples distinção afeta todo o experimento. Um indicador gráfico pode exibir uma faixa incluindo a barra ativa para fins visuais; a estratégia ainda precisa especificar qual instantâneo histórico utiliza. Armazene o registro de data e hora do extremo subjacente, bem como seu preço, para que diagnósticos posteriores possam distinguir novos limites de extremos antigos prestes a expirar.

Crie a referência antes de classificar o evento.

Em pandas, deslocar valores separa a janela de referência da linha que está sendo avaliada ([2]). Uma implementação possível é high.shift(1).rolling(N).max(). Deslocar um índice com `freq` não substitui o deslocamento dos valores observados em relação à linha de decisão. É necessário utilizar uma janela válida completa, em vez de permitir silenciosamente um número variável de observações.

A linha de base classifica um fechamento completo além de uma banda com b=max(2 ticks,0.1×ATR[t−1]); N=20 e 0.1 são configurações de pesquisa propostas. Para classificações imediatas de uma barra, calcule uma nova referência de janela anterior a cada barra. Para um candidato de varredura e recuperação de múltiplas barras, congele o nível original quando o candidato começar.

Caso contrário, a barra de excursão entra na próxima janela deslizante e move o limite que está sendo recuperado. Retornar abaixo de um limite atualizado pode ser um evento diferente de retornar abaixo do nível realmente ultrapassado. Mantenha candidate_id, frozen_level, o carimbo de data/hora de referência e a expiração para que a pergunta pretendida permaneça estável durante toda a configuração.

U = max(H[t-N:t]); D = min(L[t-N:t])
b = max(2*tick, 0.1*ATR[t-1])
if no_active_setup and C[t] > U+b:
    emit('up_breakout', signal_at=t, frozen_level=U)
if no_active_setup and H[t] > U+b and C[t] < U:
    emit('upper_reclaim', signal_at=t, frozen_level=U)
# These labels represent different hypotheses.
# A close-confirmed order can be processed only after close t.

Um mesmo limite pode produzir diferentes resultados válidos.

Exemplo sintético: as 20 barras anteriores têm U=105, D=99 e ATR=1. Com tick=0.01, b=0.10. Uma barra atual com H=106 e C=105.4 gera um rompimento de alta confirmado no fechamento. Uma compra proposta na próxima abertura a 105.5, stop em 103.9 e alvo em 108.7 tem risco inicial de 1.6 ponto e alvo de 2R antes dos custos.

Caminho de falha: após a abertura em 105.5, o preço cai para 103.8. O stop pode ser atingido mesmo que o fechamento que disparou a entrada tenha atendido a todas as condições do detector. Se, em vez disso, a barra de disparo original tivesse H=106 e C=104.7, não seria um rompimento de fechamento. Poderia ser um retorno abaixo da banda superior para uma estratégia de venda a descoberto especificada separadamente. Não rotule um rompimento perdedor como varredura após observar a perda.

Um caso mais sutil ocorre quando a máxima anterior de 105 sai da janela de N barras e U cai para 104. O preço em 104.5 pode agora ultrapassar o canal sem atingir uma nova máxima recente. Esse é um evento legítimo de janela móvel. Excluí-lo requer uma condição adicional registrada sobre a origem ou o movimento do nível de referência.

Teste a igualdade deliberadamente. Um fechamento exatamente em U+b é rejeitado pela condição estrita de "maior que" nesta linha de base. O arredondamento de ticks deve ocorrer sob uma convenção fixa antes do envio da ordem; caso contrário, o ruído de ponto flutuante pode determinar se uma observação está logo acima ou exatamente em um limite.

Cronograma, invalidação e expiração do pedido

O TradingView distingue a criação de ordens após o fechamento da execução no próximo tick disponível em seu emulador [3]. Portanto, a linha de base proposta, confirmada pelo fechamento, precisa de um preço executável subsequente, spread e slippage. Uma ordem de compra stop acima de U é um modelo diferente: ela pode ser executada dentro da barra e reverter antes do fechamento. Um fechamento desfavorável não pode apagar retroativamente essa execução.

As opções de saída incluem um stop estrutural fixo, um trailing stop mais curto na parte inferior do canal ou uma saída por tempo. Selecione uma configuração simples antes da avaliação. Para uma entrada em um reteste, defina até onde o preço pode retornar, qual reação se qualifica e por quantas barras a ordem permanece válida. Um rompimento que nunca é retestado representa uma oportunidade perdida, não uma mudança automática para perseguir o preço.

Uma barra que toca tanto o stop quanto o alvo exige dados mais precisos ou uma convenção de ordenação conservadora declarada. Os testes de gap devem alterar a execução realizada e o risco sem alterar o timestamp do sinal original ou a referência congelada. Uma rejeição de execução antes do envio e uma ordem executada perdedora são resultados diferentes.

Um trailing stop móvel também precisa de uma regra de temporização. Se a banda inferior de ontem for atualizada após o fechamento de hoje, o novo stop não poderá proteger movimentos intrabarra anteriores. Salve cada revisão do stop e seu tempo de ativação, em vez de aplicar o trailing stop final retroativamente ao longo da barra.

O volume pode selecionar movimentos mais fortes e execuções mais caras.

Um filtro de breakout proposto requer RVOL≥1.5 em relação ao histórico de tempo de sessão comparável. Em uma decisão de fechamento completo, o volume total da barra de gatilho está disponível. Para uma ordem stop de entrada enviada anteriormente e ainda pendente, somente o volume já observado no momento da submissão pode determinar se a ordem existe. O volume total da barra medido após sua execução não pode se tornar uma permissão de entrada retroativa.

Separe um ramo baseado apenas em preço, um ramo baseado em liquidez mínima e um ramo baseado em volume anormal. Estes respondem a perguntas diferentes: negociabilidade básica versus informação incremental. Um subconjunto com alto volume de RVOL pode se mover mais, mas também apresentar gaps e spreads maiores, portanto, a resposta bruta do preço é insuficiente.

Compare a expectativa líquida, a exposição e o número de oportunidades descartadas. Iguale os orçamentos de risco entre as variantes e apresente os resultados por liquidez ou horário do dia, utilizando definições de grupo estabelecidas com base em dados históricos. Uma taxa de acerto mais alta em um pequeno subconjunto não melhora automaticamente o retorno ou o drawdown da carteira.

Para recuperações em múltiplas barras, armazene o volume de excursão e o volume de recuperação separadamente. Sua proporção pode ser estudada, mas intervalos de comprimento desigual precisam de normalização. O agregado OHLCV não permite determinar se a atividade ocorreu precisamente no nível de Donchian ou em outro ponto dentro de uma barra larga.

Teste o cálculo de referência antes da estratégia.

Registre uma pequena grade de desenvolvimento, como N=10,20,40. Registre os preços das bandas, os horários dos extremos e idade do nível em cada sinal, incluindo se o nível se moveu porque um extremo anterior expirou. Isso separa o comportamento econômico dos efeitos da janela mecânica e facilita a interpretação da sensibilidade.

Um teste de causalidade direta altera H[t] mantendo o prefixo fixo: U[t] deve permanecer inalterado. Alterar H[t−1] pode alterar U[t]. Adicione casos de teste com barras ausentes, feriados, gap de abertura e dados desatualizados. Compare os cálculos em lote com uma implementação de streaming para que erros de defasagem de uma barra não se ocultem em um gráfico visualmente plausível.

Somente então avalie um período fora da amostra bloqueado com relação à rotatividade, taxas, exposição, drawdown e sensibilidade de execução. Se selecionar notícias especiais, subconjuntos de sessões de abertura ou fechamento, considere-os como testes de pesquisa. Relate candidatos reprovados e retestes que nunca ocorreram, não apenas negociações concluídas a partir de limites favoráveis.

Erros comuns

Deixar o nível acompanhar a excursão

Voltar para dentro de uma banda recém-atualizada pode ser diferente de recuperar o limite original que o preço rompeu.

Confundir um toque com um cruzamento

A igualdade em U não é automaticamente uma rompimento; fixe o arredondamento dos ticks e as regras de comparação.

Janelas curtas escondem seu custo de rotatividade

Um N menor pode criar sinais frequentes cujos custos de execução superam sua vantagem bruta.

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.

0/8 itens

Perguntas frequentes

Deve-se vender quando o preço toca a banda superior?

Não há conclusão geral. Operar contra o movimento ao tocar o limite e comprar um rompimento são hipóteses opostas, que exigem definições e testes separados.

Donchian pode substituir os pivôs?

Ele pode fornecer uma referência de ruptura, mas não oferece a confirmação de reversão do lado direito ou a ordenação de oscilação de um detector de pivô.

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.

  1. Donchian ChannelsTradingView. Leia as fórmulas do canal e seus usos descritivos. Verificado em: .
  2. pandas.Series.shiftpandas. Foi lida a API para verificar o deslocamento de valores entre linhas. Verificado em: .
  3. Pine Script: StrategiesTradingView. Leia sobre a criação de ordens, o próximo tick disponível e o comportamento das ordens de stop. 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