Conteúdo do artigo
- Evidências e escopo
- Ilustração
- Processo
- Entenda os rótulos antes de interpretar as cores.
- Separe as comparações diagonais das proporções da mesma linha.
- Um cálculo de seis linhas e um cluster invalidado
- A continuação e a falha exigem máquinas de estado diferentes.
- A reprodução histórica deve corresponder à agregação em tempo real.
- Teste se a pilha adiciona mais do que alto volume.
- Erros comuns
- Lista prática de verificação
- Perguntas frequentes
- Fontes de pesquisa
Evidências e escopo
O Sierra Chart documenta Numbers Bars e comparações diagonais bid/ask. O TradingView descreve uma classificação de direção de preço intrabarra que não é automaticamente um campo de lado agressor fornecido pela bolsa. O Bybit fornece um exemplo de feed com semântica de tomador. Nenhuma lucratividade verificada foi estabelecida aqui para o limite proposto 3×. [1] [2] [3]
Fluxo de trabalho prático
- Verificar a semântica do feedSepare rótulos do lado agressor (taker) das aproximações pela direção do preço.
- Execuções agregadasUtilize uma tabela de preços fixos e remova as negociações duplicadas.
- Compare diagonalmenteMantenha a regra da proporção, do limite mínimo de quantidade e do denominador zero.
- Confirme o comportamento do preço.A continuação e a falha seguem máquinas de estado separadas.
- Reproduza a execução realistaUse horários de recebimento dos dados e execuções viáveis.
Entenda os rótulos antes de interpretar as cores.
O volume no ask geralmente registra execuções iniciadas por compradores no preço ask, enquanto o volume no bid registra execuções iniciadas por vendedores no preço bid. Se a bolsa fornece o campo de lado do taker, siga esse esquema. Se a classificação é inferida por cotações ou regra de tick, preserve o método e uma categoria desconhecida. A fonte examinada documenta Bybit publicTrade.S como o lado do taker. [3]
O gráfico footprint do TradingView classifica observações pela direção do preço dentro da barra, e a granularidade histórica disponível pode variar. [2] Assim, rótulos como compra e venda não precisam medir a mesma coisa em todas as plataformas. Uma vela verde com delta classificado negativo não é automaticamente um erro: o movimento entre abertura e fechamento e os totais de execução com sinal respondem a perguntas diferentes.
O Footprint registra o que foi negociado. Ele não revela todas as ordens em espera, a fila completa à frente de uma ordem ou a liquidez oculta que nunca foi executada. Um grande grupo de compradores agressivos pode encontrar um volume suficiente de vendedores passivos para interromper o preço. Uma resposta subsequente do preço é necessária antes de considerar esse grupo como uma continuação ou uma tentativa fracassada.
Separe as comparações diagonais das proporções da mesma linha.
Na comparação diagonal descrita pelo Sierra Chart, o volume executado no ask ao preço p é comparado com o volume executado no bid no preço vizinho inferior; o volume no bid em p é comparado com o volume no ask no preço superior. [1] Este artigo usa linhas de um tick e define um desequilíbrio de alta quando ask[p] é pelo menos 3×bid[p−tick], ask[p] é de pelo menos 30 unidades e o denominador do volume no bid é positivo.
Três linhas consecutivas qualificadas formam um desequilíbrio acumulado proposto. A proporção, o piso e o comprimento necessário são configurações de pesquisa, não constantes universais validadas. A quantidade mínima deve ter uma unidade declarada: 30 contratos futuros, ações ou unidades de criptomoeda têm significados econômicos muito diferentes.
Quando o denominador da contraparte é zero, esta versão registra um estado separado para a contraparte zero, em vez de tratar automaticamente a razão como infinita. Uma plataforma que permite denominadores zero implementa uma variante diferente. Teste-a separadamente com um limite mínimo de volume explícito para que uma execução isolada e minúscula não possa criar um sinal exagerado.
"Consecutivo" significa linhas de preços adjacentes na grade fixa. Linhas ausentes ou vazias não podem ser removidas antes da busca por sequências, pois isso pode fazer com que desequilíbrios separados pareçam empilhados. Preserve a grade e defina se a linha mais alta ou mais baixa precisa de um vizinho fora do intervalo de barras exibido.
for p in ordered_price_rows(closed_bar):
a = ask_volume.get(p, 0)
b = bid_volume.get(p-tick, 0)
eligible[p] = b > 0 and a >= 30
buy_imbalance[p] = eligible[p] and a >= 3*b
runs = consecutive_true_rows(buy_imbalance)
stack = first((run for run in runs if len(run) >= 3), default=None)
if stack is not None:
zone_low, zone_high = row_bounds(stack)
signal_available_at = closed_bar.received_at
Um cálculo de seis linhas e um cluster invalidado
As linhas sintéticas contêm quantidades de bid/ask de 40/10 em 100.00, 20/120 em 100.25, 10/80 em 100.50, 12/40 em 100.75, 9/15 em 101.00 e 8/10 em 101.25. O volume no ask de 120 em 100.25 é comparado ao volume no bid de 40 em 100.00, resultando em 3×. O volume no ask de 80 é comparado ao volume no bid de 20, resultando em 4×; o volume no ask de 40 é comparado ao volume no bid de 10, também resultando em 4×.
As três linhas adjacentes atendem à razão e ao mínimo de 30 unidades. O volume no ask de 15 em 101.00 falha no mínimo, mesmo que um denominador menor pudesse gerar uma razão alta. A ilustração usa esses valores exatos para permitir conferir manualmente a sequência destacada.
Em um cenário de falha, suponha que uma sequência de desequilíbrios compradores se forme imediatamente abaixo da resistência, o preço não consiga fechar acima dela e a próxima barra cruze abaixo do agrupamento. Isso é compatível com uma hipótese de absorção, mas o footprint por si só não permite identificar o vendedor passivo nem garantir uma reversão.
A comparação 300% exibida é uma razão entre duas quantidades de volume definidas, e não uma probabilidade de sucesso 75%. Converter uma razão em uma probabilidade de negociação exigiria uma distribuição condicional de resultados estimada independentemente e sua incerteza.
A continuação e a falha exigem máquinas de estado diferentes.
Uma continuação de compra proposta requer um rompimento de um nível de preço previamente congelado, um fechamento acima da região e uma sequência de desequilíbrios compradores qualificada. Aguarde o primeiro reteste dentro de cinco barras que sustente zone_low, e então um fechamento acima da máxima da barra de reteste. Entre no próximo evento com execução possível e coloque o stop abaixo de zone_low com um buffer predefinido. Cancele a ordem se o preço fechar abaixo de zone_low antes da confirmação.
A versão proposta de posição vendida após falha exige um grupo de desequilíbrios compradores na resistência, um fechamento de volta abaixo da região e o rompimento da mínima do evento. O stop fica acima da máxima do evento. Não transforme uma compra perdedora em posição vendida nas mesmas estatísticas, a menos que a transição, o momento de execução e o risco adicional tenham sido definidos antes do teste.
Ambas as variantes exigem financiamento ou custos de empréstimo aplicáveis e execuções realistas. Em um mercado rápido, esperar por uma barra completa pode consumir grande parte do movimento. Esse atraso faz parte do método, e não é motivo para atribuir uma execução anterior usando a pegada final que se tornou visível posteriormente.
Registre se a zona abrange os centros das linhas ou os limites completos das linhas. Para a grade de um tick, defina explicitamente as bordas inferior e superior antes de definir um stop. Uma discrepância de um quarto de tick ou de um tick pode alterar significativamente o múltiplo de risco quando o stop proposto for apertado.
A reprodução histórica deve corresponder à agregação em tempo real.
Armazene identificadores de sequência, registros de data e hora da bolsa, registros de data e hora de recebimento, IDs de negociação e volume não classificado. Remova duplicatas com uma chave documentada e trate as correções de acordo com uma política que respeite a disponibilidade dos dados em cada instante. Se os dados históricos utilizarem proxies de um minuto, enquanto os sinais em tempo real utilizarem negociações individuais, as observações não terão mais a mesma granularidade ou classificação.
Faça o replay com o mesmo feed e as mesmas regras de agregação antes de comparar a rentabilidade. Um instantâneo da profundidade de mercado não consegue reconstruir exatamente todas as execuções entre instantâneos. Quando ocorrerem lacunas na sequência, marque as barras afetadas e aplique uma política de qualidade predefinida em vez de inferir os lados da negociação ausentes a partir do resultado.
Alterar o número de ticks por linha modifica tanto as proporções quanto os comprimentos das pilhas. Congele o tamanho da linha quando um candidato for criado e evite o dimensionamento automático com base no conjunto de dados futuro completo. Se o dimensionamento adaptativo for desejado, defina sua janela histórica e atraso de disponibilidade como parte de uma estratégia separada.
Use o tempo de recebimento para decisões que precisam levar em conta o atraso da rede. Os registros de data e hora da bolsa são úteis para ordenar eventos, mas não comprovam que um operador já os recebeu. Simule a entrega atrasada e mensagens fora de ordem para verificar se um sinal baseado no fechamento permanece reproduzível.
Teste se a pilha adiciona mais do que alto volume.
Em rompimentos de preço idênticos, compare sem filtro de pegada, apenas com volume total, apenas com delta e com desequilíbrio acumulado. Mantenha as entradas e saídas fixas ou separe explicitamente um estudo de timing de um estudo de seleção. Como os desequilíbrios acumulados geralmente ocorrem em barras ativas, pergunte-se se o padrão espacial adiciona informações além da quantidade de atividade.
Apresente o relatório de expectativa líquida em R, taxa de registros de negócios ausentes, número de ordens não preenchidas, drawdown e sensibilidade à latência e ao spread. Selecione os limiares e os valores mínimos de quantidade nos dados de treinamento e, em seguida, bloqueie o teste cronológico final. Inclua os candidatos rejeitados para que a frequência reduzida de negociações seja visível em vez de oculta.
A coloração correta de uma tabela sintética verifica a aritmética e o renderizador. Não valida uma estratégia executável em dados de transações reais. Uma conclusão útil indica a classificação dos dados, o mercado, o período, os custos e as condições de falha sob as quais qualquer melhoria observada se mantém.
Erros comuns
Supor que mais células verdes garantem uma alta
Compras agressivas podem encontrar um volume substancial de vendas passivas; a resposta do preço continua sendo importante.
Inferir todo o livro de ordens pendentes
Uma pegada descreve as execuções, não cada pedido pendente ou posição na fila.
Testando proxies e negociando em um feed ao vivo diferente.
Diferenças na resolução e na classificação podem alterar os sinais mesmo quando os gráficos parecem semelhantes.
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 desequilíbrio de 300% significa uma probabilidade de vitória de 75%?
Não. Trata-se de uma comparação entre duas quantidades de volume, não de uma estimativa da probabilidade de um resultado.
É possível que o OHLCV comum reconstrua uma pegada exata?
Não. Pode fornecer uma aproximação, mas não revela a distribuição precisa das negociações a preços e a classificação dos agressores.
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.
- Numbers BarsSierra Chart. Definições de volume no bid/ask e comparações diagonais em Numbers Bars. Verificado em: .
- Volume footprint charts: a complete guideTradingView. Limitações na classificação da direção do preço intrabar e na granularidade histórica. Verificado em: .
- Public TradeBybit. Identificadores de negociação, registros de data e hora e esquema do lado do tomador; nenhuma alegação de desempenho da estratégia. 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