Стратегия слияния движущихся средних полос Боллинджера

Автор:Чао Чжан, Дата: 2023-09-18 16:08:43
Тэги:

Обзор

Эта стратегия сочетает в себе скользящие средние и полосы Боллинджера для проверки сигналов двойного индикатора для определения и торговли тенденциями.

Логика стратегии

При расчете скоростных и медленных средних движений. Когда быстрая линия пересекает медленную линию, генерируется длинный сигнал. Ниже дается короткий сигнал. Также рассчитываются верхние и нижние полосы Болинджерской полосы.

Преимущества

  • Подтверждение двойного показателя позволяет избежать ложных сигналов
  • Движущиеся средние определяют направление основного тренда
  • Болинджерские полосы подтверждают качество прорыва
  • Способность идти как долго, так и коротко обеспечивает гибкость

Риски

  • Движущиеся средние и полосы Боллинджера отстают
  • Двойные условия ограничивают частоту торговли, не подходят для торговли с высокой частотой
  • Невозможно точно определить точные точки перехода
  • Плохая настройка параметров может привести к потере возможностей

Риски можно управлять путем сокращения скользящей средней и периодов Боллинджера или оптимизации комбинаций параметров.

Усовершенствования

  • Испытать различные комбинации скользящих средних и параметров Боллинджера
  • Подумайте о добавлении стратегий стоп-лосса для контроля потерь
  • Оптимизировать логические правила для двойной проверки
  • Испытание прочности на различных продуктах

Заключение

Эта стратегия проверяет сигналы с двойными индикаторами для уменьшения ложных сигналов, подходящих для средне- и долгосрочного хранения.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MA-Zorrillo",overlay=true)

ma_short= sma(close,8)
ma_long= sma(close,89)

entry_ma = crossover (ma_short,ma_long)
exit_ma = crossunder (ma_short,ma_long) 


BBlength = input(24, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

source = close
entry_bb = crossover(source, BBlower)
exit_bb = crossunder(source, BBupper)


vs_entry = false
vs_exit = false
for i = 0 to 63
    if (entry_bb[i])
        vs_entry :=  true
    if (exit_bb[i])
        vs_exit :=  true
        

entry = entry_ma and vs_entry
exit =  exit_ma and vs_exit

strategy.entry(id="long_ma",long=true,when=entry)
strategy.close(id="long_ma", when=exit)

strategy.entry(id="short_ma",long=false,when=exit)
strategy.close(id="short_ma",when=entry)


Больше