Система реверсии разрыва полос Золотого Боллинджера

Автор:Чао Чжан, Дата: 2024-02-01 11:46:13
Тэги:

img

Обзор

Это система торговли форекс-гапсом на основе полос Боллинджера. Она подходит для основных валютных пар, с наименьшей возможной комиссией (ниже 1 пипа) и временными рамками от 1 до 15 мин.

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

Система использует индикаторы Bollinger Bands, RSI и ADX для выявления торговых возможностей.

Боллингерские полосы используются для выявления ценовых прорывов. Длинный ход, когда цена превышает верхнюю полосу, короткий ход, когда цена превышает нижнюю полосу. RSI используется для предотвращения ложных прорывов. Прорывы считаются действительными только тогда, когда RSI переворачивается (падет из зоны перекупа или поднимается из зоны перепродажи). ADX используется для фильтрации рынков без четкой тенденции, принимая сделки только тогда, когда ADX ниже 32.

Конкретные правила входа: длинный вход требует прорыва цены выше верхней полосы, RSI повышается с зоны перепроданности и пересекает линию 30, ADX ниже 32 в то же время.

Правила выхода включают в себя прием прибыли/стоп-лосса и реверсию средней линии. а именно: Установка фиксированных пунктов получения прибыли/стоп-лосса. Закрытие позиции, когда цена возвращается к средней линии Боллинджера.

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

Система имеет следующие преимущества:

  1. Использование полос Боллинджера, чтобы поймать торговые возможности, которые имеют большой потенциал прибыли.

  2. Комбинирование индикатора RSI для предотвращения ложных прорывов и повышения вероятности прибыли.

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

  4. Закрытие на средней линии реверсии блокирует большинство прибылей и избегает ретросека прибыли.

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

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

Существуют также некоторые риски:

  1. Не получает прибыли, если не захватывает пробелы.

  2. Риск чрезмерного приспособления к обратному тесту.

  3. Недостаточная длительность тренда.

  4. Высокий кредитный кредит увеличивает риск.

  5. Ограничения по времени торговли могут привести к отсутствию сделок.

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

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

  1. Оптимизировать параметры для повышения эффективности показателей, например, период Боллинджера, настройки RSI и т.д.

  2. Добавление или улучшение фильтров для увеличения процента выигрышных сделок, например, объединение большего количества индикаторов или фундаментальных данных.

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

  4. Автоматически определяет подходящий уровень кредитного плеча для максимизации ожидаемой доходности.

  5. Используйте методы машинного обучения для автоматического поиска оптимальных параметров вместо ручной итерации.

Заключение

Golden Bollinger Band Gap Reversion System - это типичная краткосрочная система прорыва. Она направлена на получение прибыли от ценовых разрывов. Для улучшения качества сигналов используются несколько фильтров. Она демонстрирует хорошую прибыльность в бэк-тестах.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("Bollinger Bands, RSI and ADX Trading System", overlay=true)


timeinrange(res, sess) => time(res, sess) != 0


timer = color.red


//bgcolor(timeinrange(timeframe.period, "0300-0600") or timeinrange(timeframe.period, "0900-1300") or timeinrange(timeframe.period, "2030-2300") ? timer : na, transp=70)


//RSI
length = input( 20 )
overSold = input( 35 )
overBought = input( 65 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
//if (not na(vrsi))


//BB
lengthB = input(60, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthB)
dev = mult * stdev(src, lengthB)
upper = basis + dev
lower = basis - dev


//adx
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

longEntry = close < upper and crossover(vrsi,overSold) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300"))

shortEntry = close > upper and crossunder(vrsi,overBought) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300"))


tp=input(90, step=10)
sl=input(90, step=10)

strategy.entry("long",1,when=longEntry)
strategy.exit("X_long", "long", profit=tp,  loss=sl )
strategy.close("long",when=crossunder(close,basis))

strategy.entry('short',0,when=shortEntry)
strategy.exit("x_short", "short",profit=tp, loss=sl)
strategy.close("short",when=crossover(close,basis))







Больше