RSI チャネル スプレッド フォロー戦略


作成日: 2023-12-18 17:48:24 最終変更日: 2023-12-18 17:48:24
コピー: 0 クリック数: 680
1
フォロー
1621
フォロワー

RSI チャネル スプレッド フォロー戦略

概要

RSIチャネル差値追跡策略は,RSI指標が値チャネル内での波動を追跡し,価格の突破と組み合わせて取引信号を生成する.この策略は,暗号通貨市場の急速な買取りの爆発を捕捉することを目的としている.

戦略原則

  1. ハル移動平均の平滑RSIを使用して,平滑後のRSI指標を生成する. 閉じる価格RSI,最高価格RSI,最低価格RSI,および中位数価格RSIを含む.

  2. RSIチャネルを55-45の範囲に設定します. RSI指標が55-45のチャネルに入ると,震動領域に入ることを意味します.

  3. 閉塞価格RSIがチャネル上線から下がり,閉塞価格が中位数値を下回ると,価格が負荷を負っていることを示し,中位数値RSIがチャネル上限より高い状態で,中位数値がまだ買い力を持っていることを示し,中位数値の突破を追跡する論理に合致し,買い信号を生じます.

  4. RSIがチャネルの下限から反発し,閉盤が中位数値より高くなったとき,価格はサポートされていることを示します.このとき,中位数値RSIは中位数値が下限より低いことを示し,中位数値が大きな負荷を負っていることを示し,中位数値の突破を追跡する論理に適合し,販売信号を生じます.

  5. 最高価格RSIと最低価格RSIの指標は,取引信号の失敗を早期に認識し,迅速に停止するために使用されます.

戦略的優位性

  1. 中位数値突破を使用して中位数値の強み方向を追跡し,トレンド追跡の理念に合致する.

  2. RSIの振動は,下落の通路内で,調整へのヒントを出し,中位数値が中位数値の強烈な方向を追跡するために中位数値を使用し,区間振動に囚われないようにします.

  3. 最高価格RSIと最低価格RSIの指標は,取引信号の失敗を迅速に識別し,迅速にストップして,損失を効果的に制御するために使用されます.

戦略リスク

  1. RSI指標の設定が不適切である場合,過度に敏感または鈍くなる可能性があります.

  2. 中位数値の突破の意味は,常に信頼できないし,中位数値自体が揺れ動いている可能性があります.

  3. 仮想通貨市場は波動性があり,ストップ・ロスの設定が過度に緩やかになり,損失が拡大する可能性があります.

解決策は

  • RSIパラメータを価格変化に適度に対応するように最適化
  • 中位数値突破の信頼性に関する指標
  • 適正にストップポジションを絞り込み,過度の損失を防止する

戦略最適化の方向性

  1. 中位数値の判断を可能にする指標の増強

ブリン帯のような指標を導入して,中位数値が上下軌道に接近しているかどうかを判断することができ,中位数値の突破方向の判断の正確性を向上させることができる.

  1. 機械学習モデルによる 補助判断の導入

LSTMなどの深度学習モデルを使用して,中位数価格の将来の動きを予測し,中位数価格が特定の方向を突破するかどうかを決定するのに役立ちます.

  1. 適応性障害を使用する

市場の波動程度に応じて,リアルタイムでストップ・ロースの位置を調整する.例えば,波動が大きくなると,適切にストップ・ロースの位置を締め;波動が小さくなると,適切にストップ・ロースの位置を緩めることができる.

要約する

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