RSI ボリンジャー・バンド 短期取引戦略

作者: リン・ハーンチャオチャン開催日:2023年12月19日11時09分
タグ:

img

概要

この戦略は,相対強度指数 (RSI) とボリンジャーバンドを組み合わせて短期的取引戦略を構築する.主にRSIが上下ボリンジャーバンドを突破したときの買い売り信号を使用する.一方,リスクを効果的に制御するためにストップ・ロスのメカニズムが含まれています.

戦略の論理

  1. RSI指標を 14 期パラメータで計算する.
  2. RSIの重度の移動平均を用い,周期を25に設定してボリンジャーミッドバンドを計算する.
  3. ボリンジャー帯の上帯と下帯を計算する.上帯はミッドバンドプラス振幅,下帯はミッドバンドマイナス振幅である.振幅はRSI標準偏差の20倍に設定される.
  4. RSIが上位帯を突破するとショートします.
  5. ストップ・ロスのメカニズムを設定します もし価格がロングエントリー価格の6%を下回ったら ロングポジションを閉じるのです

利点分析

この戦略は,短期取引のためのRSIとボリンジャー帯の両方の強みを組み合わせています.主な利点は以下の通りです.

  1. RSIは,過剰購入と過剰販売のシナリオを効果的に決定することができます.ボリンジャー帯を組み合わせることで,取引信号に精度が加わります.
  2. ボリンジャーバンドは動的で,市場の変動に基づいて範囲を自動的に調整します.
  3. ストップ・ロスの設定は,損失を制御しながら通常の変動に対して6%の許容率で合理的です.

リスク分析

この戦略による潜在的なリスクには,以下のものがある.

  1. RSIは遅い特徴を持ち 急速な逆転の機会を逃す可能性があります
  2. 間違ったボリンジャー・バンドパラメータや 劇的な市場の変動が 悪い信号を引き起こす可能性があります
  3. ストップ・ロスのパラメータを誤って設定すると 余計な損失が生じます

解決策:

  1. 総合的な判断をするためにKDJなどの他の指標と組み合わせることを検討してください.
  2. パラメータを動的に最適化します
  3. バックテストと最適化 ストップ損失パラメータ 最適な設定

オプティマイゼーションの方向性

さらに最適化できる余地があります.

  1. 固定ストップ損失を価格変動に応じて動的ストップ損失に変更する.
  2. バンドが膨張したり収縮したりすると取引を一時停止するボリンガーバンド幅指数ルールを追加します.
  3. より良い確認のために,チャイキンマネーフローのようなボリューム指標を組み合わせます.

概要

概要すると,これは比較的安定した信頼性の高い短期取引戦略である.RSIの過剰購入/過剰販売判断とボリンジャー帯の適応範囲の強みを組み合わせることで,有利な短期システムを形成する.パラメータ調整と論理精製により,この戦略は一貫した利益を達成することができます.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-10-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("rsi+bb st", shorttitle="rsibb st 0.3")

len_rsi=input(14)
len_bb = input(25)
mul10 = input(20.0)
mul=mul10/10
sl100 = input(94.0, title='stop loss rate')
sl=sl100/100

lw = 3

vwma_e(src, len) =>
    ema(src*volume, len)/ema(volume,len)

rsi = rsi(close, len_rsi)
plot(rsi, color=blue, title= 'rsi blue', linewidth=lw)
plot(70, color=gray, title='line 70', linewidth=lw)
plot(30, color=gray, title='line 30', linewidth=lw)

bbg = stdev(rsi, len_bb)*mul
bbc = vwma_e(rsi, len_bb)
//bbc=ema(rsi,len_bb)
ratio = 0.6
bbc := bbc*ratio + 50*(1-ratio)

bbu = bbc+bbg
bbl = bbc-bbg
plot(bbu, color=green, title='bb_up green', linewidth=lw)
plot(bbl, color=red, title='bb_low red', linewidth=lw)
plot(bbc, color=#808000ff, title='bb center', linewidth=lw)

plot(50, color=black)

lc = crossover(rsi, bbl) //or crossover(rsi, bbc)
sc = crossunder(rsi, bbu)

last_pos = 0*close
if lc
    last_pos := 1
else
    last_pos := last_pos[1]
if sc
    last_pos := 2

last_price = 0*close
if last_pos[1] !=1 and last_pos == 1
    last_price := close
else
    last_price := last_price[1]
    
if last_pos==1 and close < last_price*sl
    lc:=false
    sc:=true
    last_pos:=2

if (lc)
    strategy.entry("long", strategy.long)

if (sc)
    strategy.entry("short", strategy.short)

もっと