Conteúdo do artigo
- Evidências e escopo
- Ilustração
- Processo
- O volume seleciona a ação; o preço fornece a direção.
- Separe a configuração do artigo das opções de implementação.
- Uma máquina de estados impede entradas retroativas.
- O capital alocado é diferente do patrimônio líquido total da conta.
- Sucesso sintético, fracasso e barras ambíguas
- Leia os resultados públicos dentro de seu escopo real.
- Erros comuns
- Lista prática de verificação
- Perguntas frequentes
- Fontes de pesquisa
Evidências e escopo
Para 2016–2023, os autores reportam retorno total de +1,637%, IRR de 41.6%, Sharpe de 2.81 e drawdown máximo de 12%, com comissão de $0.0035 por ação e sem modelo separado de slippage. São resultados de pesquisa reportados, não uma nova replicação nem uma conta auditada. [1]
Fluxo de trabalho prático
- Prepare a históriaUtilize o universo e os dados históricos disponíveis antes da sessão.
- Espere o término da janela de aberturaAguarde os cinco minutos completos e registre quando seus dados ficam disponíveis.
- Congelar classificações RVOLFixe as ações escolhidas, a direção e os orçamentos de capital.
- Envie ordens stop de entradaAtivar pedidos após o processamento; reter entradas rejeitadas e não processadas.
- Proteger e liquidarProteja as quantidades efetivamente executadas e encerre posições conforme o calendário da sessão.
O volume seleciona a ação; o preço fornece a direção.
Muitas ações apresentam oscilações bruscas nos minutos iniciais do pregão. A hipótese testável é que um rompimento tem um comportamento condicional diferente quando a atividade de negociação é excepcionalmente alta em relação à atividade normal de abertura daquela ação. O volume relativo não identifica um comprador ou vendedor: toda negociação concluída envolve ambos. A direção do movimento deve ser determinada por uma regra de preço específica, enquanto o volume mede a intensidade da participação.
Defina o volume relativo de abertura como RVOL(d) = V(d, opening window) / mean(V(d−j, same window), j=1…14). O denominador deve estar disponível em sessões anteriores. Comparar os primeiros cinco minutos com o volume médio de um dia inteiro responde a uma pergunta diferente e introduz unidades de tempo incompatíveis. O TradingView distingue o volume acumulado do volume em um horário correspondente; uma implementação deve escolher uma definição consistentemente. [3]
Um índice RVOL de quatro não implica um retorno quatro vezes maior do que um índice RVOL de um. Alta atividade pode acompanhar notícias, spreads mais amplos, uma paralisação ou uma correção de relatórios. Uma ação com um volume de abertura usualmente pequeno também pode obter uma razão de volume espetacular com uma atividade absoluta modesta. Filtros de elegibilidade e uma avaliação de execução, portanto, devem ser aplicados antes da decisão final de negociação.
A contribuição econômica do filtro de volume é uma questão empírica. Teste a mesma regra de preço com e sem RVOL, mantendo o risco e a exposição comparáveis. Caso contrário, uma curva de capital melhor poderia simplesmente refletir menos negociações ou posições maiores no grupo selecionado.
Separe a configuração do artigo das opções de implementação.
A configuração de referência usa preço de abertura acima de $5, volume médio dos 14 dias anteriores de pelo menos um milhão de ações, ATR14 acima de $0.50 e as 20 primeiras ações da classificação com RVOL de cinco minutos de pelo menos um. Uma vela de abertura verde define um rompimento comprado; uma vermelha define um rompimento vendido; o doji é descartado. O stop fica a 0.1 ATR do preço executado, as posições são fechadas no mesmo dia, o risco é 1% do capital alocado e a alavancagem é limitada a quatro vezes. [1]
As seguintes convenções de engenharia são especificações propostas, não afirmações adicionais do artigo. Utilize o calendário da bolsa em America/New_York, incluindo as alterações de horário de verão e as sessões reduzidas. Janelas históricas ausentes representam observações indisponíveis, não dias com volume zero. Uma barra de abertura atrasada só é utilizável quando seus dados tiverem efetivamente chegado.
Fixe um snapshot com o universo, OHLC de abertura, ATR diário, as 14 observações históricas de volume e o ranking final. Resolva empates pelo identificador estável do instrumento. Não acrescente uma ação após observar seu rompimento. Se somente 12 ações se qualificarem, decida antes de avaliar retornos se a parcela não usada ficará reservada ou será redistribuída.
O instantâneo deve preservar tanto o horário do evento quanto o horário de disponibilidade. Um fornecedor pode registrar um horário em 09:35 e entregar uma correção posteriormente. Reconstruir todas as decisões a partir do histórico final corrigido resultaria em um conjunto de informações diferente daquele disponível no processo de pedido original.
Uma máquina de estados impede entradas retroativas.
Uma ordem de entrada só existe após a seleção, o processamento e o envio. Um cruzamento de preços ocorrido antes dessa sequência não pode executar a nova ordem. Se o mercado já estiver além do preço de ativação quando uma ordem stop-market se tornar ativa, ela poderá ser executada imediatamente próximo ao preço de mercado atual; atribuir o preço de ativação anterior resultaria em uma execução favorável.
Construa o stop loss de proteção a partir da execução real da ordem. Execuções parciais exigem proteção para a quantidade já executada, além de uma política para o restante não executado. Uma rejeição de venda a descoberto, empréstimo indisponível ou rejeição por risco da corretora é um resultado registrado pelo sistema. Remover esses casos silenciosamente pode fazer com que a amostra de negociações restantes pareça mais fácil de executar do que o conjunto real de oportunidades.
Mantenha estados explícitos como selecionado, submetido, parcialmente preenchido, protegido, fechado e rejeitado. Cada transição precisa de um registro de data e hora e uma quantidade. Isso possibilita verificar se uma ordem de proteção poderia ter atuado durante uma reversão rápida imediatamente após a entrada.
on_opening_range_ready(session):
snapshot = freeze_available_data(session)
candidates = rank_eligible_by_rvol(snapshot)
selected = candidates[:20]
for asset in selected:
side = sign(asset.or_close - asset.or_open)
if side == 0: continue
trigger = asset.or_high if side > 0 else asset.or_low
submit_stop_after_processing_delay(asset, side, trigger)
on_entry_fill(fill):
stop_distance = 0.1 * frozen_daily_atr[fill.asset]
protective_stop = fill.price - fill.side * stop_distance
protect_filled_quantity(fill, protective_stop)
on_session_liquidation_deadline():
cancel_pending_entries()
close_remaining_positions()
O capital alocado é diferente do patrimônio líquido total da conta.
Considere uma conta sintética de $100,000 dividida em 20 alocações de $5,000. Arriscar 1% de uma alocação significa $50 para toda a posição em cada ação. Interpretar como 1% da conta inteira daria $1,000 por posição: vinte vezes mais antes de discutir alavancagem. A diferença importa ao comparar implementações com nomes semelhantes.
Com uma distância de stop loss de $0.20 e sem custos incluídos, um orçamento de perda de $50 permite 250 ações. A um preço de ação de $50, o valor nocional é de $12,500, excedendo a alocação de caixa de $5,000. O tamanho real deve, portanto, satisfazer o mínimo entre o limite de risco, o limite nocional, a disponibilidade de empréstimo e a capacidade restante da carteira.
Um limite de alavancagem de portfólio não autoriza que todas as operações simultâneas sejam dimensionadas no limite total da carteira. Reserve a exposição necessária para as ordens enviadas e libere-a em caso de cancelamento ou rejeição. Caso contrário, ordens válidas individualmente podem, coletivamente, ultrapassar o limite quando várias forem executadas ao mesmo tempo.
Distinga a perda planejada no stop da perda extrema efetivamente realizada. Ações correlacionadas podem apresentar gaps através dos stops simultaneamente. Informe a perda planejada da carteira se todos os stops forem executados como previsto; depois faça testes de estresse com spreads maiores, proteção atrasada e gaps adversos. Vinte tickers não garantem vinte riscos independentes.
Sucesso sintético, fracasso e barras ambíguas
Suponha que a faixa de abertura tenha O=50, H=50.30, L=49.90 e C=50.20. O volume de abertura é de 600,000 ações, contra uma média histórica de 200,000 ações, resultando em RVOL=3. O ATR diário anterior é 2. Após a seleção estar pronta, a ordem de compra stop em 50.30 é executada em 50.34. O stop de proteção é 50.14. Uma venda no final do dia a 51.14 rende $0.80 por ação, ou 4R antes dos custos quando R=$0.20 por ação.
Com a mesma configuração inicial, uma reversão poderia, em vez disso, executar o stop em 50.10. A perda é de $0.24 por ação, ou 1.2R antes da comissão. Não se deve forçar o retorno para −1R, pois o nível de stop pretendido era 50.14. A diferença reside exatamente na exposição à execução que um stop muito estreito pode amplificar.
Se o fornecedor posteriormente revisar o volume inicial de 600,000 para 150,000, preserve o valor original recebido e a revisão separadamente. Uma decisão em tempo real baseada no primeiro não pode ser avaliada como se o segundo fosse conhecido no momento da seleção.
Uma única barra OHLC pode conter preços de entrada e de stop sem revelar sua ordem. Utilize dados mais precisos ou reporte limites conservadores e otimistas. Escolher a sequência intrabarra vencedora não é uma simplificação neutra. Um teste unitário útil constrói dois caminhos de ticks com OHLC idênticos e verifica se o simulador reconhece seus resultados diferentes.
Leia os resultados públicos dentro de seu escopo real.
A implementação pública do QuantConnect relata um teste de 2016 com um universo de 1,000 ações e Sharpe 2.396. Sua discussão identifica diferenças entre a versão inicial em Python e a implementação em C#. [2] É um ponto de partida útil para replicação, mas não verifica de forma independente todo o estudo de oito anos.
Mantenha a etiqueta IRR do artigo. O alfa de regressão não é CAGR, e a taxa de acerto de um portfólio não pode ser renomeada como taxa de acerto por operação sem que seu denominador seja estabelecido. Diferenças nas convenções de retorno podem produzir valores anualizados diferentes, mesmo quando o retorno total divulgado é semelhante.
Uma ablação proposta utiliza: A: ORB baseado apenas no preço; B: ORB mais o limite RVOL; C: limite mais a classificação top-20. Compare a quantidade de oportunidades, ordens aceitas, execuções reais, volume de negócios e resultados líquidos no mesmo calendário de avaliação fixo. Apresente os custos em relação ao R de cada negociação, e não apenas como uma pequena porcentagem do valor nocional.
Antes de comparar as curvas de capital final, compare os universos elegíveis diários, os símbolos selecionados, os horários de ativação e as quantidades. Uma discrepância aqui representa um problema de regras ou de dados; ajustar o slippage para fazer o retorno final coincidir ocultaria o problema. Uma reprodução confiável documenta as discrepâncias restantes e, em seguida, avalia um período genuinamente intocado.
Erros comuns
Classificação da abertura com informações de fechamento do dia
O volume da sessão completa não está disponível em 09:35. Usá-lo para selecionar operações de abertura cria um viés de antecipação.
Combinar paradas estreitas com custos irrealisticamente baixos.
Poucos centavos de spread ou slippage pode consumir uma grande fração do R. Apresente a distribuição de custos em unidades de risco.
Atrasar a proteção em uma barra
Criar o stop uma barra após a entrada pode deixar uma reversão imediata sem proteção. Modele a sequência entre entrada e proteção com hipóteses reais de processamento.
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
Um valor alto de RVOL significa que investidores bem informados estão comprando?
Não. Mede a atividade de negociação concluída de forma atípica. A direção e a identidade do participante exigem evidências diferentes.
É possível alterar o intervalo de abertura para 15 minutos?
Sim, como uma variante testada separadamente. Compare a janela de volume histórico com 15 minutos e leve em consideração entradas posteriores, paradas diferentes, custos e o ensaio de pesquisa adicional.
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.
- A Profitable Day Trading Strategy For The U.S. Equity MarketZarattini, Barbon, Aziz — 16/02/2024. Leitura completa do PDF; a tabela 2 está na página 17 do PDF físico e na página 16 da versão impressa. Os resultados utilizam as premissas dos autores; nenhum novo teste retrospectivo foi realizado. Verificado em: .
- Opening Range Breakout for Stocks in PlayDerek Melchin — QuantConnect. Li o artigo, o código de exemplo e a discussão sobre a implementação. O código não foi executado. Verificado em: .
- Relative Volume at TimeTradingView. Documentação primária que define o volume relativo ao mesmo horário de sessões anteriores. Não estabelece a rentabilidade da ORB. 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