資源の読み込みに... 荷物...

逆 フィッシャー RSI 移動平均 多時間枠戦略

作者: リン・ハーンチャオチャン開催日:2023年11月21日 14:45:28
タグ:

img

概要

Inverse Fisher RSI Moving Average Multi Timeframe Strategyは,より長いタイムフレームで逆調整されたRSI指標の移動平均を計算することによって,潜在的な市場逆転点を特定しようとする定量的な取引戦略です.

戦略の論理

戦略はまず通常のRSI指標を計算し,RSI_pmパラメータがRSI計算期間を表します.その後,元のRSIは数学関数IF (input) => (exp) 2を通じて逆調整されます.入力)-1)/exp2調整されたRSIは IF_RSI変数に転送されます.

過剰なノイズをフィルタリングするために,この戦略は,RSI_ps期間中のIF_RSIの移動平均をさらに計算し,購入・販売シグナルを決定するために使用される最終指標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)





もっと