Стратегия следования за трендом ATR


Дата создания: 2023-09-21 15:13:47 Последнее изменение: 2023-09-21 15:13:47
Копировать: 0 Количество просмотров: 770
1
Подписаться
1617
Подписчики

Обзор

Эта стратегия использует среднюю реальную волну (ATR) для захвата ценовых тенденций и устанавливает стоп-лосс с помощью ATR для отслеживания тенденций.

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

  1. Расчет ATR.

  2. Стоп-лост определяется по ATR.

  3. Когда цена пересекает линию стоп-лосса, делайте дополнительное удаление.

  4. Прибыль блокируется с помощью динамического регулирования стоп-лосса.

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

  • С помощью ATR автоматически корректируйте остановку без вмешательства человека
  • Стратегии простые, интуитивные и легко реализуемые
  • Во избежание попадания в ловушку.
  • Использование трендов для получения прибыли
  • Частота транзакций может регулироваться с помощью ATR-параметров

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

  • Неправильно настроенные параметры ATR могут привести к слишком Loose или Tight
  • Невозможность эффективно определить конец тренда
  • Временная задержка
  • Возможно, частичная прибыль от возврата убытков

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

  • Оптимизация параметров цикла ATR
  • Тестирование различных ATR-коэффициентов в качестве стоп-дистанций
  • В сочетании с другими показателями отмечен обратный тренд
  • Попытка оптимизации параметров машинного обучения
  • Подумайте о дополнительных методах сдерживания

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

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

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

strategy(title="ATR Strategy", overlay = true,  commission_type=strategy.commission.percent,commission_value=0.075)
//credits to HPotter for the orginal code
nATRPeriod = input(5)
nATRMultip = input(3.5)
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), math.max(nz(xATRTrailingStop[1]), close - nLoss),
                    iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), math.min(nz(xATRTrailingStop[1]), close + nLoss), 
                        iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
	    iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 

strategy.entry("Long", strategy.long, when = barbuy) 
strategy.entry("Short", strategy.short, when = barsell) 

barcolor(barbuy? color.green:color.red)