Стратегия прорыва скользящей средней BB

SMA EMA SMMA RMA WMA VWMA STDDEV
Дата создания: 2024-06-14 15:21:03 Последнее изменение: 2024-06-14 15:21:03
Копировать: 1 Количество просмотров: 624
1
Подписаться
1617
Подписчики

Стратегия прорыва скользящей средней BB

Обзор

Эта стратегия основана на индикаторе Bollinger Bands и генерирует торговый сигнал путем преодоления цены Bollinger Bands вниз. Когда цена пробивает верхнюю траекторию, делается больше, когда она пробивается вниз, делается пусто. В то же время, когда удерживается много, если цена падает вниз, это равно больше; когда удерживается пустое, если цена пробивается вверх, это равно.

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

  1. Для вычисления движущихся средних за заданный период используется средняя траектория по Брин-полосе. Можно выбрать различные типы движущихся средних, такие как SMA, EMA, SMMA, WMA и VWMA.
  2. Расчет средней колеи плюс минус стандартный разрыв определенного кратного числа в качестве верхней и нижней колеи Бринской полосы.
  3. При повышении цены появляются сигналы плюса, а при снижении - сигналы минуса.
  4. Если у вас есть несколько опционов, то вы можете закрыть позицию, когда цена упадет вниз; если у вас есть пустые опционы, то вы можете закрыть позицию, когда цена выйдет вверх.

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

  1. Брин-пояса хорошо способны количественно оценивать волатильность рынка и дают четкие торговые сигналы в случае усиления колебаний цен.
  2. Стратегия одновременно устанавливает условия стоп-лосса, которые позволяют эффективно контролировать риск.
  3. Параметры стратегии настраиваются, могут быть оптимизированы в зависимости от разных сортов и циклов, имеют определенную адаптивность и гибкость.

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

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

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

  1. Можно рассмотреть такие методы, как внедрение трендовых индикаторов или идентификация моделей поведения цен, для вторичного подтверждения торговых сигналов, чтобы уменьшить убыточные сделки, вызванные ложными прорывами.
  2. Можно оптимизировать условия остановки, например, настроить динамическую остановку в соответствии с такими показателями, как ATR, или ввести методы, такие как отслеживание остановки, для дальнейшего контроля риска.
  3. Параметры стратегии могут быть оптимизированы с помощью генетических алгоритмов, сетевого поиска и других методов, чтобы найти оптимальную комбинацию параметров.

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

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

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

//@version=5
strategy("BB Strategy", overlay=true)

// Input parameters
length = input.int(20, minval=1, title="Length")
maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500, title="Offset")

// Moving average function
ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Calculate Bollinger Bands
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot Bollinger Bands
plot(basis, "Basis", color=color.blue, offset=offset)
p1 = plot(upper, "Upper", color=color.red, offset=offset)
p2 = plot(lower, "Lower", color=color.green, offset=offset)
fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))

// Strategy logic
longCondition = ta.crossover(close, upper)
shortCondition = ta.crossunder(close, lower)

// Strategy entries and exits
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)
if (shortCondition and strategy.position_size > 0)
    strategy.close("Long")
if (longCondition and strategy.position_size < 0)
    strategy.close("Short")