Esta é uma estratégia de negociação quantitativa avançada que combina a média móvel exponencial (EMA), a confirmação de volume e a faixa verdadeira média (ATR). A estratégia atinge a captura precisa da tendência do mercado através de múltiplos indicadores técnicos, aumenta a confiabilidade do comércio através da confirmação de volume e implementa um sistema abrangente de gerenciamento de risco usando níveis dinâmicos de stop-loss e take-profit baseados em ATR.
A lógica central consiste em três componentes principais: 1. Determinação da tendência: usa a EMA ((50) como o principal indicador de tendência. Uma tendência de alta é identificada quando o preço está acima da EMA e vice-versa. Confirmação de volume: Calcula uma média móvel de volume de 20 períodos, exigindo que o volume atual exceda 1,5 vezes a média móvel e o volume do período anterior para garantir uma participação suficiente no mercado. 3. Gestão de riscos: define dinamicamente os níveis de stop-loss e take-profit com base no ATR de 14 períodos.
Esta estratégia estabelece um sistema de negociação logicamente rigoroso através do uso abrangente de múltiplos indicadores técnicos. Suas principais forças estão em seus múltiplos mecanismos de confirmação e gestão de risco dinâmica, enquanto a atenção deve ser dada a riscos como reversões de tendência e falhas de volume. Através de otimização e refinamento contínuos, esta estratégia mostra promessa para um melhor desempenho na negociação real.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Enhanced Volume + Trend Strategy", overlay=true) // Inputs emaLength = input.int(50, title="EMA Length") atrLength = input.int(14, title="ATR Length") atrMultiplierSL = input.float(2.0, title="ATR Multiplier for Stop Loss") atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit") volLength = input.int(20, title="Volume Moving Average Length") volMultiplier = input.float(1.5, title="Volume Multiplier (Relative to Previous Volume)") // Trend Detection using EMA ema = ta.ema(close, emaLength) // ATR Calculation for Stop Loss/Take Profit atr = ta.atr(atrLength) // Volume Moving Average volMA = ta.sma(volume, volLength) // Additional Volume Condition (Current Volume > Previous Volume + Multiplier) volCondition = volume > volMA * volMultiplier and volume > volume[1] // Entry Conditions based on Trend (EMA) and Volume (Volume Moving Average) longCondition = close > ema and volCondition shortCondition = close < ema and volCondition // Stop Loss and Take Profit Levels longStopLoss = close - (atr * atrMultiplierSL) longTakeProfit = close + (atr * atrMultiplierTP) shortStopLoss = close + (atr * atrMultiplierSL) shortTakeProfit = close - (atr * atrMultiplierTP) // Strategy Execution if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLoss, limit=longTakeProfit) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", stop=shortStopLoss, limit=shortTakeProfit) // Plotting EMA plot(ema, color=color.yellow, title="EMA") // Plot Volume Moving Average plot(volMA, color=color.blue, title="Volume Moving Average") // Signal Visualizations plotshape(series=longCondition, color=color.green, style=shape.labelup, location=location.belowbar, title="Buy Signal") plotshape(series=shortCondition, color=color.red, style=shape.labeldown, location=location.abovebar, title="Sell Signal")