Стратегия динамического отслеживания длинных и коротких полос


Дата создания: 2023-10-17 15:55:41 Последнее изменение: 2023-10-17 15:55:41
Копировать: 0 Количество просмотров: 650
1
Подписаться
1617
Подписчики

Стратегия динамического отслеживания длинных и коротких полос

Обзор

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

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

Эта стратегия сначала рассчитывает скользящие средние значения наивысшей и наименьшей цены в течение определенного периода (например, 200 дней) и использует их среднюю точку в качестве базовой линии. Затем рассчитывается степень отклонения цены от базовой линии, которая считается в восходящем тренде, когда цена выше базовой линии ATR (например, в 0,5 раза выше базовой линии ATR на 10 дней), и в нисходящем тренде, когда цена ниже базовой линии ATR.

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

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

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

Риск и хеджирование

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

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

Оптимизация

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

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

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

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

//@version=4
strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3)
c = trend < 0 ? upper : lower

pcenter = plot(center, transp=100)
pclose = plot(close, transp=100)
pc = plot(c, transp=100)

buy_signal = crossover(trend, 0.0) 
sell_signal = crossunder(trend, 0.0)

strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=sell_signal)

bgcolor(trend >= 0 ? color.green : color.red, transp=95)
fill(pc, pclose, color=trend >= 0 ? color.green : color.red)