この戦略は,ボリンジャーバンドとストックRSIインジケーターを組み合わせて複数のインジケーター取引を行う.これは典型的な組み合わせたインジケーター戦略タイプに属している.ボリンジャーバンドはトレンド方向を決定し,ストックRSIはトレード信号のエントリータイミングを最適化する.
この戦略は2つの主要指標に基づいています.
ボリンジャー・バンド
上位,中位,下位帯を計算します.価格が下位帯を超えると買い信号が生成されます.
ストックRSI
ストックRSI指標を計算します.K線がD線を横切ると買い信号が生成されます.
特定の取引論理は,ボリンジャーバンドの下値ブレイクアウトとストックRSI黄金クロスの両方が同時に発生するときに,長い開くということです.
エクシートロジックは,利益とストップロスの帯を使用します.価格が上または中帯に再び触れたときに利益のために閉じる.価格が下帯を下回ると損失のために閉じる.
リスクは以下によって軽減できます.
戦略は以下によって改善できます.
ボリンジャー・バンドのパラメータを最適化
最適な調整のために上下計算比を調整する
ストックRSIパラメータの最適化
最適のKとD値を見つける
MACD のような確認指標を追加する
単一の指標に依存する誤った信号を避ける
固定ストップの代わりに後続利益ストップを使用する
価格変動に基づくストップ
試験パラメータは,異なる製品に対して別々に
最適パラメータは,異なる製品によって異なります.
この戦略は,多指標アプローチの恩恵を受け,トレンド方向とストック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")