
O RSI Moving Average Crossover Trend Strategy é uma estratégia que usa o sinal de cruzamento da média média do RSI para determinar a tendência e emitir um sinal de negociação. A estratégia combina o EMA do preço com um sinal de compra somente quando o preço está acima do EMA.
O indicador central da estratégia é o RSI, e calcula as duas linhas médias EMA e SMA do RSI. Um sinal de compra é emitido somente quando a linha EMA do RSI é superior à linha SMA e o preço é superior à EMA. Quando a linha EMA do RSI é inferior à linha SMA, um sinal de venda é emitido, implementando o acompanhamento da tendência.
O indicador RSI é capaz de refletir efetivamente o fenômeno de sobrecompra e sobrevenda do mercado. A quebra de 70 no indicador RSI é considerada como uma sobrecompra do mercado, e a quebra de 30 é considerada como uma sobrevenda. A estratégia usa duas médias móveis EMA e SMA para descobrir a tendência e o ponto de viragem do indicador RSI.
Quando a EMA do RSI começa a subir, indicando que o mercado mostra sinais de estabilização, o SMA é usado para verificar sua direção; Quando o SMA também começa a subir, indicando que o RSI entrou claramente em uma tendência ascendente, a estratégia emite um sinal de compra, seguindo a tendência, sob a premissa de que o preço está acima da EMA.
É uma estratégia de acompanhamento de tendências que permite efetivamente capturar oportunidades de direção em longas e médias linhas. Em comparação com um único indicador, a estratégia usa EMA e SMA do RSI para formar uma verificação cruzada, reduzindo sinais errados e aumentando a estabilidade.
A estratégia também combina os EMAs de preços para garantir que as compras sejam feitas apenas quando os preços estão em alta, evitando o risco de uma situação de choque, o que aumenta a probabilidade de lucro.
A estratégia baseia-se principalmente no indicador RSI, que também emite um sinal de erro quando o RSI produz um sinal de erro. Além disso, o indicador RSI é mais adequado para julgar o fenômeno de sobrecompra e sobrevenda, e tem um certo atraso para julgar a tendência da linha média e longa.
A estratégia também tem um certo atraso de tempo, especialmente quando a EMA e a SMA do RSI se aproximam do equilíbrio, o que pode causar um atraso no sinal. Há também um risco de perda durante esse período.
Pode-se considerar a otimização do RSI, selecionando parâmetros mais adequados para aumentar a eficácia de seu julgamento.
Pode-se considerar a adição de lógica de parada de perdas, a retirada da posição após a perda atingir uma certa amplitude, controlando efetivamente o risco.
É possível testar configurações de parâmetros em diferentes períodos de tempo e otimizar os parâmetros para que a estratégia funcione de forma estável em mais variedades e mais períodos.
A estratégia de tendência de cruzamento de linha média do RSI é uma estratégia simples que usa o indicador RSI para determinar a direção da tendência e a verificação de cruzamento. Combinada com a EMA do preço, ela é capaz de agarrar oportunidades de direção em uma tendência ascendente. A estratégia é mais estável e adequada para a linha média e longa, mas também precisa ter cuidado para evitar certos riscos de atraso.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Created by Sv3nla 5-Jan-2021
strategy(title="Sv3nla RSI EMA SMA Strat", shorttitle="Sv3nla RSI EMA SMA Strat", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === BACKTEST RANGE ===
FromMonth = input(defval = 5, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2015, title = "From Year", minval = 2015)
ToMonth = input(defval = 1, title = "To Month", minval = 1)
ToDay = input(defval = 1, title = "To Day", minval = 1)
ToYear = input(defval = 9999, title = "To Year", minval = 2022)
// syminfo.mintick = 0.01$ for BTCUSDT
testPeriod() => true
//INPUTS
rsilen = input(defval = 16, minval=1, title="RSILength")
RSIemaLen = input(defval = 12, minval=1, title="RSI EMA Length")
RSIsmaLen2 = input(defval = 29, minval=1, title="RSI SMA Length2")
length = input(defval = 8, minval=1, title="EMA price Length")
// RSI
RSIsrc = close
RSIup = rma(max(change(RSIsrc), 0), rsilen)
RSIdown = rma(-min(change(RSIsrc), 0), rsilen)
rsi = RSIdown == 0 ? 100 : RSIup == 0 ? 0 : 100 - 100 / (1 + RSIup / RSIdown)
emavalue=ema(rsi,RSIemaLen)
smavalue=sma(rsi,RSIsmaLen2)
//EMA
ema=ema(close,length)
//PLOT
plot(ema(rsi, RSIemaLen), color=color.yellow, linewidth=2, title="EMA", transp=0)
plot(sma(rsi, RSIsmaLen2), color=color.aqua, linewidth=2, title="SMA", transp=0)
//ORDERS
if (testPeriod())
strategy.entry("long",strategy.long, comment="RSIEMA", when=(emavalue > smavalue and close>ema))
strategy.close(id="long", when=(emavalue < smavalue))
// Colour background when in a trade and 50 horizontal line
backgroundColour = (strategy.position_size > 0) ? color.green : na
bgcolor(color=backgroundColour, transp=85)
hline(50, color=color.yellow)