Bollinger Bands RSI スウィング・トレーディング戦略は,短期間の範囲振動取引のために,Bollinger Bands と Relative Strength Index (RSI) の指標を組み合わせ,Bollinger Bands の上下帯間の価格変動から利益を得ています.
まず,ボリンジャー・バンド指標は価格変動範囲を分析します.上位帯の価格が過買いされ,下位帯の価格が過売りされます.
2つ目に,RSI指標は過買い/過売り強さを決定します.RSI値が70を超えると過買いで,30を下回ると過売りです.
価格が下帯に達し,RSIが過売りを示した場合は,ロングにします.価格が上帯に達し,RSIが過買いを示したとき,ショートにします.
ボリンジャー・バンドは価格変動レベルを正確に位置付けます
RSIは盲目で長/短エントリを避ける.
平均逆転を活用した高勝率です
頻繁に取引することで 持続的な利益が得られます
異なる製品と時間枠に適用できる.
BBパラメータが正しくない場合 キーレベルを特定できません
悪いRSIパラメータは 誤った信号を生成します
不足のリトラセーションがストップ・ロスを引き起こす
高い取引頻度は 滑り込みコストを大きくします
市場が不安定な状況で 動向を踏むのは難しい
BBのパラメータを最適化して 実際の波動性に対応します
騒音をフィルタリングするために RSI 期間を調整します.
利回りを減らすために 遅延停止を使用します
液体製品を選んで スリップ効果を最小限に抑える.
傾向の方向性を決定するために他の指標を追加します.
BB RSI スウィング・トレーディング戦略は,範囲内の両方向の価格変動を効果的に捉える.適切なパラメータ調節とリスク管理により,安定した利益をもたらす.これは推奨される短期的な量取引戦略である.
/*backtest start: 2023-08-16 00:00:00 end: 2023-09-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Swing trading strategy FOREX ", shorttitle="BB+RSI", overlay=true) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2020, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2022, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true // // ///////////// RSI RSIlength = input(6,title="RSI Period Length") RSIoverSold = input(defval = 65, title = "RSIoverSold", minval = 1, maxval = 100) RSIoverBought = input(defval = 35, title = "RSIoverBought", minval = 1, maxval = 100) price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(200, minval=1,title="Bollinger Period Length") BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close buyEntry = crossover(source, BBlower) sellEntry = crossunder(source, BBupper) plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line") p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line") p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line") fill(p1, p2) ///////////// Colors switch1=input(true, title="Enable Bar Color?") switch2=input(true, title="Enable Background Color?") TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? color.red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? color.green : na barcolor(switch1?TrendColor:na) bgcolor(switch2?TrendColor:na,transp=50) ///////////// RSI + Bollinger Bands Strategy //for buy cond1=crossover(vrsi, RSIoverSold) cond2=crossover(source, BBlower) //for sell cond3=crossunder(vrsi, RSIoverBought) cond4=crossunder(source, BBupper) if (not na(vrsi)) if (cond1 and cond2 and time_cond) strategy.entry("RSI_BB_LONG", strategy.long, stop=BBlower, comment="LONG",alert_message = "long") else strategy.cancel(id="RSI_BB_LONG") if (cond3 and cond4 and time_cond) strategy.entry("RSI_BB_SHORT", strategy.short, stop=BBupper, comment="SHORT",alert_message = "short") //strategy.close("RSI_BB_LONG") else strategy.cancel(id="RSI_BB_SHORT") //strategy.exit("closelong", "RSI_BB_LONG" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closelong") //strategy.exit("closeshort", "RSI_BB_SHORT" , profit = close * 0.01 / syminfo.mintick, loss = close * 0.01 / syminfo.mintick, alert_message = "closeshort") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)