Стратегия ADX, MA и EMA по отслеживанию тенденций только на длительный период

Автор:Чао Чжан, Дата: 2024-01-29 11:30:15
Тэги:

img

Обзор

Эта стратегия в основном использует индикатор ADX для оценки тренда и сочетает в себе скользящие средние значения MA и EMA с различными параметрами, чтобы создать стратегию отслеживания тренда только на длинный период. Когда ADX повышается, это указывает на длинное направление. Когда цена проходит через восходящие MA и EMA, открывайте длинные позиции. Когда ADX падает или цена падает ниже MA или EMA, закрывайте позиции.

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

Стратегия в основном использует ADX для оценки тенденции и силы рынка. ADX рассчитывает степень и направление изменения цен для определения существования и силы тренда. Когда ADX повышается, это означает, что он в настоящее время находится в восходящей тенденции. Когда ADX падает, это означает, что тенденция ослабевает.

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

Комбинируя характеристики ADX и скользящих средних, стратегия создает торговые сигналы для оценки направления тренда: идти длинным, когда ADX растет, и цены проходят через восходящие MA и EMA, и закрывать позиции, когда ADX падает или цены проходят через MA / EMA. Она реализует стратегию отслеживания тренда только длинного.

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

Основными преимуществами этой стратегии являются:

  1. Используйте ADX для оценки силы тренда, снижения недействительных сделок и отслеживания тенденций.
  2. Объединение двух скользящих средних с различными параметрами может эффективно определить тенденции.
  3. Только длинные позиции позволяют избежать частых обратных операций и потерь при скольжении.
  4. Строгие условия входа могут эффективно контролировать риски.
  5. Используйте стратегию отслеживания тенденций только на длительный период.

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

Существуют также некоторые риски:

  1. Индикатор ADX имеет задержку, возможно, пропускает лучшую точку входа.
  2. Только длинные позиции не могут извлекать выгоду из падения рынков.
  3. Существует определенный риск потерь при изменении тенденций.
  4. Неправильные параметры также влияют на эффективность стратегии.

Решения:

  1. Регулируйте параметры ADX, чтобы разумно уменьшить задержку.
  2. Установите стоп-потерю для контроля одиночных потерь.
  3. Тестируйте и оптимизируйте параметры, чтобы выбрать лучшие.

Оптимизация

Стратегия может быть оптимизирована из следующих аспектов:

  1. Добавьте стратегию стоп-лосса, чтобы лучше контролировать риски.
  2. Добавить управление позициями для динамической корректировки позиций на основе рыночных условий.
  3. Тестируйте и оптимизируйте параметры, чтобы найти лучшую комбинацию.
  4. Добавьте алгоритмы машинного обучения для динамической оптимизации параметров.
  5. Создайте стратегии мартингейла, чтобы уменьшить влияние коэффициента прибыли.

Заключение

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


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
maPeriod = input(50, title="MA Period")
emaPeriod = input(50, title="EMA Period")
dirmov(len) =>
    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)
    truerange = rma(tr, len)
    plus = fixnan(100 * rma(plusDM, len) / truerange)
    minus = fixnan(100 * rma(minusDM, len) / truerange)
    [plus, minus]
adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
maValue = sma(close, maPeriod)
emaValue = ema(close, emaPeriod)
longCondition = sig > sig[1] and close > maValue and close > emaValue
if (longCondition)
    strategy.entry("Long", strategy.long)
exitCondition = sig < sig[1] or  close < maValue or close < emaValue
if (exitCondition)
    strategy.close("Long")
plot(maValue, color=color.blue, title="MA")
plot(emaValue, color=color.orange, title="EMA")
plot(sig, color=color.red, title="ADX")


Больше