
A estratégia usa o Laguerre RSI para gerar um sinal de compra e venda e, em combinação com o ADX, filtra os sinais. A estratégia produz um sinal de compra e venda quando o Laguerre RSI ultrapassa o nível de compra e venda predeterminado e o ADX está acima do limiar definido.
O RSI de Laguerre é um indicador dinâmico usado para medir a velocidade e intensidade das mudanças de preço. É baseado no filtro de Laguerre e é mais sensível à reação de mudanças de preço do que o RSI tradicional. A estratégia gera o sinal correspondente comparando o RSI de Laguerre com o nível de compra e venda predeterminado.
O indicador ADX mede a intensidade da tendência de preços, e quanto maior o valor, mais forte a tendência. A estratégia é estabelecer o limiar ADX, abrindo posições quando a tendência atinge a intensidade, e mantendo-se atento quando a tendência não é visível. Isso ajuda a aumentar a confiabilidade do sinal e evitar a negociação frequente.
A estratégia usa o cruzamento do RSI de Laguerre para desencadear um sinal de compra e venda, abrindo uma posição quando o indicador atravessa um nível de compra e abrindo uma posição quando o indicador atravessa um nível de venda. Ao mesmo tempo, o ADX precisa ser superior ao limiar predefinido para confirmar a força da tendência.
A estratégia de negociação Laguerre RSI combinada com filtragem ADX, é um método de acompanhamento de tendências. Ele usa indicadores rápidos para capturar mudanças de preço e, ao mesmo tempo, confirma a força da tendência através de indicadores lentos. Esta combinação permite negociar em tempo hábil quando a tendência é clara e manter-se atento quando a tendência não é clara.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Laguerre RSI with Buy/Sell Signals and ADX Filter', shorttitle='LaRSI_ADX Signals', overlay=false)
// Kullanıcı girdileri
src = input(title='Source', defval=close)
alpha = input.float(title='Alpha', minval=0, maxval=1, step=0.1, defval=0.2)
buyLevel = input(20, title='Buy Level')
sellLevel = input(80, title='Sell Level')
adxLength = input(14, title='ADX Length')
adxSmoothing = input(14, title='ADX Smoothing')
adxLevel = input(20, title='ADX Level') // adxLevel tanımlamasını ekledik
// ADX hesaplaması
[diPlus, diMinus, adx] = ta.dmi(adxLength, adxSmoothing)
// Laguerre RSI hesaplamaları
gamma = 1 - alpha
L0 = 0.0
L0 := (1 - gamma) * src + gamma * nz(L0[1])
L1 = 0.0
L1 := -gamma * L0 + nz(L0[1]) + gamma * nz(L1[1])
L2 = 0.0
L2 := -gamma * L1 + nz(L1[1]) + gamma * nz(L2[1])
L3 = 0.0
L3 := -gamma * L2 + nz(L2[1]) + gamma * nz(L3[1])
cu = (L0 > L1 ? L0 - L1 : 0) + (L1 > L2 ? L1 - L2 : 0) + (L2 > L3 ? L2 - L3 : 0)
cd = (L0 < L1 ? L1 - L0 : 0) + (L1 < L2 ? L2 - L1 : 0) + (L2 < L3 ? L3 - L2 : 0)
temp = cu + cd == 0 ? -1 : cu + cd
LaRSI = temp == -1 ? 0 : cu / temp
// Alım ve satım sinyalleri
longCondition = ta.crossover(100 * LaRSI, buyLevel) and adx > adxLevel
shortCondition = ta.crossunder(100 * LaRSI, sellLevel) and adx > adxLevel
// Strateji giriş ve çıkışları
strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=shortCondition)
// Göstergeleri çizme
plot(100 * LaRSI, title='LaRSI', linewidth=2, color=color.new(color.blue, 0))
hline(buyLevel, title='Buy Level', color=color.new(color.green, 0), linestyle=hline.style_dotted)
hline(sellLevel, title='Sell Level', color=color.new(color.red, 0), linestyle=hline.style_dotted)
plot(adx, title='ADX', color=color.new(color.orange, 0))