RSIチャネル価格差追跡戦略は,価格ブレイクと組み合わせた
Hull Moving Average を使って RSI を平滑させ,閉値,最高値,最低値,中値の RSI を含む平滑した RSI インディケーターを生成します.
RSIチャネル範囲を55-45に設定します. RSIが55-45チャネルに入ると,ショックゾーンに入ることを示します.
閉じる価格のRSIがチャネルの上限から下がり,閉じる価格がミディアン価格よりも低い場合,価格は圧迫を受けていることを示します.しかし,この時点で,ミディアン価格RSIはチャネルの上限以上であり,ミディアン価格はまだ,ミディアン価格ブレイクを追跡する論理を満たす購買力を持っていることを示しています.したがって,購入信号が生成されます.
閉じる価格RSIはチャネルの下限から反発し,閉じる価格が中位価格よりも高くなります.これは価格がサポートを持っていることを示します.しかし,この時点で,中位価格RSIはチャネルの下限を下回り,中位価格がより大きな圧力を持っていることを示します.これは中位価格ブレイクを追跡する論理を満たします.したがって,セールシグナルが生成されます.
最も高い価格のRSIと最も低い価格のRSIインジケーターは,不正な取引信号を迅速に識別し,迅速なストップ損失を実現するために使用されます.
中間価格の強い方向性を追跡するために中間価格のブレイクを使用することは,トレンド追跡のアイデアを満たします.
RSIが
最も高い価格のRSIと最も低い価格のRSIインジケーターは,不正な取引シグナルを迅速に識別し,損失を効果的に制御できる迅速なストップ損失を実現するために使用されます.
RSI パラメータの設定が正しくない場合,過度に敏感または反応が遅くなる可能性があります.
平均価格のブレイクの重要性は常に信頼性がないし,平均価格自体も変動する可能性があります.
仮想通貨市場の変動が高く ストップ・ロスの設定が過度に緩やかで 損失が増大する可能性があります
解決策:
ボリンジャー帯のような指標を導入し,中間価格が上位または下位帯に近いかどうかを判断し,それによって中間価格のブレイクアウト方向を判断する精度を向上させる.
LSTMやその他のディープラーニングモデルを使用して,中位価格の将来の傾向を予測し,中位価格が特定の方向に成功して突破できるか判断するのに役立ちます.
市場変動に基づいてストップ損失ポジションを動的に調整する.例えば,変動が上昇するとストップ損失ポジションを適切に締め,変動が低下するとストップ損失ポジションを適切に緩める.
RSIチャネル価格差トラッキング戦略は,暗号市場における急速な買い/売急を捕捉することを目的として,チャネル内のRSI変動と価格ブレイクを組み合わせてトレーディングシグナルを生成する.この戦略は,トレンドトラッキングとレンジ識別方法を効果的に組み合わせ,価格差が狭くなっても良い取引シグナルを得ることができる.一方,高速ストップ損失メカニズムは,戦略のリスクを制御することもできる.次のステップは,より多くの指標判断と機械学習予測を組み合わせることで,戦略の信頼性と収益性をさらに向上させることである.
/*backtest start: 2023-11-17 00:00:00 end: 2023-12-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hull MA of RSI Strategy",overlay=false) //+++++++++++++++++++++++++++++++ //++++++++++++ Setup ++++++++++++ //+++++++++++++++++++++++++++++++ // RSI rsi1_tt="=== RSI ===" rsi1_len=input(13,title="Period",inline="set",group=rsi1_tt) //Mid mid_tt="=== Mid Channel ===" upper=input(55.0,title="Upper",inline="set",group=mid_tt) lower=input(45.0,title="Lower",inline="set",group=mid_tt) //Over over_tt="=== Over ===" ovb=input(70.0,title="Overbought",inline="set",group=over_tt) ovs=input(30.0,title="Oversold",inline="set",group=over_tt) //++++++++++++++++++++++++++++++++++++++++ //++++++++++++ Hull MA of RSI ++++++++++++ //++++++++++++++++++++++++++++++++++++++++ hma_tt="=== Hull MA ===" hma_len=input(3,title="Period",inline="set",group=hma_tt) rsi_c=hma(rsi(close,rsi1_len),hma_len) rsi_h=hma(rsi(high,rsi1_len),hma_len) rsi_l=hma(rsi(low,rsi1_len),hma_len) rsi_hl2=hma(rsi(hl2,rsi1_len),hma_len) //++++++++++++++++++++++++++++++++ //++++++++++++ Signal ++++++++++++ //++++++++++++++++++++++++++++++++ var order_status="None" BuySignal= crossunder(rsi_c,ovb) and close<hl2 and rsi_hl2>ovb and order_status=="None" CloseBuy= order_status[1]=="Long" and (crossover(rsi_c,ovb) or crossunder(rsi_l,upper)) SellSignal= crossover(rsi_c,ovs) and close>hl2 and rsi_hl2<ovs and order_status=="None" CloseSell= order_status[1]=="Short" and (crossunder(rsi_c,ovs) or crossover(rsi_h,lower)) ExitSignal= CloseBuy or CloseSell if BuySignal order_status:="Long" if SellSignal order_status:="Short" if ExitSignal order_status:="None" //+++++++++++++++++++++++++++++++++++ //++++++++++++ Plot Line ++++++++++++ //+++++++++++++++++++++++++++++++++++ rsi_c_col= rsi_c>upper?color.new(color.blue,0): rsi_c<lower?color.new(color.blue,0): color.new(color.orange,0) rsi_h_col= rsi_h>upper?color.new(color.green,0): rsi_h<lower?color.new(color.green,0): color.new(color.orange,0) rsi_l_col= rsi_l>upper?color.new(color.yellow,0): rsi_l<lower?color.new(color.yellow,0): color.new(color.orange,0) rsi_hl2_col= rsi_hl2>upper?color.new(color.olive,0): rsi_hl2<lower?color.new(color.olive,0): color.new(color.orange,0) plot(rsi_c,title="RSI Close",color=rsi_c_col,linewidth=2) plot(rsi_h,title="RSI High",color=rsi_h_col,linewidth=1) plot(rsi_l,title="RSI Low",color=rsi_l_col,linewidth=1) plot(rsi_hl2,title="RSI HL2",color=rsi_hl2_col,linewidth=1) upper_line=hline(upper,title="Upper",color=color.new(color.black,100)) lower_line=hline(lower,title="Lower",color=color.new(color.black,100)) fill(upper_line,lower_line,title="Mid Channel",color=color.silver) ovb_line=hline(ovb,title="Overbought",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2) ovs_line=hline(ovs,title="Oversold",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2) //++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++ Plot Analyzing Signals ++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++ //Color buy_col= BuySignal?color.new(color.blue,70):na sell_col= SellSignal?color.new(color.red,70):na close_buy_col= CloseBuy and order_status[1]=="Long"?color.new(color.yellow,70):na close_sell_col= CloseSell and order_status[1]=="Short"?color.new(color.yellow,70):na //Background bgcolor(close_buy_col, title='Close Buy', offset=0) bgcolor(close_sell_col, title='Close Sell', offset=0) bgcolor(sell_col, title='Sell', offset=0) bgcolor(buy_col, title='Buy', offset=0) //++++++++++++++++++++++++++++++++++ //++++++++++++ Backtest ++++++++++++ //++++++++++++++++++++++++++++++++++ strategy.entry("Long",strategy.long,when=BuySignal) strategy.close("Long",when=CloseBuy) strategy.entry("Short",strategy.short,when=SellSignal) strategy.close("Short",when=CloseSell) //EOF