Стратегия называется
Основная логика этой стратегии основана на канале Боллинджерских полос, который состоит из средней линии, верхней полосы и нижней полосы. Средняя линия - это скользящая средняя цена закрытия за n дней. Верхние и нижние полосы - отклонения выше и ниже средней линии. Когда цена приближается к верхней полосе, это указывает на то, что рынок может быть перегретым и могут быть короткие возможности. Когда цена приближается к нижней полосе, это указывает на то, что рынок может быть недооценен и могут быть длинные возможности.
Эта стратегия использует две полосы Боллинджера. Болинджерская полоса 1 подходит для длинных сделок, а Болинджерская полоса 2 подходит для коротких сделок. Параметры Болинджерской полосы 1 оптимизированы с длиной 25 и отклонением в 2,9 раза. Параметры Болинджерской полосы 2 оптимизированы с длиной 36 и отклонением в 3,2 раза. Когда цена закрытия пересекает нижний пояс Болинджерской полосы 1, он генерирует длинный сигнал. Когда цена закрытия пересекает ниже верхнего полосы Болинджерской полосы 2, он генерирует короткий сигнал.
По сравнению с традиционными стратегиями Bollinger Bands, эта стратегия имеет следующие преимущества:
Он реализует двунаправленную торговлю как на длинной, так и на короткой стороне, которая может использовать торговые возможности на разных этапах рынка.
Параметры оптимизированы. Два набора параметров полос Боллинджера тщательно проверены для эффективного генерирования торговых сигналов.
Риск контролируемый. Движущийся метод стоп-лосса может эффективно контролировать риск одной стороны.
Существуют также некоторые потенциальные риски для этой стратегии:
Риск недействительности полос Боллинджера.
Мы можем правильно расширить стоп-лосс или своевременно остановить, чтобы избежать этого риска.
Слишком чувствительные параметры могут привести к частой торговле и увеличению затрат на торговлю.
Эта стратегия еще может быть оптимизирована:
Комбинируйте другие индикаторы для фильтрации сигналов и избегайте неправильных сделок, когда полосы Боллинджера терпят неудачу.
Динамически корректировать параметры, чтобы соответствовать рыночным характеристикам разных периодов.
Оптимизировать методы стоп-лосса с использованием последующего стоп-лосса или экспоненциального движущегося стоп-лосса для эффективного контроля рисков.
Объедините алгоритмы машинного обучения для автоматической оптимизации параметров.
В целом, эта стратегия оптимизирует двунаправленную торговлю как для длинной, так и для короткой сторон на основе двойного канала и оптимизации параметров. По сравнению с традиционными стратегиями Bollinger Bands, она имеет преимущества двунаправленной торговли и контроля рисков. Она подходит для использования возможностей на разных этапах рынка и имеет определенную практическую ценность.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h 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("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01) source = close length = input(25, minval=1, title="Length BB long") mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long") length2 = input(36, minval=1, title="Length BB short") mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short") basis = sma(source, length) dev = mult * stdev(source, length) dev2 = mult2 * stdev(source, length2) upper = basis + dev2 lower = basis - dev buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) longEntry=input(true) shortEntry=input(true) g(v, p) => round(v * (pow(10, p))) / pow(10, p) risk = input(100) leverage = input(1.0, step = 0.5) c = g((strategy.equity * leverage / open) * (risk / 100), 4) tplong=input(0.065, step=0.005, title="Take profit % for long") sllong=input(0.04, step=0.005, title="Stop loss % for long") tpshort=input(0.025, step=0.005, title="Take profit % for short") slshort=input(0.04, step=0.005, title="Stop loss % for short") if(longEntry) strategy.entry("long",1,c,when=buyEntry) strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.close("long",when=sellEntry) if(shortEntry) strategy.entry("short",0,c,when=sellEntry) strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort') strategy.close("short",when=buyEntry)