Это двойная стратегия реверсионной торговли, основанная на ценовом канале, полосах Боллинджера и быстром индикаторе RSI. Он сочетает в себе индекс канала для выявления тенденций, полосы Боллинджера для распознавания уровней поддержки и сопротивления и быстрый RSI для обнаружения сигналов перекупления и перепродажи, с тем чтобы достичь эффективной реверсионной торговли.
Стратегия основывается на следующих показателях для принятия торговых решений:
Ценовой канал: рассчитывает самую высокую и самую низкую цену за определенный период и графизирует центральную линию канала.
Боллингерские полосы: Центровая линия - это ценовая линия канала. Верхние и нижние полосы рассчитываются на основе стандартного отклонения отклонения цены от центровой линии. Торговые сигналы генерируются, когда цена взаимодействует с полосами Боллингера.
Быстрый RSI (Период = 2): определяет ситуации перекупки и перепродажи для цены.
Индикатор CryptoBottom: определяет, пробилась ли цена через уровень поддержки. В сочетании с быстрым RSI генерируют высоковероятные длинные сигналы.
Согласно срокам прорыва цены через каналы и полосы Боллинджера для совершения сделок и длинного или короткого курса на основе показателей перекупленности и перепроданности RSI, формируется основная логика торговли этой стратегии.
Эта стратегия имеет следующие преимущества:
Система двойных путей повышает точность сигнала. Ценовой канал оценивает основные тенденции, а полосы Боллинджера определяют точные уровни поддержки и сопротивления.
Индикатор быстрого RSI фиксирует возможности реверсии, обнаруживая перекупленность и перепроданность.
CryptoBottom ускоряет подтверждение длинных сигналов. Пробивание уровней поддержки позволяет быстро оценить характеристики дна и избегать пропусков длинных сигналов.
Простые и интуитивные комбинации параметров облегчают оптимизацию параметров.
Эта стратегия также сопряжена с некоторыми рисками:
Неправильное настройка параметров для диапазонов Боллинджера может пропустить значительные движения цен или генерировать ложные сигналы.
Модели взаимодействия между двумя треками могут быть сложными, требуя некоторой технической изощренности для точных суждений.
Риск неудачных реверсий по-прежнему существует, поскольку вероятность того, что цена будет снята, не может быть исключена.
Трудность в оптимизации параметров. Оптимальные параметры могут стать неэффективными, если изменятся рыночные условия.
Стратегия может быть улучшена в следующих аспектах:
Оптимизировать параметры полос Боллинджера, чтобы сделать верхние и нижние полосы ближе к цене, улучшая точность торговых сигналов.
Добавьте механизмы стоп-лосса для сокращения потерь, когда они достигают определенного порогового процента.
Включить больше индикаторов для определения уровня тренда, поддержки и сопротивления, чтобы уменьшить ложные сигналы.
Внедрить алгоритмы машинного обучения для автоматической настройки параметров, чтобы они могли адаптироваться к изменяющейся рыночной среде.
Эта стратегия объединяет ценовой канал, полосы Боллинджера и быстрый индикатор RSI для построения двойной реверсионной торговой системы. Судя по основным тенденциям, она также быстро захватывает поддержку, сопротивление и возможности перекупки / перепродажи. Настройки параметров просты и прямы, просты в понимании и оптимизации.
/*backtest start: 2022-12-18 00:00:00 end: 2023-11-30 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Strategy v1.3", shorttitle = "NoroBands str 1.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") color = input(true, "Use ColorBar") usecb = input(true, "Use CryptoBottom") usersi = input(true, "Use RSI") needbb = input(false, defval = false, title = "Show Bands") needbg = input(false, defval = false, title = "Show Background") src = close //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //CryptoBottom mac = sma(close, 10) lencb = abs(close - mac) sma = sma(lencb, 100) max = max(open, close) min = min(open, close) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //dist dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma //Trend trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Signals up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0 dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom //dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom up3 = fastrsi < 5 ? 1 : 0 //dn3 = fastrsi > 99 ? 1 : 0 longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true) if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)