
A estratégia é um sistema de acompanhamento de tendências baseado em médias móveis de múltiplos índices (EMA). Identifica as tendências do mercado através do cálculo das médias dos grupos de EMAs de curto e longo prazo e gera sinais de negociação quando a linha de equilíbrio é cruzada. A estratégia integra um mecanismo de stop-loss para controlar o risco e bloquear os lucros.
A estratégia usa seis EMAs de curto prazo (períodos 3, 5, 8, 10, 12, 15) e seis EMAs de longo prazo (períodos 30, 35, 40, 45, 50 e 60) para obter um indicador de tendência de curto prazo e longo prazo mais suave, mediando essas médias respectivamente. Quando a média de curto prazo atravessa a média de longo prazo para cima, um sinal de aumento é gerado; quando a média de curto prazo atravessa a média de longo prazo para baixo, um sinal de queda é gerado.
Trata-se de uma estratégia de acompanhamento de tendências bem estruturada, que fornece um sinal de negociação relativamente confiável através do uso de uma combinação de múltiplas linhas médias. Embora haja algum risco de atraso, o desempenho geral da estratégia pode ser ainda melhorado com uma configuração de stop loss razoável e uma orientação de otimização recomendada.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Pavan Guppy Strategy", shorttitle="Pavan Avg", overlay=true,
default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Short-term EMAs
shortEMA1 = ta.ema(close, 3)
shortEMA2 = ta.ema(close, 5)
shortEMA3 = ta.ema(close, 8)
shortEMA4 = ta.ema(close, 10)
shortEMA5 = ta.ema(close, 12)
shortEMA6 = ta.ema(close, 15)
// Long-term EMAs
longEMA1 = ta.ema(close, 30)
longEMA2 = ta.ema(close, 35)
longEMA3 = ta.ema(close, 40)
longEMA4 = ta.ema(close, 45)
longEMA5 = ta.ema(close, 50)
longEMA6 = ta.ema(close, 60)
// Average short-term EMAs
shortAvg = (shortEMA1 + shortEMA2 + shortEMA3 + shortEMA4 + shortEMA5 + shortEMA6) / 6.0
// Average long-term EMAs
longAvg = (longEMA1 + longEMA2 + longEMA3 + longEMA4 + longEMA5 + longEMA6) / 6.0
// Plot averaged EMAs
plot(shortAvg, color=color.green, linewidth=2, title="Averaged Short-term EMAs")
plot(longAvg, color=color.red, linewidth=2, title="Averaged Long-term EMAs")
// Define the target and stop loss percentages
takeProfitPerc = 10
stopLossPerc = 5
// Generate buy signal when shortAvg crosses above longAvg
if ta.crossover(shortAvg, longAvg)
strategy.entry("Buy", strategy.long)
// Generate sell signal when shortAvg crosses below longAvg
if ta.crossunder(shortAvg, longAvg)
strategy.entry("Sell", strategy.short)
// Calculate take profit and stop loss prices for long trades
longTakeProfit = close * (1 + (takeProfitPerc / 100.0))
longStopLoss = close * (1 - (stopLossPerc / 100.0))
// Set take profit and stop loss for long positions
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)
// Calculate take profit and stop loss prices for short trades
shortTakeProfit = close * (1 - takeProfitPerc / 100.0)
shortStopLoss = close * (1 + stopLossPerc / 100.0)
// Set take profit and stop loss for short positions
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=shortTakeProfit, stop=shortStopLoss)