
A estratégia de negociação intradiária de precisão baseada em blocos de ordens institucionais e retrações de Fibonacci é um sistema de negociação intradiária de alta precisão projetado especificamente para o mercado de ações dos EUA, especialmente otimizado para o período de 15 minutos. A estratégia combina o conceito de fluxo de ordens institucionais com o princípio de retração de Fibonacci, que visa identificar pontos de reversão de preços de alta probabilidade, ao mesmo tempo em que implementa um rigoroso gerenciamento de risco e regras baseadas em períodos de negociação.
O núcleo da estratégia consiste em identificar as áreas de ordens dos fundos da instituição (Order Blocks) e encontrar os melhores pontos de entrada usando os níveis de retração de 61.8% ou 79% de Fibonacci. Esperando a ruptura do ponto de parada (liquidez limpa), a estratégia é capaz de identificar uma potencial reversão de preço, fornecendo assim um sinal de negociação mais confiável. O rigoroso filtro de tempo garante que a estratégia só é negociada entre 9:30 e 16:00 EST e que todas as posições são forçadas a se nivelarem às 16:30 EST, evitando o risco de overnight.
O princípio central da estratégia baseia-se na identificação do fluxo de encomendas das instituições e da estrutura de preços, cujo mecanismo de operação é o seguinte:
Identificação de movimentos de pulso forteA estratégia primeiro identifica movimentos de pulso fortes procurando por rupturas na estrutura de preços. Quando os preços se movem em um período de 5 linhas K e a amplitude da oscilação é maior do que o ATR ((14) multiplicado pelo tamanho mínimo de oscilação, o sistema identifica um ponto alto ou baixo de oscilação efetivo.
Marca de bloco de pedidos: Após a confirmação de um ponto de oscilação, a estratégia marca a região de ordens da agência. Quando um ponto de oscilação baixa é formado, o nível de preço desse ponto é marcado como um bloco de ordem de queda; Quando um ponto de oscilação alta é formado, o nível de preço desse ponto é marcado como um bloco de ordem de queda.
Fibonacci retira sua confirmaçãoA estratégia requer que o preço deve recuar para os níveis de Fibonacci de 61.8% ou 79%, que são obtidos por meio do cálculo de altos e baixos oscilantes. Quando o preço retorna a esses níveis críticos, a estratégia começa a procurar sinais de entrada.
Filtro de tempoTodas as atividades de negociação devem ocorrer entre as 9h30 e as 16h00, o que garante que a estratégia opera durante o período em que o mercado é mais ativo e com melhor liquidez. Não há novas posições abertas após as 16h00 e todas as posições são obrigatoriamente liquidadas às 16h30.
Confirmação de entrada:
Mecanismo de gestão de riscosA estratégia usa o ATR ((14) para definir o ponto de parada, garantindo que o risco seja controlado dentro de limites razoáveis. O ponto de parada para a negociação multihead é definido abaixo do ponto mais baixo mais recente e o ponto de parada para a negociação zero é definido acima do ponto mais alto mais recente.
Taxa de retorno do risco fixoA estratégia usa por defeito um valor de retorno de risco de 2: 1 para definir o ponto de parada, que é obtido por multiplicar o ATR ((14) por um parâmetro de retorno de risco.
Ao analisarmos em profundidade o código da estratégia, podemos concluir as seguintes vantagens significativas:
Lógica de transação baseada no comportamento da instituiçãoA estratégia pode acompanhar a direção dos grandes capitais, aumentando a probabilidade de sucesso das transações, através da identificação de blocos de pedidos de agências e limpeza de liquidez.
Gerenciamento preciso do tempoA restrição rigorosa das horas de negociação assegura que a estratégia opera apenas durante os períodos de maior atividade do mercado, evitando os riscos de deslizamento e oscilação que podem ocorrer em períodos de baixa liquidez.
Mecanismo de compensação obrigatóriaA regra obrigatória de posições curtas às 16h30 previne o risco de posicionamento durante a noite, o que é especialmente importante para mercados onde há maior volatilidade durante o dia.
Visualização de sinais de negociaçãoEstratégia: Marque sinais de negociação com clareza através de uma interface gráfica, usando triângulos verdes para os múltiplos e triângulos vermelhos para os triângulos vazios, permitindo que os comerciantes identifiquem rapidamente oportunidades de negociação em potencial.
Gestão de Riscos DinâmicosA configuração de stop loss baseada no ATR permite que o controle de risco se adapte automaticamente à volatilidade do mercado, proporcionando uma exposição de risco consistente em diferentes ambientes de volatilidade.
Alta personalizaçãoA estratégia oferece vários parâmetros-chave para ajustes, incluindo níveis de Fibonacci, tamanho mínimo de oscilação, taxa de retorno do risco, etc., permitindo que os comerciantes façam configurações personalizadas de acordo com suas preferências de risco e estilo de negociação.
Condições de entrada rígidasAo combinar vários fatores de confirmação: bloco de pedidos, nível de Fibonacci, tempo de negociação efetivo, a estratégia reduz efetivamente os sinais falsos e melhora a qualidade das negociações.
Apesar das vantagens da estratégia, existem alguns riscos e desafios potenciais:
Risco de otimização excessivaA estratégia depende de várias configurações de parâmetros precisos, como níveis de Fibonacci, multiplicadores de ATR, etc. Pode haver um risco de otimização excessiva, resultando em um mau desempenho em dados fora da amostra. A solução é usar um ciclo de retorno suficientemente longo e testar a robustez da estratégia em diferentes ambientes de mercado.
Riscos de tendências rápidas: Em mercados de forte tendência, os preços podem não recuar para os níveis de Fibonacci indicados, resultando em perda de uma potencial tendência favorável. Considere a adição de módulos de acompanhamento de tendências ou o ajuste dinâmico dos níveis de Fibonacci para responder a este problema.
Risco de interrupção por tempo limitadoA regra de não abrir novas posições após as 16:00 e a regra de não abrir novas posições após as 16:30 pode levar a uma saída forçada em condições favoráveis ou a uma parada forçada em preços desfavoráveis. Pode-se considerar a introdução de regras de parada mais flexíveis, de acordo com a situação do mercado e a situação de perda de posições.
O atraso na identificação de pontos de oscilaçãoA estratégia usa dados históricos para identificar pontos de oscilação, o que pode levar ao atraso do sinal e, portanto, perder o melhor momento de entrada. Pode-se tentar otimizar o algoritmo de identificação de pontos de oscilação ou introduzir outros indicadores iniciais para melhorar a eficiência do sinal.
Limitação de um único período de tempoO uso de apenas um período de 15 minutos pode ignorar importantes estruturas de mercado em escalas de tempo maiores ou menores. Considere a adição de análises de vários períodos de tempo, que podem fornecer uma visão mais abrangente do mercado.
Limites da taxa de retorno do risco fixoA configuração uniforme de risco-retorno de 2: 1 pode não ser adequada para todos os cenários de mercado, especialmente quando a volatilidade muda significativamente. Pode-se considerar ajustar a relação de risco-retorno de acordo com a volatilidade do mercado ou a dinâmica dos níveis de resistência de suporte.
Com base em uma análise aprofundada do código da estratégia, aqui estão algumas possíveis direções de otimização:
Confirmação do Multi-TemposIntrodução de um marco de tempo mais alto (como 1 hora ou 4 horas) para confirmar a tendência, garantir que a direção do dia de negociação esteja em consonância com a tendência maior e aumentar a taxa de vitória. Esta otimização pode ser feita adicionando indicadores de tendência ou análise de estrutura de preços para o marco de tempo mais alto.
Níveis dinâmicos de FibonacciRequisitos: Ajustar o nível de retração de Fibonacci de acordo com a volatilidade do mercado ou a dinâmica da intensidade da tendência atual. Uma retração mais leve pode ser necessária em uma tendência forte (por exemplo, 38,2%), enquanto uma retração mais profunda pode ser necessária em um mercado turbulento (por exemplo, 61,8% ou 79%).
O estado do mercado adapta-seIntroduza a classificação de estados de mercado (trend, choque, alta volatilidade, etc.) e ajuste os parâmetros de estratégia de acordo com diferentes estados de mercado. Por exemplo, em mercados de alta volatilidade, pode ser necessária uma configuração de stop loss mais ampla, enquanto em mercados de baixa volatilidade pode ser usado um stop loss mais estreito para aumentar a taxa de vitória.
Mecanismo de bloqueio parcial de lucrosIntrodução de posições de equilíbrio parcial quando o lucro atinge um determinado nível, como 50% da posição de equilíbrio quando o lucro atinge 1R, e o restante da configuração de stop loss de rastreamento, maximizando a captura de oportunidades de potencial grande tendência.
Filtro de indicadores de flutuaçãoAdicionar indicadores de volatilidade como a taxa de variação do ATR ou o Bollinger Bandwidth Indicator para filtrar os sinais de negociação em ambientes de baixa volatilidade e evitar a negociação em excesso em mercados de baixa volatilidade.
Confirmação de transaçãoIntrodução de análise de volume de transação como um fator de confirmação adicional, garantindo que as mudanças de preço sejam suportadas por volume de transação suficiente, aumentando a confiabilidade do sinal.
Aprendizagem de máquina: Analise a eficácia dos blocos de ordens e das retrações de Fibonacci nos dados históricos usando algoritmos de aprendizagem de máquina, e otimize a configuração de parâmetros ou a filtragem de sinais aprimorada com base nisso.
Optimização de Stop LossA estratégia atual é usar um parâmetro fixo de ATR para estabelecer o stop loss. Pode-se considerar o uso de estruturas de preços mais recentes, como os pontos de oscilação mais recentes, para estabelecer uma posição de stop loss mais precisa, tanto para proteger o capital quanto para evitar a saída prematura do mercado.
A estratégia de negociação intradiária precisa baseada em blocos de ordens institucionais e retrações de Fibonacci representa um método de negociação sistematizado que fornece regras claras de entrada e saída para os comerciantes intradiários, combinando a análise de comportamento de negociação institucional com as ferramentas de análise técnica clássica.
A principal vantagem da estratégia reside na sua identificação e aproveitamento dos fluxos de ordens das instituições, combinado com o rigoroso filtro de tempo e as regras de gestão de risco, o que a torna especialmente adequada para a negociação intradiária no mercado de ações dos EUA. A filosofia de negociação central centra-se na busca de um retorno de preços para as principais áreas de ordens das instituições e pontos de reversão de alta probabilidade no nível de Fibonacci, o que equilibra efetivamente a frequência de negociação com a qualidade do sinal.
Os riscos da estratégia vêm principalmente de desafios de otimização de parâmetros e adaptabilidade ao ambiente de mercado, mas podem ser efetivamente geridos e mitigados por direções de otimização propostas, como confirmação de múltiplos prazos, ajuste de parâmetros dinâmicos e adaptação ao estado do mercado.
Em geral, a estratégia oferece uma estrutura de negociação intradiária sólida, adequada para os comerciantes que têm uma certa compreensão do comportamento de negociação da instituição, que pode manter um desempenho estável em diferentes ambientes de mercado com a configuração e otimização razoável de parâmetros. É uma opção de estratégia a considerar para os comerciantes que desejam encontrar oportunidades de negociação estruturadas em um período de tempo intradiário.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-29 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Rawstocks 15-Minute Model", overlay=true, margin_long=100, margin_short=100, pyramiding=0)
// ===== TIME CONTROL ===== (UTC-4 = Eastern Time)
startHour = input(9, "Start Hour (ET)")
startMin = input(30, "Start Minute")
entryCutoffHour = input(16, "Last Entry Hour (ET)") // 4:00 PM
entryCutoffMin = input(0, "Last Entry Minute")
closeHour = input(16, "Force Close Hour (ET)") // 4:30 PM
closeMin = input(30, "Force Close Minute")
// Define session in UTC-4 (ET)
sessionStart = timestamp("UTC-4", year, month, dayofmonth, startHour, startMin)
entryCutoffTime = timestamp("UTC-4", year, month, dayofmonth, entryCutoffHour, entryCutoffMin)
forceCloseTime = timestamp("UTC-4", year, month, dayofmonth, closeHour, closeMin)
// ===== CORE STRATEGY =====
// Inputs
fib1 = input.float(61.8, "Fib Level (%)")
minSwingSize = input.float(1.0, "Min Swing Size (%)") / 100
rrRatio = input.float(2.0, "Risk/Reward")
// Swing Detection
swingHigh = ta.highest(high, 5) == high[2] and (high[2] - low[2]) >= ta.atr(14) * minSwingSize
swingLow = ta.lowest(low, 5) == low[2] and (high[2] - low[2]) >= ta.atr(14) * minSwingSize
// Order Blocks
var float bullOB = na
var float bearOB = na
if swingLow
bullOB := low[2]
if swingHigh
bearOB := high[2]
// Fib Levels
var float swingTop = na
var float swingBot = na
if swingHigh
swingTop := high[2]
if swingLow
swingBot := low[2]
fib618 = swingBot + (swingTop - swingBot) * (fib1/100)
fib79 = swingBot + (swingTop - swingBot) * 0.79
// Entry Conditions
longCond = not na(bullOB) and (low <= bullOB) and (close >= fib618 or close >= fib79)
shortCond = not na(bearOB) and (high >= bearOB) and (close <= fib618 or close <= fib79)
// Time Filter - No entries after 4:00 PM
validEntryTime = (time >= sessionStart) and (time <= entryCutoffTime)
// ===== EXECUTION =====
// Entries (only before 4:00 PM)
if (longCond and validEntryTime)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop=low - ta.atr(14), limit=close + (ta.atr(14) * rrRatio))
if (shortCond and validEntryTime)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", stop=high + ta.atr(14), limit=close - (ta.atr(14) * rrRatio))
// Force Close at 4:30 PM ET
var bool forceClosedToday = false
if (time >= forceCloseTime and time < forceCloseTime + 60000) and (not forceClosedToday)
strategy.close_all("EOD Close @ 4:30PM")
forceClosedToday := true
// Reset daily flag
if dayofmonth != dayofmonth[1]
forceClosedToday := false
// ===== VISUALS =====
// Signal Triangles (gray if after entry cutoff)
plotshape(series=longCond, title="Long Signal", style=shape.triangleup, location=location.belowbar,
color=validEntryTime ? color.new(color.green, 0) : color.new(color.gray, 0), size=size.small)
plotshape(series=shortCond, title="Short Signal", style=shape.triangledown, location=location.abovebar,
color=validEntryTime ? color.new(color.red, 0) : color.new(color.gray, 0), size=size.small)
// Execution Markers
var float longEntryPrice = na
var float shortEntryPrice = na
if (strategy.position_size > 0 and strategy.position_size[1] <= 0)
longEntryPrice := close
if (strategy.position_size < 0 and strategy.position_size[1] >= 0)
shortEntryPrice := close
plot(series=longEntryPrice, title="Long Entry", style=plot.style_circles, linewidth=3, color=color.new(color.green, 0))
plot(series=shortEntryPrice, title="Short Entry", style=plot.style_circles, linewidth=3, color=color.new(color.red, 0))
// Force Close Marker
if (time >= forceCloseTime and time < forceCloseTime + 60000)
label.new(
bar_index,
high,
"4:30 PM Close",
style=label.style_label_down,
color=color.red,
textcolor=color.white
)