
リバースフィッシャーRSI平均リアルレンジマルチタイムフレームストラテジーは,市場が逆転する可能性のあるターニングポイントを発見するために,リバースフィッシャーRSI指数の逆調整後の移動平均を計算することによって,より高いタイムフレームで試す量化取引戦略である.
この戦略は,RSIのパラメータである一般のRSIを最初に計算します._pmは,RSIの周期長さを計算する. そして,元のRSIを数学関数IFで逆調整して,IF ((input) => ((exp ((2) という式で計算する.*input)-1)/(exp(2*input) +1) 〜 調整されたRSI指標を変数IFに転送する_RSI。
余計な騒音をフィルターするには,IFで策略を設定します._RSIで計算すると,_ps 周期的な移動平均で,最終的な値の判断に用いられる指数wma_RSI. この指標は,0-100の範囲にマッピングされます.
最後に,戦略は,指数をより高い時間枠に描き,0.8と-0.8の値線を設定します.指数線が0.8のレベルを下から上へと突破すると,買いのシグナルが生じます.指数線が0.8のレベルを上から下へと突破すると,売りのシグナルが生じます.
この戦略は,二重平滑の方法でRSIの動きを処理し,過剰なノイズを効果的にフィルターし,より明確な反転信号をロックします.二重平滑は,原始RSI指標と絶対値調整後のRSI指標にそれぞれ適用されます.この方法は,指標の平均回帰特性を強化し,より信頼性の高い取引信号を生成します.
さらに,この戦略は,多時間枠分析の方法を採用し,より高度な時間枠で指標の突破を識別し,長線での反転の機会をロックし,過度の短期市場の騒音に邪魔されないようにします.
この戦略は,均線指数による買い売りの判断に依拠し,一定の遅れがある.長期の牛市では,指数調整後の上昇スペースが制限され,トレンドの機会を十分に捉えられない可能性がある.
一方,指標の調整は,ショートラインの調整後の反発の機会を逃す可能性があります.指標パラメータを適切に最適化できない場合,一定の戦略的リスクに直面する可能性があります.
市場環境に適した指標パラメータの調整を試みることができる.例えば,異なるRSI計算周期,平滑周期パラメータをテストし,最適なパラメータの組み合わせを探することができる.
また,他の補助指標と組み合わせて信号を検証して,戦略の安定性を高めることも考えられます.例えば,取引量指標,ブリンラインなどのトレンド信号の強さを判断する指標が加えられます.
逆フィッシャーRSI平均のリアル範囲の多時間枠戦略は,全体的に考え方がより堅牢であるが,より広範な市場状況に適応するために最適化が必要である.さらなるテストと改良が,信頼性の高い量化取引戦略となるに値する.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Inverse Fisher RSI-MTF2", shorttitle="INRSIM2",overlay=true)
//Inputs
RSI_pm = input(5, title="RSI Main Period",minval=2)
RSI_ps = input(1, title="RSI Smooth Period",minval=0)
//Functions
IF(input)=>(exp(2*input)-1)/(exp(2*input)+1)
//RSI Calculation
raw_RSI=0.1*(rsi(close,RSI_pm)-50)
wma_RSI=wma(raw_RSI,RSI_ps)*100
IF_RSI = IF(wma_RSI)
resCustom = input(title="Timeframe", defval="1440" )
v=request.security(syminfo.tickerid, resCustom,IF_RSI)
a=v>0.8
b=v<-0.8
z=0.8
buy = crossover(v,z)
sell=crossunder(v,b)
plotshape(sell, title="sell", style=shape.triangledown,location=location.abovebar, color=red, transp=0, size=size.small)
plotshape(buy, title="buy", style=shape.triangleup,location=location.belowbar, color=green, transp=0, size=size.small)
//Strategy
golong = crossover(v,z)
goshort = crossunder(v,b)
strategy.entry("Buy",strategy.long,when = golong)
strategy.entry("Sell",strategy.short,when = goshort)