RSIとボリンジャーバンドを組み合わせた短期取引戦略


作成日: 2023-12-19 11:31:09 最終変更日: 2023-12-19 11:31:09
コピー: 0 クリック数: 894
1
フォロー
1621
フォロワー

RSIとボリンジャーバンドを組み合わせた短期取引戦略

概要

この戦略は,相対的に強い指標 ((RSI) とブリン帯を組み合わせて,ショートライン取引戦略を構築する.この戦略は,主にRSI指標がブリン帯を突破して下線に立つときに,買入操作を行う.同時に,戦略は,リスクを効果的に制御できるストップメカニズムも含む.

戦略原則

  1. RSI指標値を計算し,パラメータを14周期に設定する.
  2. ブリン帯の中央線を計算し,ここでRSIの加重移動平均を用いて,周期は25の設定である.
  3. ブリン帯の上線と下線を計算し,上線は中線加幅,下線は中線減幅で,幅はRSI標準差の20倍に設定する.
  4. RSIが上から下を走る時,多めに;RSIが下から下を走る時,空いてください.
  5. ストップ・メカニズムを設定し,もし多めにすると,価格が購入価格の6%を下回るとストップ・メカニズムを設定する.

優位分析

この戦略は,RSI指標とブリン帯を組み合わせて,両者の優位性を有効に活用してショートライン取引を行うことができる.主な優位性は以下の通りです.

  1. RSIは,市場の超買超売現象を効果的に判断する. ブリン帯の上下線と組み合わせて,信号の正確性を向上させることができる.
  2. ブリンは,Dynamicを下線に搭載し,市場の変動に応じて自動的に範囲を調整することができる.
  3. 止損機構は合理的に設定され,6%の止損幅度で,正常な変動を許容し,損失を効果的に制御することができる.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. RSIは後退しており,急激な反転の機会を逃している可能性があります.
  2. ブリン帯のパラメータが正しく設定されていない場合や,市場が激しく波動すると,信号が誤って表示される場合もある.
  3. ストップダメージポジションの設定は不合理で,余計な損失を増加させるため,あまりにも広範囲またはあまりにも過激である可能性があります.

対応策と解決策:

  1. KDJなどの他の指標と組み合わせて,市場状況を総合的に判断することが考えられます.
  2. ブリン帯のパラメータを動的に最適化し,異なる市場に応じてパラメータを調整する.
  3. テストと最適化ストップポジション,最適のパラメータ設定.

最適化の方向

この戦略はさらに改善できる余地があります.

  1. ストップを固定幅から動的な追跡に調整するストップを考慮する.これは価格の変動に応じて,ストップの位置を柔軟に調整できる.
  2. ブリン帯をベースに,ブリン帯幅指数 (BBW) の判断ルールを加えることができる. ブリン帯が膨張しすぎたり収縮しすぎたりすると,取引を一時停止して,誤った信号を避けることができる.
  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)