この戦略は,ラガーRSIインジケーターを使用して購入・販売シグナルを生成し,ADXインジケーターを使用してシグナルをフィルタリングする.ラガーRSIが既定の購入・販売レベルを超えたり下回ったりし,ADXが設定された
ラガーRSIは,価格変動のスピードと強さを測定するために使用されるモメントインジケーターである.これはラガーフィルターに基づい,従来のRSIと比較して価格変化により敏感である.この戦略は,ラガーRSIを事前に定義された購入および販売レベルと比較してシグナルを生成する.
ADX指標は,価格傾向の強さを測定し,より高い値はより強い傾向を示す.戦略は,傾向強さが十分である場合にのみ取引を開始し,傾向が明確でないときに脇に立っているようにするADX
この戦略は,Laguerre RSIのクロスオーバーを使用して,買いと売りのシグナルを誘発する.インジケーターが買い値を超えるとロングポジション,売値を下回るとショートポジションに入る.同時に,ADXはトレンド強さを確認するために,事前に設定された
ADXフィルタ付きのラグエールRSIは,トレンドフォローアプローチである.トレンド強さを遅い指標で確認しながら,価格変化を把握するために高速指標を使用する.この組み合わせは,トレンドが明確であるときにタイミングで取引を可能にし,トレンドが不確実であるときに脇に留まる.この戦略の利点は,そのシンプルさと広範な適用性にあるが,頻繁な取引や不十分なリスク管理などの問題もある.将来の強化は,より強力なリターンを達成するために,信号最適化,リスク管理の改善,ポジションサイジングに焦点を当てることができる.
/*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))