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


Дата создания: 2023-12-11 13:12:44 Последнее изменение: 2023-12-11 13:12:44
Копировать: 0 Количество просмотров: 593
1
Подписаться
1621
Подписчики

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

Обзор

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

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

Эта стратегия сначала вычисляет диапазон колебаний ATR, а затем объединяет его с максимальными и минимальными ценами и получает ограниченный канал. Только когда цена прорывает этот канал, цена закрытия ограничивается ценой канала. Затем на закрытую цену после ограничения обращается к подвижному среднему значению, которое называется средним трендовым трейдером (Trend Trade AVR).

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

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

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

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

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

Ответ:

  1. Сокращение сроков хранения позиций, своевременное прекращение убытков
  2. Оптимизация параметров, чтобы сигнал имел определенный буфер
  3. Использование исторических данных и параметров оптимизации диска

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

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

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

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

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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")