Стратегия скрининга тренда с использованием масштабирования полосы пропускания Боллинджера и двойной скользящей средней


Дата создания: 2023-10-25 15:00:20 Последнее изменение: 2023-10-25 15:00:20
Копировать: 2 Количество просмотров: 453
1
Подписаться
1166
Подписчики

Стратегия скрининга тренда с использованием масштабирования полосы пропускания Боллинджера и двойной скользящей средней

Стратегия основана на генерировании торговых сигналов в брин-поясе и двойной равномерной линии в сочетании с фильтрацией тенденций с целью достижения высокой выигрышной скорости и хорошей прибыльно-неприбыльной пропорции.

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

  1. Используйте ленту Брин для определения многополосных сигналов верхнего, среднего и нижнего треков. Когда цена касается верхнего трека, она смотрит вверх, а когда касается нижнего трека, она смотрит вверх.

  2. Для определения тенденции используйте среднесрочную среднюю среднюю линию длиной 20 и долгосрочную среднюю среднюю линию длиной 60. Когда долгосрочная средняя линия проходит через короткую среднюю линию, она становится положительной, а когда она проходит, она становится отрицательной.

  3. Динамически корректируйте положение остановки в зависимости от ширины полосы бурин. Когда ширина полосы бурин больше 0,5%, положение остановки находится на нижней полосе; когда ширина меньше 0,5%, положение остановки уменьшается на половину полосы нижней полосы.

  4. Условия входа: в случае взлетов цена прорывается вниз, как сигнал, и в случае падения цена прорывается вверх, как сигнал.

  5. Условия выезда: при многократном движении при попадании на трассу или кратковременную линию остановка при попадании на трассу или кратковременную линию остановка при попадании на трассу или кратковременную линию остановка при попадании на трассу.

  6. Стоп-условия: стоп-условия, когда цена падает вниз по линии Бурин; стоп-условия, когда цена пробивается вверх по линии Бурин.

Стратегические преимущества

  1. Используя двойную равномерную линию для определения тенденции, можно эффективно фильтровать неопределенные тенденции или рыночный шум.

  2. Средняя полоса Брин-ленты служит в качестве поддерживающего сопротивления, а верхняя и нижняя полосы - в качестве динамического места остановки, чтобы контролировать риск.

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

  4. Это означает, что у вас будет более высокая вероятность выиграть.

Стратегический риск

  1. Двойная средняя линия имеет большую вероятность создания ложных прорывов, которые могут пропустить поворот тренда. Можно уместно сократить средний цикл.

  2. Брин-пояса легко попадают в шокирующие тенденции. Их можно избежать, снизив частоту торгов.

  3. Стоп-позиции легко пробиваются, когда они находятся близко к поддерживающим сопротивлениям. Стоп-диапазон может быть расширен соответствующим образом.

  4. Возможность эффективного захвата обратной коррекции короткой линии. Можно уместно сократить время удержания позиции.

Направление оптимизации стратегии

  1. Оптимизация параметров среднелинейного цикла, поиск подходящей стратегии для рыночной среды.

  2. Оптимизация множительных параметров по буринской полосе, сбалансированная вероятность пробития стоп-лома.

  3. Добавление других показателей для многофакторной проверки повышает качество сигнала.

  4. В результате, мы сможем оценить тенденции и избежать отклонений.

  5. Оптимизация управления капиталом, например, фиксированная доля, фиксированный стоп-лосс и т. д., для контроля одиночных убытков.

  6. Применение ценового шока, например, при значительном увеличении валового пространства.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="yuthavithi BB Scalper 2 strategy", overlay=true)

len = input(20, minval=1, title="Length")
multiplier = input(4, minval=1, title="multiplier")
trendTimeFrame = input(60, minval=1, title="Trend Time Frame")
useTrendFilter = input(true, type=bool, title = "Use Trend Filter")

src = input(close, title="Source")
out = sma(src, len)
//plot(out, title="SMA", color=blue)

stdOut = stdev(close, len)
bbUpper = out + stdOut * multiplier
bbLower = out - stdOut * multiplier
bbUpper2 = out + stdOut * (multiplier / 2)
bbLower2 = out - stdOut * (multiplier / 2)
bbUpperX2 = out + stdOut * multiplier * 2
bbLowerX2 = out - stdOut * multiplier * 2
bbWidth = (bbUpper - bbLower) / out


closeLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), close)
smaLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), sma(close,20))

//plot(smaLongTerm, color=red)

trendUp = useTrendFilter ? (closeLongTerm > smaLongTerm) : true
trendDown = useTrendFilter? (closeLongTerm < smaLongTerm) : true

bearish = ((cross(close,bbUpper2) == 1) or (cross(close,out) == 1)) and (close[1] > close) and trendDown
bullish = ((cross(close,bbLower2) == 1) or (cross(close,out) == 1)) and (close[1] < close) and trendUp


closeBuy = (high[1] > bbUpper[1]) and (close < bbUpper) and (close < open) and trendUp 
closeSell = (((low[1] < bbLower[1]) and (close > bbLower)) or ((low[2] < bbLower[2]) and (close[1] > bbLower[1]))) and (close > open) and trendDown


cutLossBuy = iff(bbWidth > 0.005, (low < bbLower) and (low[1] > bbLower[1]) and trendUp, (low < bbLowerX2) and (low[1] > bbLowerX2[1]) and trendUp)
cutLossSell = iff(bbWidth > 0.005, (high > bbUpper) and (high[1] < bbUpper[1]) and trendDown, (high > bbUpperX2) and (high[1] < bbUpperX2[1]) and trendDown)


if (bullish)
    strategy.entry("Buy", strategy.long, comment="Buy")

if (bearish)
    strategy.entry("Sell", strategy.short, comment="Sell")
    

strategy.close("Buy", closeBuy or cutLossBuy)
   
strategy.close("Sell", closeSell or cutLossSell)