
Este artigo analisa principalmente a estratégia de negociação quantitativa baseada em múltiplos índices de médias móveis (EMA) e índices de força relativa (RSI) desenvolvida por Ravikant_sharma. A estratégia determina o cruzamento de diferentes períodos de EMA e os valores do RSI, identifica tendências de preços e determina o momento de entrada e saída.
A estratégia usa 5 EMAs de diferentes períodos, incluindo a linha de 9 dias, a linha de 21 dias, a linha de 51 dias, a linha de 100 dias e a linha de 200 dias. No código, apenas os primeiros 4 EMAs são desenhados. O parâmetro RSI é definido como 14.
A estratégia de abrir mais uma posição é quando se cumpre uma das seguintes condições:
O RSI deve ser maior que 65, o que indica uma forte tendência ascendente.
A estratégia de equilíbrio de saída é executada quando uma das seguintes condições é preenchida:
Esta é uma estratégia típica de rastreamento de tendências, com as seguintes vantagens:
A estratégia também apresenta alguns riscos:
A estratégia também pode ser melhorada nas seguintes direções:
Em geral, esta estratégia é uma estratégia de acompanhamento de tendências confiável e fácil de implementar. Ela usa o EMA de vários períodos para determinar a direção da tendência, em combinação com o RSI para filtrar os falsos sinais, para otimização de parâmetros e otimização de modelos com base em melhores efeitos de retrospecção, com o objetivo de obter ganhos estáveis.
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ravikant_sharma
//@version=5
strategy('new', overlay=true)
start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)
rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))
//plot(ema4, '100', color.new(color.gray, 0))
//LongEntry = ( ta.crossover(ema0,ema3) or ta.crossover(ema0,ema2) or ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1)
if rsi2>65
LongEntry:=true
if ta.crossover(ema1,ema2)
if rsi2>65
LongEntry:=true
LongExit = ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)
if time >= start and time <= end
if(LongEntry and rsi2>60)
strategy.entry('Long', strategy.long, 1)
if(LongExit)
strategy.close('Long')