Esta é uma estratégia de negociação baseada na detecção de Gap de Valor Justo (FVG), combinando gestão de risco dinâmica com metas de lucro fixo. Operando em um período de tempo de 15 minutos, a estratégia identifica oportunidades de negociação potenciais detectando lacunas de preços no mercado. De acordo com dados de backtest de novembro de 2023 a agosto de 2024, a estratégia alcançou um lucro líquido de 284,40% com 153 negócios totais, mantendo uma taxa de vitória de 71,24% e um fator de lucro de 2,422.
O mecanismo central gira em torno da detecção de lacunas de valor justo através do monitoramento das relações de preços em três velas consecutivas:
Esta estratégia demonstra resultados impressionantes ao combinar a teoria da diferença de valor justo com a gestão de risco científica. A alta taxa de ganho e o fator de lucro estável indicam seu valor prático. Através das direções de otimização sugeridas, há potencial para melhoria adicional.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fair Value Gap Strategy with % SL and Fixed TP", overlay=true, initial_capital=500, default_qty_type=strategy.fixed, default_qty_value=1) // Parameters fvgThreshold = input.float(0.5, "FVG Threshold (%)", minval=0.1, step=0.1) // Fixed take profit in pips takeProfitPips = 50 // Function to convert pips to price pipsToPriceChange(pips) => syminfo.mintick * pips * 10 // Function to detect Fair Value Gap detectFVG(dir) => gap = 0.0 if dir > 0 // Bullish FVG gap := low[2] - high[1] else // Bearish FVG gap := low[1] - high[2] math.abs(gap) > (close * fvgThreshold / 100) // Detect FVGs bullishFVG = detectFVG(1) bearishFVG = detectFVG(-1) // Entry conditions longCondition = bullishFVG shortCondition = bearishFVG // Calculate take profit level longTakeProfit = strategy.position_avg_price + pipsToPriceChange(takeProfitPips) shortTakeProfit = strategy.position_avg_price - pipsToPriceChange(takeProfitPips) // Calculate stop loss amount (5% of capital) stopLossAmount = strategy.equity * 0.01 // Execute trades if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Set exit conditions if (strategy.position_size > 0) strategy.exit("Long TP", "Long", limit=longTakeProfit) strategy.close("Long SL", when=strategy.openprofit < -stopLossAmount) else if (strategy.position_size < 0) strategy.exit("Short TP", "Short", limit=shortTakeProfit) strategy.close("Short SL", when=strategy.openprofit < -stopLossAmount) // Plot signals plotshape(longCondition, "Buy Signal", location = location.belowbar, color = color.green, style = shape.triangleup, size = size.small) plotshape(shortCondition, "Sell Signal", location = location.abovebar, color = color.red, style = shape.triangledown, size = size.small)