
Esta estratégia é um sistema de negociação baseado no Inverted Fair Value Gap (IFVG), combinando a confirmação de tendências e o mecanismo de parada de seguimento dinâmico. A estratégia identifica primeiro as brechas de justo valor no mercado, em seguida, procura os sinais de reversão dessas brechas, confirmando a tendência geral do mercado usando a média móvel simples (SMA) e, finalmente, configurando o stop loss de seguimento dinâmico para otimizar a gestão de risco através da média real (ATR).
O núcleo da estratégia é a reversão da identificação e aproveitamento da lacuna de valor justo (FVG). O princípio da estratégia pode ser dividido em vários passos-chave:
Identificação FVGA estratégia começa por detectar brechas de justo valor, ou seja, áreas de preço formadas quando o preço mínimo de uma linha K é superior ao preço máximo de uma linha K anterior (FVG de alta) ou quando o preço máximo de uma linha K é inferior ao preço mínimo da linha K anterior (FVG de baixa). Estas áreas representam níveis de preço que não são negociados quando o mercado se move rapidamente.
Confirmação da IFVG: Quando o preço retorna para a área do FVG e um sinal de reversão aparece, uma brecha de valor justo invertido é formada (IFVG). Concretamente, o IFVG é confirmado quando o preço está acima do ponto alto do FVG de baixa e o preço de fechamento está acima do preço de abertura, ou quando o preço está abaixo do ponto baixo do FVG de baixa e o preço de fechamento está abaixo do preço de abertura.
Confirmação da tendênciaA estratégia usa uma média móvel simples (SMA) de 50 e 200 ciclos para determinar a tendência do mercado. Quando a SMA de curto prazo (SMA de 50 ciclos) é superior à SMA de longo prazo (SMA de 200 ciclos), a tendência ascendente é confirmada; ao contrário, a tendência descendente é confirmada.
Condições de entrada:
Gestão de Riscos:
Mecanismo de confirmação múltiplaA estratégia combina a estrutura de preços (IFVG), a direção da tendência (SMA) e a gestão de risco dinâmica (ATR) para formar um sistema de filtragem em várias camadas, reduzindo significativamente os falsos sinais.
Estrutura de mercadoAo identificar os FVG e os IFVG, a estratégia é capaz de capturar as mudanças na microestrutura do mercado, que geralmente representam desequilíbrios e possíveis oportunidades de direção de força de compra e venda no curto prazo.
Consistência de tendênciasA estratégia consiste em negociar apenas na direção da tendência, evitando o alto risco de negociação contracorrente.
Gestão de Riscos DinâmicosA estratégia não apenas define níveis fixos de stop loss e stop loss, mas também implementa stop loss de rastreamento dinâmico baseado em ATR, capaz de ajustar os níveis de proteção de acordo com a volatilidade do mercado.
Mecanismos de proteção de lucrosQuando a negociação atinge metade do lucro estimado, o stop loss é automaticamente movido para acima da posição de garantia, garantindo que a negociação não se transforme de lucro em perda.
Flexibilidade de prazosApesar de a retrospectiva ser realizada em períodos de 1 minuto, a lógica central da estratégia (FVG, confirmação de tendência e stop loss dinâmico) pode ser aplicada em vários períodos de tempo.
Questões de confiabilidade da FVG: Em mercados de alta volatilidade, os FVG podem ser frequentes, mas não necessariamente com valor de negociação, o que pode levar a um excesso de negociação. A solução é adicionar condições de filtragem adicionais, como exigir que os FVG tenham uma largura mínima ou se formem perto de níveis de preços críticos.
Tendências que definem limitações: Usar apenas dois SMAs para definir uma tendência pode gerar um sinal errado em um mercado de turbulência. A solução é adicionar indicadores adicionais de confirmação de tendência, como o ADX (indicador de direção média) para medir a força da tendência.
Risco de amortização muito reduzidoA solução é conectar a configuração de stop loss com o ATR, adaptando-a às características de flutuação de diferentes variedades.
Inadequada gestão da retiradaA solução é definir o limite máximo aceitável de retração e, se ultrapassado, sair imediatamente.
Sensibilidade do parâmetroO desempenho da estratégia é altamente sensível a parâmetros como o ciclo SMA, a taxa de parada e a multiplicação do ATR. A solução é encontrar uma combinação robusta de parâmetros através da otimização do feedback e reavaliá-los periodicamente.
Integração de análise de multi-quadros temporaisIncorporar informações de FVG e tendências de um período mais longo do tempo no processo de tomada de decisão pode melhorar a qualidade do sinal. Por exemplo, pode-se exigir que o sinal no gráfico de 1 minuto coincida com a direção de FVG e tendências no gráfico de 15 minutos ou 1 hora.
Mecanismo de travagem dinâmicaA estratégia atual usa um stop-loss de proporção fixa, que pode ser melhorado para um stop-loss dinâmico baseado no ATR, ou um stop-loss de ajuste automático em combinação com a volatilidade do mercado.
Adaptabilidade à reversão e à consolidação do mercado: Adição de lógica de identificação do cenário de mercado, usando a estratégia atual em períodos de tendência clara, e adotando diferentes critérios de entrada e saída em períodos de consolidação.
Confirmação de transação: Análise de volume de transação integrada para verificar a eficácia do FVG e do IFVG. Uma brecha de preço realmente significativa geralmente é acompanhada de mudanças significativas no volume de transação.
Otimização de aprendizagem de máquinaUtilização de algoritmos de aprendizagem de máquina para identificar a combinação de características mais previsíveis do FVG, como o tamanho da abertura, a velocidade de formação e a relação com o suporte/resistência.
Ajustes de parâmetros de adaptação: Desenvolver um mecanismo que permita que a estratégia ajuste automaticamente seus parâmetros de acordo com o desempenho recente do mercado, como expandir o alcance do stop loss quando a volatilidade aumenta.
Aumentar a gestão de posiçõesA estratégia atual utiliza posições fixas (de 10 unidades), podendo ser melhorada para um sistema de gestão de posições dinâmico baseado em medidas de volatilidade e risco, aumentando as posições em sinais de alta confiança e reduzindo a exposição em mercados de alta incerteza.
A estratégia de brecha de valor justo reversível de confirmação de tendências com o stop loss de acompanhamento dinâmico é um sistema de negociação em vários níveis que combina organicamente a análise da estrutura de preços (FVG e IFVG), a confirmação de tendências (SMA) e o gerenciamento de risco dinâmico (ATR stop loss). A principal vantagem da estratégia reside no seu mecanismo de confirmação múltipla e na gestão de risco auto-adaptável, que filtra eficazmente os sinais de baixa qualidade e protege os lucros obtidos.
No entanto, a estratégia também enfrenta desafios como a confiabilidade do FVG, as limitações de definição de tendências e a sensibilidade dos parâmetros. As direções de otimização futuras incluem a integração da análise de múltiplos quadros temporais, o desenvolvimento de mecanismos de suspensão dinâmica, a melhoria da adaptabilidade em diferentes ambientes de mercado e a introdução de tecnologias de aprendizado de máquina para otimizar a qualidade do sinal e a seleção de parâmetros.
Através dessas melhorias, a estratégia tem o potencial de se tornar um sistema de negociação mais estável e adaptável, capaz de manter um desempenho consistente em várias condições de mercado. Em particular, aumentando sua capacidade de resposta a mudanças na estrutura e volatilidade do mercado, a estratégia pode se adaptar melhor ao ambiente de mercado em constante mudança, aumentando a lucratividade a longo prazo e a estabilidade do crescimento de capital.
/*backtest
start: 2025-05-31 00:00:00
end: 2025-06-30 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
args: [["RunMode",1,358374]]
*/
//@version=6
strategy("Inverted FVG Strategy with Trend Check and Trailing Stops", default_qty_value = 10, overlay=true)
// Function to detect FVG
fvgDetected(src, high, low) =>
float prevHigh = na
float prevLow = na
float prevClose = na
float fvgHigh = na
float fvgLow = na
bool fvg = false
if (not na(src[3]))
prevHigh := high[3]
prevLow := low[3]
prevClose := src[3]
if (src[2] > prevClose and low[2] > prevHigh) or (src[2] < prevClose and high[2] < prevLow)
fvg := true
fvgHigh := low[2] > prevHigh ? high[2] : na
fvgLow := high[2] < prevLow ? low[2] : na
[fvg, fvgHigh, fvgLow]
// Detect FVG on the chart
[fvg, fvgHigh, fvgLow] = fvgDetected(close, high, low)
// Detect IFVG - Inversion of FVG
bool ifvg = false
float ifvgHigh = na
float ifvgLow = na
if (fvg)
if (high[1] > fvgHigh and close[1] > open[1]) or (high[1] < fvgLow and close[1] < open[1])
ifvg := true
ifvgHigh := close[1] > open[1] ? high[1] : na
ifvgLow := close[1] < open[1] ? low[1] : na
// Plot FVG and IFVG zones for visualization
plot(ifvgHigh, title="IFVG High", color=color.red, linewidth=2, style=plot.style_cross)
plot(ifvgLow, title="IFVG Low", color=color.red, linewidth=2, style=plot.style_cross)
// Trend Check using Simple Moving Averages
smaShort = ta.sma(close, 50) // Short term SMA
smaLong = ta.sma(close, 200) // Long term SMA
bool uptrend = false
bool downtrend = false
uptrend := smaShort > smaLong // Up trend if short SMA is above long SMA
downtrend := smaShort < smaLong // Down trend if short SMA is below long SMA
// Plot SMAs for visualization
plot(smaShort, title="SMA Short", color=color.blue, linewidth=1)
plot(smaLong, title="SMA Long", color=color.orange, linewidth=1)
// Trading logic with trend confirmation
longCondition = ifvg and close < ifvgLow and uptrend
shortCondition = ifvg and close > ifvgHigh and downtrend
// Risk Definition - 使用百分比
stopLoss = 0.005 // 0.5% 止损
takeProfit = 0.015 // 1.5% 止盈
if (longCondition and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
stopPrice = close * (1 - stopLoss)
limitPrice = close * (1 + takeProfit)
strategy.exit("Initial Long Exit", "Long", stop=stopPrice, limit=limitPrice)
if (shortCondition and strategy.position_size == 0)
strategy.entry("Short", strategy.short)
stopPrice = close * (1 + stopLoss)
limitPrice = close * (1 - takeProfit)
strategy.exit("Initial Short Exit", "Short", stop=stopPrice, limit=limitPrice)
// ATR for dynamic trailing stop
atr = ta.atr(14)
// Trailing Stop for Long Position if the trade has moved > 0.5% (half of takeProfit)
if (strategy.position_size > 0)
profitThreshold = takeProfit * 0.5 // 1.5% profit threshold
if (close - strategy.position_avg_price >= strategy.position_avg_price * profitThreshold)
// 将止损移动到盈亏平衡点加上一点利润
trailingStopLong = math.max(strategy.position_avg_price * (1 + profitThreshold), close - (atr * 2))
strategy.exit("Trailing Stop Long", "Long", stop=trailingStopLong)
// Trailing Stop for Short Position if the trade has moved > 0.5% (half of takeProfit)
if (strategy.position_size < 0)
profitThreshold = takeProfit * 0.5 // 1.5% profit threshold
if (strategy.position_avg_price - close >= strategy.position_avg_price * profitThreshold)
// 将止损移动到盈亏平衡点加上一点利润
trailingStopShort = math.min(strategy.position_avg_price * (1 - profitThreshold), close + (atr * 2))
strategy.exit("Trailing Stop Short", "Short", stop=trailingStopShort)