Стратегия двойной скорой количественной реверсионной торговли

Автор:Чао Чжан, Дата: 2023-12-19 15:59:36
Тэги:

img

Обзор

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

Логика стратегии

Стратегия основывается на следующих показателях для принятия торговых решений:

  1. Ценовой канал: рассчитывает самую высокую и самую низкую цену за определенный период и графизирует центральную линию канала.

  2. Боллингерские полосы: Центровая линия - это ценовая линия канала. Верхние и нижние полосы рассчитываются на основе стандартного отклонения отклонения цены от центровой линии. Торговые сигналы генерируются, когда цена взаимодействует с полосами Боллингера.

  3. Быстрый RSI (Период = 2): определяет ситуации перекупки и перепродажи для цены.

  4. Индикатор CryptoBottom: определяет, пробилась ли цена через уровень поддержки. В сочетании с быстрым RSI генерируют высоковероятные длинные сигналы.

Согласно срокам прорыва цены через каналы и полосы Боллинджера для совершения сделок и длинного или короткого курса на основе показателей перекупленности и перепроданности RSI, формируется основная логика торговли этой стратегии.

Преимущества стратегии

Эта стратегия имеет следующие преимущества:

  1. Система двойных путей повышает точность сигнала. Ценовой канал оценивает основные тенденции, а полосы Боллинджера определяют точные уровни поддержки и сопротивления.

  2. Индикатор быстрого RSI фиксирует возможности реверсии, обнаруживая перекупленность и перепроданность.

  3. CryptoBottom ускоряет подтверждение длинных сигналов. Пробивание уровней поддержки позволяет быстро оценить характеристики дна и избегать пропусков длинных сигналов.

  4. Простые и интуитивные комбинации параметров облегчают оптимизацию параметров.

Риски стратегии

Эта стратегия также сопряжена с некоторыми рисками:

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

  2. Модели взаимодействия между двумя треками могут быть сложными, требуя некоторой технической изощренности для точных суждений.

  3. Риск неудачных реверсий по-прежнему существует, поскольку вероятность того, что цена будет снята, не может быть исключена.

  4. Трудность в оптимизации параметров. Оптимальные параметры могут стать неэффективными, если изменятся рыночные условия.

Руководство по оптимизации

Стратегия может быть улучшена в следующих аспектах:

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

  2. Добавьте механизмы стоп-лосса для сокращения потерь, когда они достигают определенного порогового процента.

  3. Включить больше индикаторов для определения уровня тренда, поддержки и сопротивления, чтобы уменьшить ложные сигналы.

  4. Внедрить алгоритмы машинного обучения для автоматической настройки параметров, чтобы они могли адаптироваться к изменяющейся рыночной среде.

Заключение

Эта стратегия объединяет ценовой канал, полосы Боллинджера и быстрый индикатор 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)

Больше