Стратегия Swing Trading Bollinger Bands RSI сочетает в себе индикаторы Bollinger Bands и Relative Strength Index (RSI) для краткосрочной торговли колебаниями диапазона.
Во-первых, индикатор Bollinger Bands анализирует диапазоны колебаний цен. Цены вблизи верхней полосы перекуплены, в то время как цены вблизи нижней полосы перепроданы.
Во-вторых, индикатор RSI определяет силу перекупленности/перепроданности.
Когда цена достигает нижней полосы и показатель RSI показывает перепроданность, вы идете в длинный курс.
Болинджерские полосы точно определяют уровни колебаний цен.
RSI избегает слепых длинных/коротких записей.
Высокий показатель выигрыша, используя средний показатель реверсии.
Частая торговля обеспечивает устойчивую прибыльность.
Применяется для различных продуктов и временных рамок.
Неправильные параметры BB не позволяют определить ключевые уровни.
Плохие параметры RSI генерируют ложные сигналы.
Недостаточное отступление запускает стоп-лосс.
Высокая частота торговли приводит к более высоким затратам на сдвиг.
Трудно управлять тенденциями на волатильных рынках.
Оптимизируйте параметры, чтобы BB соответствовали фактической волатильности.
Настройка периода RSI для фильтрации шума.
Используйте остановки, чтобы уменьшить отдачу прибыли.
Выбирайте жидкие продукты, чтобы минимизировать влияние скольжения.
Добавьте другие индикаторы, чтобы определить направление тренда.
BB RSI swing trading стратегия эффективно улавливает двусторонние колебания цен в пределах диапазонов. При надлежащей настройке параметров и управлении рисками она обеспечивает стабильную прибыль. Это рекомендуемая краткосрочная стратегия квантовой торговли.
/*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)