Двойная стратегия быстрой количественной разворотной торговли


Дата создания: 2023-12-19 15:59:36 Последнее изменение: 2023-12-19 15:59:36
Копировать: 0 Количество просмотров: 580
1
Подписаться
1621
Подписчики

Двойная стратегия быстрой количественной разворотной торговли

Обзор

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

Стратегический принцип

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

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

  2. Пояса бурин: центральная ось является центральной осью ценового канала, построенной на основе расчета стандартного отклонения цены от центральной оси. Торговый сигнал генерируется при взаимодействии цены с поясом бурин.

  3. Быстрый RSI ((цикл 2): для определения перекупа и перепродажи цены, RSI ниже 5 становится более высоким, а выше 95 - более низким.

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

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