Стратегия прорыва с двойным импульсным индикатором
Обзор
Данная стратегия представляет собой стратегию пробоя на основе двойного индикатора моментума. Она использует два индикатора моментума с разными настройками параметров и генерирует торговые сигналы, когда оба индикатора моментума пересекают нулевую линию. Стратегия открывает только длинные позиции, короткие используются только для закрытия позиций.
Принцип стратегии
В коде сначала задаются свойства стратегии, такие как режим заявок, режим комиссий и т.д. Затем рассчитываются два индикатора моментума:
pine
// Настройки моментума
i_len = input(defval = 12, title = "Length", minval = 1)
i_src = input(defval = close, title = "Source")
i_percent = input(defval = true, title = "Percent?")
i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"])
// Код моментума
mom0 = momentum(i_src, i_len, i_percent)
mom1 = momentum(mom0, 1, i_percent)
mom2 = momentum(i_src, 1, i_percent)
momX = mom1
if i_mom == "MOM2"
momX := mom2
mom0 — базовый индикатор моментума с длиной i_len, источником данных i_src; расчет в процентах определяется i_percent.
mom1 — индикатор моментума с длиной 1, использующий mom0 в качестве источника данных.
mom2 — индикатор моментума с длиной 1, использующий исходные данные i_src.
Итоговый используемый индикатор моментума momX по умолчанию равен mom1, но можно выбрать mom2.
Когда mom0 и momX одновременно пересекают нулевую линию сверху, открывается длинная позиция; когда оба опускаются ниже нулевой линии, позиция закрывается.
Преимущества стратегии
-
Использование двух индикаторов моментума с разными настройками параметров повышает надежность торговых сигналов – двойное подтверждение снижает количество ложных сигналов.
-
Открытие только длинных позиций (короткие используются лишь для закрытия) позволяет снизить частоту сделок и уменьшить торговые издержки.
-
Параметры индикаторов моментума можно настраивать, адаптируясь к различным рыночным условиям.
-
Код имеет четкую структуру, легко понимается и модифицируется.
-
Добавлены сообщения о сделках, что позволяет использовать стратегию в сочетании с автоматическими торговыми системами.
Риски стратегии
-
Хотя двойной индикатор моментума уменьшает количество ложных сигналов, он может пропустить сигналы слабых трендов.
-
Торговля только в длинную сторону может привести к упущению возможностей для коротких позиций.
-
Неправильный выбор параметров индикаторов моментума может привести к слишком частым или слишком редким сделкам.
-
Недостаточность данных для бэктестинга может вызвать переобучение параметров.
-
Двойное подтверждение снижает количество ложных сигналов, но не исключает их полностью; при реальной торговле все равно необходимо оценивать достоверность пробоя.
Направления оптимизации стратегии
-
Можно протестировать различные комбинации длины и опции расчета в процентах, чтобы найти оптимальные параметры.
-
После подтверждения тренда можно добавить сигналы для коротких позиций, чтобы задействовать больше торговых возможностей.
-
Можно протестировать разные способы расчета моментума, такие как ROC, RSI и т.д., в поисках лучшего результата.
-
Можно добавить фильтр тренда, чтобы избегать торговли при боковом движении.
-
Можно оптимизировать стратегию стоп-лосса, балансируя максимизацию прибыли и контроль рисков.
Заключение
Данная стратегия является типичной стратегией пробоя на основе двойного индикатора моментума. Она использует двойное подтверждение для снижения ложных сигналов и входит только в длинные позиции, чтобы уменьшить частоту сделок. Преимущества стратегии – простота, наглядность, легкость реализации, а также большой потенциал для улучшения при оптимизации параметров и управлении рисками. В целом, данная стратегия может служить базовой структурой для стратегий пробоя моментума, однако требует настройки под конкретный рынок для стабильной прибыли в реальной торговле.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Momentum Long Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash, commission_type = strategy.commission.percent, commission_value = 0, calc_on_every_tick = true)
// There will be no short entries, only exits from long.- 1

