
이 전략은 라구에르 RSI 지표를 사용하여 구매/판매 신호를 생성하고, ADX 지표와 결합하여 신호를 필터링한다. 라구에르 RSI가 기본 구매/판매 수준을 넘어섰을 때, 그리고 ADX가 설정된 마이너스보다 높을 때, 전략은 구매/판매 신호를 생성한다. 빠른 지표와 느린 지표의 결합이 가능한 이 방법은 트렌드 강도가 충분할 때 적절한 시간에 거래 기회를 잡을 수 있으며, 트렌드가 불명확할 때 거래를 피한다.
라구에르 RSI는 가격 변화의 속도와 강도를 측정하는 동력 지표입니다. 라구에르 필터를 기반으로, 전통적인 RSI에 비해 가격 변화에 대한 반응이 더 민감합니다. 전략은 라구에르 RSI와 기본 구매 수준을 비교하여 대응 신호를 생성합니다.
ADX 지표는 가격 트렌드의 강도를 측정하며, 수치가 커질수록 트렌드가 강하다는 것을 나타냅니다. ADX 마이너스를 설정하여, 트렌드 강도가 도달 할 때 포지션을 열고, 트렌드가 보이지 않을 때 지켜보고 있습니다. 이것은 신호의 신뢰성을 높이고 빈번한 거래를 피하는 데 도움이됩니다.
전략은 라구에르 RSI의 교차를 사용하여 구매/판매 신호를 유발합니다. 지표가 구매/판매 수준을 넘어서면 상장하고, 판매/판매 수준을 넘어서면 상장합니다. 또한, ADX는 트렌드 강도를 확인하기 위해 기본 절벽보다 높아야 합니다. 이 이중 조건은 강력한 트렌드에서 거래 기회를 잡기 위해 설계되었습니다.
Laguerre RSI는 ADX 필터링과 결합한 거래 전략으로, 트렌드 추적 방법이다. 그것은 빠른 지표를 사용하여 가격 변화를 포착하고, 동시에 느린 지표를 통해 트렌드 강도를 확인한다. 이 조합은 트렌드가 명확할 때 적시에 거래할 수 있고, 트렌드가 불분명할 때 관찰할 수 있다. 전략의 장점은 논리적으로 간단하고 적용 범위가 넓지만, 빈번한 거래와 위험 제어 부족의 문제가 있다.
/*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))