Количественная стратегия EMA и MACD с двойным ходом и лидирующим рыночным индексом

Автор:Чао Чжан, Дата: 2023-12-12 12:13:25
Тэги:

img

Обзор

Эта стратегия в основном использует скользящую среднюю линию EMA и индикатор MACD для определения изменений в рыночных моделях и выполняет импульсные торговые стратегии.

Принцип

Эта стратегия включает в себя индикатор скользящей средней линии и индикатор MACD.

Во-первых, он использует два индикатора EMA с разными длинами цикла, один из которых - линия EMA 25 циклов, а другой - линия EMA 50 циклов. Линия EMA 25 циклов может отражать краткосрочные тенденции, в то время как линия EMA 50 циклов отражает средне- и долгосрочные тенденции. Когда краткосрочная линия EMA пересекает линию EMA сверху, это означает, что рынок переходит от падения к росту, что является золотым крестовым сигналом для длинного хода. Когда краткосрочная EMA пересекает линию EMA сверху, это означает, что рынок переходит от верхнего к нижнему, что является смертным крестовым сигналом для короткого хода.

В то же время стратегия также включает сигналы индикатора MACD. Индикатор MACD включает в себя линию DIF и линию DEA, которые представляют собой разницу между краткосрочными и долгосрочными экспоненциальными скользящими средними, рассчитанными с помощью двойной EMA. Эта стратегия устанавливает DIF как разницу между 12-дневной EMA и 26-дневной EMA. Линия DEA является 9-дневной экспоненциальной скользящей средней DIF. Линия DIF представляет импульс, а линия DEA представляет среднюю MACD. Когда DIF пересекает линию DEA снизу, она генерирует сигнал покупки. Когда DIF пересекает ниже DEA сверху, она генерирует сигнал продажи.

Комбинируя эти два показателя, длинный сигнал входа генерируется, когда 25-дневная EMA имеет золотой крест 50-дневной EMA, в то время как линия DIF MACD пересекает линию DEA.

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

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

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

  2. Интеграция индикатора MACD позволяет дополнительно проверить торговые сигналы и избежать риска ложных сигналов EMA с двойной траекторией, повышая практическую эффективность стратегии.

  3. Используя 25-дневную и 50-дневную линию как быструю и медленную, выбор параметров более точен, что позволяет фиксировать значительные изменения тенденции в среднесрочных и краткосрочных циклах.

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

  5. Логика стратегии проста и понятна, легко понять и реализовать, подходит для количественных новичков.

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

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

Для этой стратегии все еще существуют некоторые риски:

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

  2. Параметры MACD нуждаются в постоянной оптимизации и корректировке, в противном случае могут возникнуть неправильные сигналы или задержки сигналов.

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

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

  5. Необходимость контроля размеров позиций и уровня кредитного плеча для предотвращения риска принудительной ликвидации из-за односторонних тенденций.

Руководство по оптимизации

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

  1. Испытать более точные комбинации параметров с более высокой практической эффективностью, например, использовать 20-дневные и 60-дневные линии EMA в качестве торговых путей, с DIF как разницей между 10-дневным EMA и 20-дневным EMA.

  2. Увеличить подтверждение показателей объема торговли, чтобы избежать ложных прорывов с низким объемом.

  3. Включить индикаторы волатильности, такие как ATR, для определения более научных методов остановки потерь.

  4. Использование алгоритмов машинного обучения для автоматической оптимизации параметров для динамической адаптации к изменяющейся рыночной среде.

  5. Добавить модуль управления размером позиции для динамической корректировки размеров на основе эффективности стратегии и показателей.

  6. Могут наносить стратегические сигналы на графики более высоких временных рамок, чтобы помочь принять решения о более долгосрочных направленных сделках.

Резюме

Эта стратегия объединяет сильные стороны индикаторов скользящей средней линии и индикаторов MACD путем оценки более качественных моделей свечей через двойные линии EMA в сочетании с DIF и DEA, соответствующих направлению импульса MACD, формируя устойчивую и эффективную стратегию торговли импульсом. Логика проста и легко понятна и оптимизируется, очень подходит для начала и реализации квантовых трейдеров. Благодаря постоянному тестированию и оптимизации эта стратегия может стать одной из стратегий стоимости, которая превосходит индексы.


/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="EMA+MACD", shorttitle="EMA+MACD", overlay=true)
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)


signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"])

fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
len1 = input(title="Len Ema 1 ",type=input.integer,defval=25)
len2 = input(title="Len Ema 2 ",type=input.integer,defval=50)
ema1 = ema(src,len1)
ema2 = ema(src,len2)

bull = crossover(ema1,ema2) and macd > 0
bear = crossover(ema2,ema1) and macd < 0
l1 = bull ? label.new(x=bar_index,y=low,yloc=yloc.belowbar,text="BUY",color=color.green,textcolor=color.white,style=label.style_triangleup) : na
l2 = bear ? label.new(x=bar_index,y=high,yloc=yloc.abovebar,text="SELL",color=color.red,textcolor=color.white,style=label.style_triangledown) : na


strategy.entry("LONG",strategy.long,when=bull)
strategy.entry("SHORT",strategy.short,when=bear)




Больше