Двойной RSI в сочетании с полосой Боллинджера для следования тренду

Автор:Чао Чжан, Дата: 2023-09-19 22:10:02
Тэги:

Обзор

Эта стратегия использует двойные индикаторы RSI для выявления условий перекупа и перепродажи, в сочетании с прорывами полосы Боллинджера для генерации торговых сигналов.

Принципиальный анализ

Стратегия использует два RSI с разными временными рамками для оценки краткосрочного и долгосрочного состояния перекупленности / перепроданности. Торговые сигналы генерируются только тогда, когда оба RSI достигают пороговых значений одновременно. Это избегает ложных сигналов от одного RSI.

Боллингерские полосы также используются для выявления ценовых прорывов. Только при выполнении условий RSI и прорывах цены верхней/нижней полосы Боллингерской полосы будет генерироваться торговый сигнал. Подтверждение прорыва помогает избежать сигналов на рынках без тренда.

Наконец, быстрые и медленные МА проверяются на направление тренда.

Анализ преимуществ

Комбинированное использование нескольких индикаторов помогает отфильтровать ложные сигналы, торгуя только очевидными тенденциями.

Анализ рисков

Основной риск заключается в том, что не удается оперативно выявить обратный тренд. Резкие V-образные изменения могут привести к значительным потерям без своевременной остановки потери. Настройка параметров также может повлиять на производительность.

Советы по оптимизации

  1. Добавьте стратегии стоп-лосса, чтобы быстро выйти из кризиса.

  2. Включите другие фильтры, например, громкость, чтобы избежать ложных прорывов.

  3. Оптимизируйте параметры, чтобы найти лучшую комбинацию.

  4. Добавьте модели машинного обучения для лучшего определения рыночных режимов.

  5. Улучшить управление рисками, включая размещение позиций, контроль потерь.

Заключение

Эта стратегия сочетает в себе двойные RSI и Bollinger Bands для получения прибыли от краткосрочных тенденций. Хотя она проста и проста, существуют ограничения, такие как задержки сигналов обмена. Добавление стоп-лосса, фильтрации сигналов, оптимизации параметров может еще больше повысить его надежность и прибыльность.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD)
 
// === GENERAL INPUTS ===
// RSI 1
RSIlength = input(10,title="RSI") 
RSIoverSold = input(65,title="OSold")
RSIoverBought = input(35,title="OBought")
price = close
vrsi = rsi(price, RSIlength)
// RSI 2
RSIlength2 = input(6,title="RSI2") 
RSIoverSold2 = input(65,title="OSold2")
RSIoverBought2 = input(35,title="OBought2")
price2 = close
vrsi2 = rsi(price2, RSIlength2)

//Bollinger Bands
source = close
Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50)
basis = sma(source, Bollinger)
dev = Desv * stdev(source, Bollinger)
upper = basis + dev
lower = basis - dev
plot(basis, color=red, title="BB ma")
p1 = plot(upper, color=blue, title="BBajo")
p2 = plot(lower, color=blue, title="BAlto")
fill(p1, p2)

//Media movil
short = input(3, minval=1, title="Media corta")
long = input(10, minval=1, title="Media larga")
src = close
plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida")
plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta")


// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => vrsi < 30 and  vrsi2 < 27 and cross(lower, price)
exitLong() => short < long
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price)
strategy.entry(id = "Short", long = false, when = enterShort())


// Definición señales de compra
buy_signals = vrsi < 30 and  vrsi2 < 27 and cross(lower, price)

// Definición señales de venta
sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price)

// Dibuja las señales de compra venta en franjas de color
b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na
bgcolor(b_color)

// Dibuja las señales de compra venta coloreando las velas
barcolor(buy_signals ? white : sell_signals ? white : na)

plot(vrsi, color=white, linewidth=1)
plot(vrsi, color=white, linewidth=2)

// Crea alarmas usables desde el desplegable para poder enviar mails a haas
alertcondition(buy_signals, title='Buy-Signal', message='compra')
alertcondition(sell_signals, title='Sell-Signal', message='vende')


Больше