
この戦略は,Laguerre RSI指数を使用して買入シグナルを生成し,ADX指数と組み合わせてシグナルをフィルターします.Laguerre RSIが既定の買入レベルを超え,ADXが設定された値を超えると,戦略は買入シグナルを生成します.この方法は,速いと遅い指標を組み合わせて,トレンドの強さで十分なタイミングで取引機会を捉え,トレンドが不明瞭である場合に取引を避けることができます.
Laguerre RSIは,価格の変化の速度と強さを測定するための動態指標である.これは,Laguerreフィルターに基づいている.従来のRSIと比較して,価格の変化に対する反応はより敏感である.戦略は,Laguerre RSIと既定の買入レベルを比較して,対応するシグナルを生成する.
ADX指標は,価格トレンドの強さを測定し,数値が大きいほど,トレンドが強いことを示します.戦略は,トレンドの強さが標識に達したときにADXの値を設定し,ポジションを開き,トレンドが目に見えないときに待機します.これは信号の信頼性を高め,頻繁に取引を避けるのに役立ちます.
戦略は,Laguerre 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))