Эта стратегия использует индикатор полос Боллинджера для определения направления тренда на рынке, и принимает контра-тенденционные сделки, когда происходит обратный тренд. Она длится, когда цена прорывается ниже нижней полосы в восходящем тренде; и становится короткой, когда цена прорывается выше верхней полосы в нисходящем тренде. Кроме того, скользящая средняя используется в качестве ориентира для долгосрочной тенденции, чтобы сделать стратегию более стабильной.
Эта стратегия использует среднюю полосу, верхнюю полосу и нижнюю полосу полос Боллинджера для определения направления тренда рынка. Средняя полоса представляет собой экспоненциальную скользящую среднюю за n периодов, в то время как верхняя полоса и нижняя полоса представляют собой среднюю полосу +2.3 стандартного отклонения и среднюю полосу -2.3 стандартного отклонения соответственно. Когда цена прорывается ниже нижней полосы, это указывает на текущий восходящий тренд. Когда цена прорывается выше верхней полосы, это указывает на текущий нисходящий тренд.
Кроме того, стратегия устанавливает 200-периодную простую скользящую среднюю (СМА) в качестве ориентира для долгосрочного суждения о тренде. Торговые сигналы запускаются только тогда, когда индикаторы BB и SMA согласны в одном направлении. Это может эффективно отфильтровать некоторые ложные прорывы.
Конкретная логика торговли следующая:
Улучшения:
В целом это простая и понятная стратегия, использующая BB для определения тенденций и принятия контратендентных сделок в переломных моментах. Добавление краткосрочных и бенчмарковых индикаторов также помогает фильтровать сигналы.
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 00:00:00 period: 1h 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/ // © Aayonga //@version=5 strategy("布林趋势震荡单", overlay=true,initial_capital=10000,default_qty_type=strategy.fixed, default_qty_value=1 ) bollL=input.int(20,minval=1,title = "长度") bollmult=input.float(2.3,minval=0,step=0.1,title = "标准差") basis=ta.ema(close,bollL) dev=bollmult*ta.stdev(close,bollL) upper=basis+dev lower=basis-dev smaL=input.int(200,minval=1,step=1,title = "趋势分界线") sma=ta.sma(close,smaL) //多头趋势 longT=upper>sma and basis>sma and lower>=sma //空头趋势 shortT=upper<sma and basis<sma and lower<=sma //入场位 longE=ta.crossover(close,lower) shortE=ta.crossover(close,upper) //出场位 longEXIT=ta.crossover(high,upper) shortEXIT=ta.crossunder(close,basis) or ta.crossover(close,ta.sma(close,230)) if longT and longE strategy.entry("多",strategy.long) if longEXIT strategy.close("多",comment = "多出场") if shortE and shortT strategy.entry("空",strategy.short) if shortEXIT strategy.close("空",comment = "空出场")