Это система торговли форекс-гапсом на основе полос Боллинджера. Она подходит для основных валютных пар, с наименьшей возможной комиссией (ниже 1 пипа) и временными рамками от 1 до 15 мин.
Система использует индикаторы Bollinger Bands, RSI и ADX для выявления торговых возможностей.
Боллингерские полосы используются для выявления ценовых прорывов. Длинный ход, когда цена превышает верхнюю полосу, короткий ход, когда цена превышает нижнюю полосу. RSI используется для предотвращения ложных прорывов. Прорывы считаются действительными только тогда, когда RSI переворачивается (падет из зоны перекупа или поднимается из зоны перепродажи). ADX используется для фильтрации рынков без четкой тенденции, принимая сделки только тогда, когда ADX ниже 32.
Конкретные правила входа: длинный вход требует прорыва цены выше верхней полосы, RSI повышается с зоны перепроданности и пересекает линию 30, ADX ниже 32 в то же время.
Правила выхода включают в себя прием прибыли/стоп-лосса и реверсию средней линии. а именно: Установка фиксированных пунктов получения прибыли/стоп-лосса. Закрытие позиции, когда цена возвращается к средней линии Боллинджера.
Система имеет следующие преимущества:
Использование полос Боллинджера, чтобы поймать торговые возможности, которые имеют большой потенциал прибыли.
Комбинирование индикатора RSI для предотвращения ложных прорывов и повышения вероятности прибыли.
Использование индикатора ADX для фильтрации рынков без четких тенденций, избегая ненужных сделок.
Закрытие на средней линии реверсии блокирует большинство прибылей и избегает ретросека прибыли.
Подходит для торговли с высоким кредитным плечом, прибыль может быть быстро увеличена.
Существуют также некоторые риски:
Не получает прибыли, если не захватывает пробелы.
Риск чрезмерного приспособления к обратному тесту.
Недостаточная длительность тренда.
Высокий кредитный кредит увеличивает риск.
Ограничения по времени торговли могут привести к отсутствию сделок.
Система может быть улучшена в следующих аспектах:
Оптимизировать параметры для повышения эффективности показателей, например, период Боллинджера, настройки RSI и т.д.
Добавление или улучшение фильтров для увеличения процента выигрышных сделок, например, объединение большего количества индикаторов или фундаментальных данных.
Оптимизировать стратегию получения прибыли, чтобы максимизировать прибыль на одну сделку, например, отслеживание стоп-лосса, стоп-лосс на основе ATR и т.д.
Автоматически определяет подходящий уровень кредитного плеча для максимизации ожидаемой доходности.
Используйте методы машинного обучения для автоматического поиска оптимальных параметров вместо ручной итерации.
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))