Bollinger Band と ストック RSI 取引戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-21 21:02:02
タグ:

概要

この戦略は,ボリンジャーバンドとストックRSIインジケーターを組み合わせて複数のインジケーター取引を行う.これは典型的な組み合わせたインジケーター戦略タイプに属している.ボリンジャーバンドはトレンド方向を決定し,ストックRSIはトレード信号のエントリータイミングを最適化する.

戦略の論理

この戦略は2つの主要指標に基づいています.

  1. ボリンジャー・バンド

    上位,中位,下位帯を計算します.価格が下位帯を超えると買い信号が生成されます.

  2. ストックRSI

    ストックRSI指標を計算します.K線がD線を横切ると買い信号が生成されます.

特定の取引論理は,ボリンジャーバンドの下値ブレイクアウトとストックRSI黄金クロスの両方が同時に発生するときに,長い開くということです.

エクシートロジックは,利益とストップロスの帯を使用します.価格が上または中帯に再び触れたときに利益のために閉じる.価格が下帯を下回ると損失のために閉じる.

利点

  • Bollinger Bands と Stoch RSI を組み合わせる
  • バンドは全体的なトレンドを判断し,ストックRSIはエントリーを最適化します
  • ストック・RSIは偽のバンドブレイクをフィルターします
  • 中部と下部帯は出口を提供
  • 最適化のための複数の調整可能なパラメータ

リスク

  • MA ベースの指標の遅延,ベストエントリが欠けている
  • 単に指標を駆使し,突然の出来事に対する反応が遅い
  • 誤った帯域設定は停止を無効にします
  • バッドストックRSIパラメータは誤った信号を生成します
  • 異なる製品で必要なパラメータの調整

リスクは以下によって軽減できます.

  • 高い精度のためのパラメータの最適化
  • MACD のような確認フィルターを追加する
  • バンドストップの代わりに後尾ストップを使用する
  • 異なる製品の試験パラメータ
  • 位置サイズ調整システム

改善の方向性

戦略は以下によって改善できます.

  1. ボリンジャー・バンドのパラメータを最適化

    最適な調整のために上下計算比を調整する

  2. ストックRSIパラメータの最適化

    最適のKとD値を見つける

  3. MACD のような確認指標を追加する

    単一の指標に依存する誤った信号を避ける

  4. 固定ストップの代わりに後続利益ストップを使用する

    価格変動に基づくストップ

  5. 試験パラメータは,異なる製品に対して別々に

    最適パラメータは,異なる製品によって異なります.

概要

この戦略は,多指標アプローチの恩恵を受け,トレンド方向とストックRSIのエントリー最適化のためにボリンジャーバンドを活用する.しかし,難しいパラメータ最適化や信号精度などの課題は存在する.パラメータ最適化のための厳格なバックテスト,フィルターを追加し,結果に基づいて規則を継続的に調整することで,統合システムの強みを保持しながら精度を向上させることができます.持続的な最適化は強度につながります.


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "BB+RSI v2", overlay = true)

price=close
////////// ///////  BB /////////////////////////

bblength = input(50)
bbupmult =input(2,step=0.1,title="Multiplier for BB Upper Band")
bblowmult = input(2,step=0.1,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


bbbuy= crossover(price,lower)
bbsell = crossunder(price,upper) or price>upper or crossunder(price,basis)



//////////////////// BB //////////////////////




////////////////////////  S RSI  /////////////////////

lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

SRSIbuy=crossover(k,d)

////////////////////// S  RSI  ///////////////////////

// Conditions



longcond = bbbuy and SRSIbuy
closelong = bbsell


monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longcond ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( closelong  ) 

    strategy.close("BUY")







もっと