Conteúdo do artigo
- Evidências e escopo
- Ilustração
- Processo
- Uma zona representa observações já conhecidas.
- Limite toda a largura do cluster, sem encadear vizinhos
- Construção de zona numérica e recuperação perdedora
- Conte visitas independentes, não barras consecutivas
- Rupturas e reações exigem regras de estratégia distintas.
- O volume de velas não é o volume negociado na zona.
- Teste o histórico das zonas e as oportunidades reais
- Erros comuns
- Lista prática de verificação
- Perguntas frequentes
- Fontes de pesquisa
Evidências e escopo
A CME fornece contexto de suporte/resistência, o scikit-learn define conceitos de ligação e a pesquisa de Osler sobre câmbio discute cascatas de stop. Nenhuma delas valida a rentabilidade do detector de agrupamento sequencial proposto.
Fluxo de trabalho prático
- Receba um pivôUtilize extremos confirmados do mesmo tipo.
- Teste a inclusão no clusterVerifique o diâmetro total após adicionar o novo preço.
- Qualifique o toqueExija que o preço tenha se afastado da zona e que haja intervalo de tempo suficiente.
- Publicar uma versãoCongelar limites, mediana e identificadores de membros.
- Observe a reaçãoAplique uma estratégia de rompimento ou recuperação definida separadamente.
Uma zona representa observações já conhecidas.
A CME inclui máximas e mínimas anteriores como pontos de referência para suporte e resistência em [1]. Em termos de software, uma classificação mais precisa seria um conjunto de extremos históricos confirmados próximos uns dos outros. Essa observação não prova que compradores ou vendedores estejam aguardando nesses pontos, ou que a próxima visita resultará em uma recuperação.
O registro de cluster proposto contém cluster_id, tipo HIGH ou LOW, IDs de pivô dos membros, mínimo, máximo, mediana, horário da última confirmação e uma contagem de toques independentes. Todos os membros devem ter sido confirmados antes que a zona seja utilizada. Uma zona de máximas iguais descreve a geometria do preço; chamá-la de "parede do livro de ordens" requer evidências concretas do livro de ordens.
Separe o detector da estratégia que o utiliza. A mesma região pode sustentar uma hipótese de operar contra o movimento, um rompimento de continuação ou um reteste posterior de inversão de papéis. Uma zona que se torna inválida para uma hipótese não apaga as observações históricas usadas para construí-la.
Limite toda a largura do cluster, sem encadear vizinhos
Defina epsilon=max(2 ticks,0.15×A_ref), com A_ref congelado quando um cluster for criado. Esses são parâmetros propostos. Adicione um novo pivô somente se o máximo menos o mínimo resultante permanecer dentro de 2epsilon. Essa restrição de diâmetro se assemelha à ideia de distância máxima por trás da ligação completa [2], mas o algoritmo sequencial aqui não é uma implementação completa de AgglomerativeClustering.
Se vários clusters forem elegíveis, escolha a mediana mais próxima e desempate pelo ID do cluster mais antigo. Caso contrário, crie um novo cluster. W=200 barras e min_separation=5 são pontos de partida para a pesquisa. Mantenha os clusters HIGH e LOW separados até que um protocolo específico de inversão de papéis seja definido.
Inicialize o cluster com um toque independente. Atualize a associação geométrica ao admitir membros posteriores, mas aumente a contagem de toques somente quando tanto o intervalo de tempo quanto o afastamento prévio do preço forem suficientes. Confundir membros com toques permite que uma faixa lateral crie evidência aparente.
Quando um cluster ativo expira, congele seu histórico final em vez de reciclar seu ID. Um novo cluster com o mesmo preço é um novo objeto. Armazene epsilon e sua referência ATR com o cluster para que uma mudança posterior na volatilidade não possa expandir silenciosamente uma zona antiga para absorver novos pivôs inconvenientes.
on_confirmed_pivot(p):
candidates = active_clusters_of_same_kind(p)
eligible = [c for c in candidates
if max(c.max,p.price)-min(c.min,p.price) <= 2*c.eps]
c = nearest_median_then_oldest_id(eligible)
if c is None:
c = new_cluster_with_single_member(p, touch_count=1,
last_touch_index=p.index)
return
independent = p.index-c.last_touch_index >= min_separation
independent &= price_departed_frozen_zone_between(c.last_touch_index,p.index,c)
add_pivot_once(c,p)
if independent:
c.touch_count += 1
c.last_touch_index = p.index
if c.touch_count >= 2:
publish_new_zone_version(c, available_at=p.confirmed_at)
# Active candidates retain their original zone-version snapshot.
Construção de zona numérica e recuperação perdedora
Exemplo sintético: as referências ATR=2 e tick=0.01 resultam em epsilon=0.30 e um diâmetro máximo de 0.60. Máximas independentes confirmadas em 100.00, 100.35 e 100.55 produzem [100.00,100.55] com mediana de 100.35. Uma nova máxima de 100.80 é rejeitada porque a largura total se tornaria 0.80, embora esteja a apenas 0.25 de seu membro existente mais próximo.
Isso explica por que a distância do membro mais próximo é insuficiente. Uma cadeia 100,100.4,100.8,101.2 pode ser conectada por pequenas lacunas adjacentes, mesmo abrangendo uma região ampla. Se qualquer reação posterior em qualquer ponto dessa região for considerada um reteste bem-sucedido, o detector perde um critério útil de falsificação.
Exemplo de trajetória vencedora: o preço se estende acima de 100.55 até 100.90 e fecha novamente em 100.20, criando uma possível oportunidade de entrada vendida após o preço retornar à zona. A entrada em 100.10, o stop loss em 101.00 e o alvo em 98.30 implicam um alvo bruto em 2R. Em uma trajetória de falha, o preço fecha em 101.10 e se mantém acima da zona. Uma posição vendida já executada deve reter sua perda de acordo com a política de stop loss; a zona não pode ser movida para cima posteriormente para preservar artificialmente a classificação.
Teste um novo ponto de pivô exatamente no limite do diâmetro e um tick além dele. Crie também um ponto equidistante de duas medianas válidas. Os mesmos dados devem sempre selecionar o mesmo cluster, independentemente da ordem de iteração do dicionário ou de qual gráfico foi carregado primeiro.
Conte visitas independentes, não barras consecutivas
Cinco barras adjacentes próximas a 100.3 geralmente representam uma visita, não cinco testes independentes. A reinicialização proposta exige que o fechamento saia da zona por pelo menos o valor de um ATR fixado previamente e que pelo menos cinco barras se passem antes que um toque posterior possa ser contabilizado. Isso define explicitamente um retorno de fora da região.
O evento de partida precisa de seu próprio registro de data e hora. Uma pivô confirmada posteriormente pode ter ocorrido antes que a partida se tornasse disponível; processe esses eventos em uma ordem declarada e evite atribuir partidas futuras a toques anteriores. Se a confirmação da pivô for atrasada, armazene tanto a ocorrência quanto a confirmação da pivô para que a qualificação do toque possa ser reconstruída.
A idade, os retornos independentes e a magnitude do afastamento do preço da zona podem se tornar características da zona, mas os toques futuros não devem aumentar a pontuação histórica. Se os testes repetidos fortalecem uma zona ou aumentam a probabilidade de sua ruptura é uma questão empírica. A contagem de toques não é uma probabilidade calibrada, e adicionar dez pontos percentuais por toque exigiria evidências além do detector.
Rupturas e reações exigem regras de estratégia distintas.
Uma linha de base de recuperação proposta aguarda um fechamento dentro da zona congelada e entra em um evento executável subsequente. Uma linha de base de rompimento proposta requer um fechamento além do max+buffer e pode definir um período de espera de reteste separado. Cada uma precisa de sua própria invalidação, parada, alvo e expiração; o detector de zona não os escolhe.
O resumo oficial de Osler relata evidências de que ordens de stop-loss podem contribuir para acelerar os movimentos cambiais ([3]). Esse mecanismo não estabelece a quantidade de stops em torno de um cluster de alta (OHLCV) nem garante que uma varredura se reverterá. Descreva o evento observável como uma excursão, rompimento de fechamento ou recuperação, a menos que dados mais robustos justifiquem uma classificação diferente.
Armazene a versão exata da zona utilizada por uma ordem. Um novo membro pode publicar uma versão mais ampla ou deslocada para futuros candidatos, enquanto a negociação existente mantém sua lógica original. Se uma estratégia permite atualizações de stop ou contexto, registre-as como ações explícitas com tempos de ativação, em vez de redesenhar a configuração original.
O volume de velas não é o volume negociado na zona.
OHLCV fornece o volume total de uma barra, não a fração negociada dentro da zona. Somar todo o volume das barras que tocam a região e chamá-lo de volume a preço é impreciso, especialmente para barras com ampla amplitude de negociação. Dados em nível de negociação ou uma aproximação divulgada são necessários para estimar uma distribuição de preços.
As características propostas incluem o RVOL da barra de rompimento, o volume de recuo em relação a uma linha de base comparável e a atividade média por visita independente. Mantenha o volume fora da geometria para que uma ablação possa removê-lo sem alterar a composição do cluster. A atividade elevada pode sinalizar um ambiente diferente, além de piorar o preço de execução obtido.
Normalize a atividade intradiária por tempos de sessão comparáveis e distinga dados ausentes de baixo volume real. Quando as visitas tiverem durações diferentes, compare taxas ou janelas de igual duração em vez de apenas totais. Relate se o volume adiciona informações líquidas após o condicionamento por intervalo e volatilidade.
Teste o histórico das zonas e as oportunidades reais
A reprodução em fluxo contínuo e o processamento em lote devem publicar versões idênticas da zona. Os casos de teste precisam de tentativas de encadeamento, empates por distância igual, expiração W, múltiplas barras em uma única visita e confirmações de pivô atrasadas. Cada negociação histórica deve referenciar um version_id armazenado; o gráfico de hoje, por si só, é insuficiente para reconstruir uma decisão antiga.
Compare uma estratégia de pivô único com variantes idênticas de dois e três toques. Apresente o número de zonas, o tempo de espera, a probabilidade de revisita, a sobreposição, a exposição e os retornos líquidos. As zonas nunca revisitadas permanecem no conjunto de oportunidades de pesquisa; manter apenas aquelas que geraram operações vencedoras enviesa o resultado.
A sobreposição exige uma regra de portfólio. Várias zonas próximas podem disparar ordens no mesmo evento de mercado, produzindo uma exposição concentrada que parece diversificada pelo ID do sinal. Combine os candidatos sob uma política registrada ou limite a exposição simultânea e, em seguida, mantenha as observações originais do detector para análise.
Erros comuns
Uma cadeia se estende por uma zona ilimitada.
A distância entre pares mais próximos não restringe a extensão total do cluster.
As barras laterais aumentam a contagem de toques.
Sem exigir o afastamento do preço da zona, uma visita prolongada parece várias evidências independentes.
Inferindo ordens ocultas a partir da geometria
Um conjunto de extremos não é um mapa medido diretamente de ordens stop ou liquidez em repouso.
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 centro da zona deve ser a média ou a mediana?
A mediana é menos sensível a um membro atípico, mas os gatilhos geralmente devem referenciar limites explícitos. Compare as definições de centro se o centro realmente afetar a estratégia.
Será possível conciliar o antigo apoio com a nova resistência?
Um protocolo de inversão de papéis pode ser definido após uma quebra confirmada e um novo teste. Preserve o histórico de estado em vez de mesclar automaticamente todos os preços próximos.
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.
- Support and ResistanceCME Group. Leia a discussão educativa sobre extremos anteriores e regiões de preços. Verificado em: .
- AgglomerativeClusteringscikit-learn. Leia as definições de ligação completa e ligação simples. Verificado em: .
- Stop-Loss Orders and Price Cascades in Currency MarketsCarol L. Osler, Federal Reserve Bank of New York. Leia apenas o resumo oficial; não se trata de um backtest deste detector de zonas. 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