Комбинированная стратегия индикатора направленного движения и бестрендового ценового осциллятора


Дата создания: 2024-01-04 17:56:28 Последнее изменение: 2024-01-04 17:56:28
Копировать: 0 Количество просмотров: 409
1
Подписаться
1166
Подписчики

Комбинированная стратегия индикатора направленного движения и бестрендового ценового осциллятора

Обзор

Эта стратегия использует комбинацию двух мощных индикаторов, встроенных в торговую картину, - динамического индикатора (DMI) и детрендового ценового шокера (DPO), - для создания надежной основы для принятия решений. Основная логика стратегии заключается в том, что при появлении золотой крестовой точки в DMI-индикаторе следует определить, является ли значение DPO-индикатора больше 0, если оно больше 0, то это создает многоголовый сигнал; при появлении мертвой форки в DMI-индикаторе следует определить, является ли значение DPO-индикатора меньше 0, если оно меньше 0, то это создает пустой сигнал.

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

Эта стратегия использует в основном показатели DMI для определения направления и силы тренда. Индикатор DMI состоит из трех кривых: +DI, -DI и ADX. +DI представляет собой многоголовые силы, -DI представляет собой воздушные силы, их пересечение может определить текущее направление тренда; ADX представляет собой силу тренда, чем выше значение, тем более очевидным становится тренд.

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

В частности, логика заключается в следующем:

  1. Когда + DI находит -DI, относится к золотому кресту и считается многоголовым рынком. В этот момент, если показатель DPO больше 0, подтверждение, что в настоящее время находится в восходящей тенденции, создает многоголовый сигнал.

  2. Когда -DI пересекает +DI, относится к мертвой вилке и определяется как свободный рынок. В этот момент, если показатель DPO меньше 0, подтверждение, что в настоящее время находится в нисходящей тенденции, создает сигнал свободного рынка.

  3. Если +DI/-DI пересекается, но показатель DPO приближается к нулю, то это будет расценено как шок и не будет давать сигнал.

Анализ преимуществ

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

  1. Использование показателя DMI для определения направления и силы тренда является проверенным и надежным техническим показателем.

  2. Фильтрация фальшивых сигналов от колебаний в диапазоне с помощью индикатора DPO позволяет избежать убытков, создавая сигналы только при формировании тренда.

  3. Сочетание нескольких показателей, которые могут служить для взаимной проверки, повышает надежность сигналов.

  4. Логика стратегии проста, понятна и легко применяется, она подходит для автоматической или ручной торговли.

  5. Поскольку торговля только в тренде, можно получить более высокую доходность риска.

Анализ рисков

Несмотря на высокую надежность данной стратегии, следует учитывать следующие риски:

  1. Внезапные события приводят к огромным односторонним действиям на рынке и могут упустить эту тенденционную возможность. Этот риск можно уменьшить, снизив параметр DPO.

  2. Сам по себе индикатор DMI также может создавать ошибочные сигналы, и этого риска нельзя полностью избежать. Для контроля потерь можно установить стоп-лосс.

  3. Неправильная настройка параметров показателя DPO также может привести к ошибочному суждению. Оптимальные параметры должны быть определены с помощью повторной обратной проверки.

  4. Стоимость сделок оказывает определенное влияние на прибыль, следует контролировать частоту сделок. Можно уменьшить неэффективные сделки путем оптимизации параметров.

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

Однако есть еще много возможностей для оптимизации этой стратегии:

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

  2. Для повышения точности сигнала может быть проверена в сочетании с другими показателями, такими как KDJ, MACD и т. д.

  3. Параметры адаптации могут быть установлены в зависимости от разных сортов, периодов и т. Д., Чтобы сделать стратегию более адаптивной.

  4. Можно установить динамические стоп-лосы для контроля за одиночными потерями. Также можно установить различные стоп-лосы в зависимости от фазы тренда.

  5. Подобные методы, такие как машинное обучение, позволяют оптимизировать время входа и выхода, чтобы получить более высокую прибыль.

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

Стратегия сочетает в себе преимущества двух индикаторов DMI и DPO, высокую точность при определении обратного тренда и создание надежного идентификатора тренда. В то же время, использование индикаторов DPO эффективно фильтрует шум, вызванный межзонными колебаниями, и предотвращает неэффективную торговлю. Это делает его эффективной стратегией, подходящей для автоматической торговли и ручного использования.

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

//@version=4
strategy("DMI DPO Guard Strategy", calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency="USD", commission_type=strategy.commission.percent, commission_value=0.25)

///Tradingview's DMI indicator logic///
len = input(34, minval=1, title="DI Lookback")
up = change(high)
down = -change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / trur)
minus = fixnan(100 * rma(minusDM, len) / trur)

plot(plus, color=color.orange, title="+DI")
plot(minus, color=color.aqua, title="-DI")


period_ = input(34, title="Length", minval=1)
isCentered = input(false, title="Centered")
barsback = period_/2 + 1
ma = sma(close, period_)
dpo = isCentered ? close[barsback] - ma : close - ma[barsback]
plot(dpo, offset = isCentered ? -barsback : 0, title="Detrended Price Oscillator", color=#C0C000)
hline(0, title="Zero Line", color = #C0C0C0)

long = crossover(plus, minus) and (dpo > 0)
short = crossunder(plus, minus) and (dpo < 0)

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