
A estratégia usa uma combinação de médias móveis, MACD e RSI para identificar tendências de preços de ações, alcançando baixas e altas. A estratégia gera um sinal de compra quando a média móvel de curto prazo atravessa a média móvel de longo prazo e o preço de fechamento é superior à média móvel de 50 dias. A estratégia também corrige o sinal de entrada com o indicador RSI para determinar se está em uma área de sobrecompra ou sobrevenda e corrige a tendência de médio prazo com o gráfico direto do indicador MACD.
A estratégia baseia-se principalmente na estratégia de dupla média móvel, que gera um sinal de compra quando a média móvel de curto prazo (EMA de 3 dias) atravessa a média móvel de longo prazo (EMA de 30 dias) e um sinal de venda quando a média móvel de longo prazo atravessa a média móvel de curto prazo. Esta é uma técnica comum para determinar as tendências de curto e longo prazo dos preços das ações.
Além disso, a estratégia também introduziu uma média móvel de 50 dias, que gera um sinal de compra apenas quando o preço está acima da linha de 50 dias e um sinal de venda quando está abaixo, para evitar transações frequentes e filtrar alguns sinais falsos.
Além disso, o indicador RSI é usado para determinar se há um excesso de compra ou venda. Se o RSI estiver acima de 70, ele é considerado um excesso de compra, no qual mesmo um forte aumento de curto prazo pode enfrentar uma reversão. Se o RSI estiver abaixo de 30, ele é considerado um excesso de venda, no qual mesmo uma queda de curto prazo pode ocorrer.
Finalmente, o MACD é usado para determinar a tendência de médio e longo prazo. Se o MACD for maior que 0, o sinal de entrada é mais confiável, representando uma tendência de alta; se o MACD for menor que 0, o sinal de entrada é mais confiável, representando uma tendência de baixa, mesmo que o sinal de compra seja produzido a curto prazo.
A maior vantagem da estratégia é que a combinação de vários indicadores torna os sinais de entrada e saída mais precisos e confiáveis. Um único indicador é propenso a produzir falsos sinais, e a estratégia determina a tendência de curto prazo através de médias móveis, o RSI determina a tendência de overbought e o MACD determina a tendência de médio prazo, o que aumenta significativamente a probabilidade de sucesso de cada transação.
Outra vantagem é a combinação de negociação de tendência e negociação de contra-ação. Seguir a tendência, seguir o momento é a crença de todos os comerciantes de tendência.
O principal risco dessa estratégia é o ajuste rápido causado por eventos inesperados. Qualquer estratégia quantitativa é difícil de lidar com a forte oscilação de preços causada por grandes ganhos ou notícias positivas.
Outro risco é que a correção de curto prazo em movimentos de vários pontos cause uma parada de perdas. Mesmo que a linha média ainda seja um mercado de touros, a correção de curto prazo pode ser interrompida para encerrar a posição longa.
A estratégia pode ser otimizada a partir das seguintes dimensões:
Optimização de parâmetros. Você pode testar mais combinações de parâmetros para encontrar o melhor parâmetro.
Adicionar mais indicadores. Pode testar a adição de outros indicadores, como linhas de Brin e KDJ, para enriquecer a combinação de vários indicadores e melhorar a qualidade do sinal.
Otimizar o mecanismo de parada de perda. Pode testar métodos de parada mais avançados, como parada de rastreamento de perda, parada de ruptura de intervalos, para reduzir a probabilidade de a parada ser impactada.
Adaptação a mais ambientes de mercado. Pode otimizar alguns parâmetros da estratégia, permitindo obter ganhos estáveis em mais tipos de mercados.
A estratégia utiliza uma combinação de médias móveis, indicadores RSI e MACD para gerar sinais de alta qualidade, evitando as limitações de um único indicador, permitindo que cada decisão de compra e venda tenha uma grande confiança. Ao mesmo tempo, a estratégia contempla a negociação de tendência e a negociação de contraste, garantindo que a tendência seja atingida, além de poder escolher uma operação de contraste eficiente nos momentos críticos.
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('sachin 3.30 ', overlay=true)
// Input parameters
length = input.int(14, title='RSI Length', minval=1)
overbought = input.int(70, title='RSI Overbought Level', minval=0, maxval=100)
oversold = input.int(30, title='RSI Oversold Level', minval=0, maxval=100)
ema3_length = input(3, title='EMA 3 Length')
ema30_length = input(30, title='EMA 30 Length')
ema50_length = input(50, title='EMA 50 Length')
// Calculate EMAs
ema3 = ta.ema(close, ema3_length)
ema30 = ta.ema(close, ema30_length)
ema50 = ta.ema(close, ema50_length)
// Calculate RSI
rsiValue = ta.rsi(close, length)
// Calculate MACD
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)
var float buyPrice = na
// Buy condition: EMA 3 crosses above EMA 30 and price is above EMA 50
buyCondition = ta.crossover(ema3, ema30) and close > ema50
if (buyCondition)
buyPrice := close
strategy.entry('Buy', strategy.long)
// Exit long position when close is below EMA30 and below the low of the previous 3 candles after the buy entry
exitLongCondition = close < ema30 and close < ta.lowest(low, 3) and close < buyPrice
if (exitLongCondition)
strategy.close('BuyExit')
// Sell condition: EMA 3 crosses below EMA 30 and price is below EMA 50
sellCondition = ta.crossunder(ema3, ema30) and close < ema50
if (sellCondition)
strategy.entry('Sell', strategy.short)
// Exit short position when close is above EMA30 and above the high of the previous 3 candles after the sell entry
exitShortCondition = close > ema30 and close > ta.highest(high, 3)
if (exitShortCondition)
strategy.close('SellExit')
// Plot EMAs on the chart
plot(ema3, color=color.new(color.blue, 0), title='EMA 3')
plot(ema30, color=color.new(color.red, 0), title='EMA 30')
// Change color of EMA 50 based on MACD histogram
ema50Color = hist > 0 ? color.new(color.blue, 0) : hist < 0 ? color.new(color.black, 0) : color.new(color.blue, 0)
plot(ema50, color=ema50Color, title='EMA 50 Colored')
// Change color of EMA 30 based on RSI trend
ema30Color = rsiValue > oversold ? color.new(color.green, 0) : rsiValue < overbought ? color.new(color.red, 0) : color.new(color.blue, 0)
plot(ema30, color=ema30Color, title='EMA 30 Colored')
// Highlight Buy and Sell signals on the chart
bgcolor(buyCondition ? color.new(color.green, 90) : na)
bgcolor(sellCondition ? color.new(color.red, 90) : na)
// Plotting Buy and Sell Signals on the Chart until strategy exit
barcolor(strategy.position_size > 0 and rsiValue > overbought ? color.new(color.yellow, 0) : strategy.position_size < 0 and rsiValue < oversold ? color.new(color.black, 0) : na)