RSIモメンタム・ロング・ショート戦略は,Larry Connors RSI指標に基づいた典型的なモメンタム戦略で,RSIからのオーバーバイトとオーバーセールシグナルを使用してエントリーと出口を決定する.鍵は価格がオーバーバイトまたはオーバーセール状態にあるかどうかを特定し,それを取引シグナルとして使用することです.
この戦略は,回顧期間の価格の上昇勢力と下落勢を計算することによって,RSIインジケーターを構築する. 過売り線10を下回るRSIは過売りとみなされ,過買い線90上のRSIは過買いとみなされる. RSIが下から過売り線を横切るときはロング信号を生成し,RSIが上から過買い線を横切るときはショート信号を生成する.
移動平均値のフィルタが追加され,5日間MAが200日間MAを超えると長信号,そして5日間MAが200日間MAを下回ると短信号が許可される.これは短期的なリバウンドからの偽信号をフィルタリングするのに役立ちます.
また,利益採取メカニズムも導入されている.RSIが過買い線90を横切ると既存のロングポジションは閉鎖される.RSIが過売り線10を下回ると既存のショートポジションは閉鎖される.これは利益をロックし,損失の増加を回避する.
価格逆転の瞬間を把握するために RSI を使用します.
MAフィルターを追加することで 短期間のノイズからの 誤った信号が減少します
利益を得る仕組みは リスクをコントロールし 損失を制限するのに役立ちます
シンプルで明快なルールで 分かりやすく実行できます
RSIは広く使用され,多くのツールに適した実用的な指標です.
RSIの買い過ぎ/売り過ぎは必ずしも逆転を招くわけではない.
MAフィルターは良い取引機会もフィルター化できます
不適切な収益設定は 傾向を早すぎるほど放棄します
RSIのバックバック,過剰購入/過剰販売レベル,MA設定の調整が必要です.
パラメータの最適化,他の指標の組み合わせ,柔軟な利益の取得などによってリスクを軽減できます
RSIを異なる回顧期間でテストします
RSIを補完するためにKDJ,MACDなどの他の指標を追加します.
過剰購入/過剰販売のレベルを市場制度に基づいて調整する.
持有期間に基づいて,利得率のRSIレベルを調整する.
ストップ・ロスの戦略を組み込む
MAシステムを最適化して ダイナミックストップ・ロストを
RSIモメンタム・ロング・ショート戦略は,RSIを使用して,MAsと利益採取規則によってフィルタリングされた過買い/過売レベルを特定し,短期間の逆転機会を捉える.この戦略はシンプルで実践的で,多様な市場に適応するためにさらなるテストと強化に値する.全体的には,定量的な取引戦略開発のための基準として役立つ良い枠組みを提供します.
/*backtest start: 2023-09-25 00:00:00 end: 2023-10-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //authour: SudeepBisht //@version=3 //Based on Larry Connors RSI-2 Strategy - Lower RSI strategy("SB_CM_RSI_2_Strategy_Version 2.0", overlay=true) src = close entry= input(defval=0,title="Entry area") entry:=nz(entry[1]) overBought=input(90) overSold=input(10) //RSI CODE up = rma(max(change(src), 0), 2) down = rma(-min(change(src), 0), 2) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //Criteria for Moving Avg rules ma5 = sma(close,5) ma200= sma(close, 200) //Rule for RSI Color col = close > ma200 and close < ma5 and rsi < 10 ? lime : close < ma200 and close > ma5 and rsi > 90 ? red : silver chk= col==red?-1:col==lime?1:0 if (not na(rsi)) if (crossover(rsi, overSold)) if(chk[1]==1) strategy.entry("RsiLE", strategy.long, comment="RsiLE") entry:=1 if (crossunder(rsi, overBought)) if(chk[1]==-1) strategy.entry("RsiSE", strategy.short, comment="RsiSE") entry:=-1 if (not na(rsi)) if (crossover(rsi, overSold) and entry==-1) strategy.close_all() //strategy.entry("RsiLE", strategy.long, comment="RsiLE") entry:=0 if (crossunder(rsi, overBought) and entry==1) strategy.close_all() //strategy.entry("RsiSE", strategy.short, comment="RsiSE") entry:=0