В процессе загрузки ресурсов... загрузка...

Комбинация динамического канала Донкиа и простой скользящей средней количественной стратегии

Автор:Чао Чжан, Дата: 2024-06-17 17:29:48
Тэги:SMA

img

Обзор

Эта стратегия сочетает в себе два технических индикатора: канал Дончиана и простую скользящую среднюю (SMA). Она открывает длинную позицию, когда цена прорывается ниже нижней полосы канала Дончиана и закрывается выше SMA. И наоборот, она открывает короткую позицию, когда цена прорывается выше верхней полосы канала Дончиана и закрывается ниже SMA. Длинная позиция закрывается, когда цена достигает верхней полосы канала Дончиана, в то время как короткая позиция закрывается, когда цена достигает нижней полосы. Эта стратегия подходит для рынков с сильными тенденциями.

Принцип стратегии

  1. Вычислите верхнюю и нижнюю полосы Дончианского канала. Верхняя полоса - это самый высокий максимум за последние n периодов, а нижняя полоса - самый низкий минимум за последние n периодов.
  2. Вычислить простую скользящую среднюю. SMA - это арифметическое среднее значение цен закрытия за последние м периодов.
  3. Длинный вход: Открыть длинную позицию, когда цена находится ниже нижней полосы Дончианского канала и цена закрытия выше SMA.
  4. Короткий вход: Открыть короткую позицию, когда цена находится выше верхней полосы Донкианского канала и цена закрытия ниже SMA.
  5. Длинный выход: Закрыть длинную позицию, когда цена достигнет верхней полосы Дончианского канала.
  6. Короткий выход: закрыть короткую позицию, когда цена достигнет нижней полосы Дончианского канала.

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

  1. Сочетает в себе два рыночных элемента: тренд и волатильность. SMA фиксирует тренд, в то время как Donchian Channel фиксирует волатильность, что позволяет стратегии использовать возможности отката на трендовых рынках.
  2. Долгие и короткие позиции закрываются, когда цена достигает верхней и нижней полос Дончянского канала соответственно, что позволяет стратегии выйти из прибыльных сделок до того, как тенденция изменится.
  3. Некоторые параметры облегчают оптимизацию. Стратегия имеет только три параметра: период Дончианского канала, смещение и период SMA, что упрощает оптимизацию.

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

  1. Частая торговля. Стратегия имеет высокую частоту входа и выхода позиций, что может снизить доходность на рынках с высокими затратами на торговлю. Это может быть смягчено умеренным ослаблением условий входа или увеличением временных рамок.
  2. Невысокая производительность на рынках с ограниченным диапазоном. Стратегия может понести больше потерь, когда тенденция неясна. Показатели волатильности могут быть использованы для выявления рынков с ограниченным диапазоном и приостановки стратегии.
  3. Недостаточная стабильность параметров. Оптимальные параметры могут значительно варьироваться в зависимости от инструментов и временных рамок, что указывает на плохую стабильность параметров. Живая производительность может не соответствовать обратному тесту. Для подтверждения надежности параметров необходимы обширные испытания вне выборки и анализ чувствительности.

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

  1. Добавьте дополнительные условия входа в сочетании с другими показателями. Например, требуйте, чтобы ADX DMI был выше определенного порога для входа, или входите в длинный период только тогда, когда RSI выходит из зоны перепроданности. Это может улучшить показатель выигрыша входов.
  2. Используйте динамические линии получения прибыли вместо фиксированных линий Дончианского канала для достижения функции отслеживания прибыли.
  3. Динамически корректировать период Дончианского канала на основе уровня волатильности. Сократить период Дончианского канала в условиях высокой волатильности рынка и продлить период в условиях низкой волатильности. Это помогает адаптироваться к разным рынкам.

Резюме

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


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("FBK Donchian Channel Strategy", overlay=true)

// Inputs
donchian_period = input.int(20, title="Donchian Channel Period")
donchian_offset = input.int(1, title="Donchian Channel Offset")
sma_period = input.int(200, title="SMA Period")
start_date = input(timestamp("2023-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2023-12-31 23:59 +0000"), title="End Date")
trade_type = input.string("Both", title="Trade Type", options=["Buy Only", "Sell Only", "Both"])

// Calculate indicators
donchian_upper = ta.highest(high, donchian_period)[donchian_offset]
donchian_lower = ta.lowest(low, donchian_period)[donchian_offset]
sma = ta.sma(close, sma_period)

// Plot indicators
plot(donchian_upper, color=color.red, title="Donchian Upper")
plot(donchian_lower, color=color.green, title="Donchian Lower")
plot(sma, color=color.blue, title="SMA")

// Helper function to check if within testing period
is_in_testing_period() => true

// Entry conditions
long_condition = low <= donchian_lower and close > sma
short_condition = high >= donchian_upper and close < sma

// Exit conditions
exit_long_condition = high >= donchian_upper
exit_short_condition = low <= donchian_lower

// Open long position
if (is_in_testing_period() and (trade_type == "Buy Only" or trade_type == "Both") and long_condition)
    strategy.entry("Long", strategy.long)

// Close long position
if (is_in_testing_period() and exit_long_condition)
    strategy.close("Long")

// Open short position
if (is_in_testing_period() and (trade_type == "Sell Only" or trade_type == "Both") and short_condition)
    strategy.entry("Short", strategy.short)

// Close short position
if (is_in_testing_period() and exit_short_condition)
    strategy.close("Short")

// Close all positions at the end of the testing period
if not is_in_testing_period()
    strategy.close_all()


Связанные

Больше