
A estratégia usa o cruzamento do indicador RSI com sua linha de equilíbrio como sinal de negociação, e é uma estratégia de indicador de dinâmica comum. O princípio central é rastrear o diferencial entre o indicador RSI e a média móvel simples SMA_RSI do RSI, e calcular o diferencial para a média móvel simples SMA_RSI2, fazer mais quando o SMA_RSI2 é ultrapassado e posicionar-se quando o SMA_RSI2 é ultrapassado.
A estratégia usa três parâmetros para calcular a média móvel simples do indicador RSI e seus dois períodos diferentes. Primeiro, o indicador RSI convencional é calculado, com o período de comprimento. Em seguida, o SMA RSI de comprimento 2 é calculado.
Assim, constitui-se um sinal de estratégia de negociação baseado em uma linha de cruzamento de média do indicador RSI. Como o SMA_RSI2 é a linha de média do delta de diferença, pode refletir a dinâmica e a tendência de mudança do indicador RSI, dominando a essência do próprio indicador RSI.
A estratégia combina os benefícios do RSI com a sua linha de equilíbrio, permitindo que os preços se ajustem à tendência e evitando que o ruído os desvie. A estratégia usa um método de desvio de delta para tornar os sinais de negociação mais claros. Em geral, a estratégia tem menos retrações e é rentável.
As vantagens são:
A estratégia também apresenta alguns riscos, como:
O que pode ser melhorado são os seguintes aspectos:
Esta estratégia é mais simples e geral, aumentando a praticidade do próprio indicador RSI através da operação de diferença, usando cruzamentos equilíneos para julgar, com um forte controle de retração, é uma estratégia de indicador de momentum muito prática.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy ("RSI&SMA", overlay=false )
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end = timestamp((9999), (1), (1), 0, 0)
_testPeriod() => true
length = input(3, minval=1, title = "RSI period")
length2 = input(21, minval=1, title = "RSI SMA-1")
length3 = input(13, minval=1, title = "RSI SMA-2")
threshold = input(0,step=0.5, title="Threshold")
filter = input(false, title="Use filter?")
up = rma (max (change (close), 0), length)
down = rma (-min (change (close), 0), length)
RSI = down == 0? 100: up == 0? 0: 100-100 / (1 + up / down)
SMA_RSI = sma(RSI, length2)
delta = RSI-SMA_RSI
SMA_RSI2 = sma(delta, length3)
Long = crossover(SMA_RSI2, threshold)
Short = crossunder(SMA_RSI2, threshold)
plot(threshold, color=color.silver)
plot(SMA_RSI2, color= SMA_RSI2 > 0 ? color.blue : color.purple)
//plot(SMA_RSI, color=color.green)
//plot(delta, color=color.red)
long_condition = Long and (filter ? close > ema(close, 200) : true) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)
short_condition = Short
strategy.close('BUY', when=short_condition)