Стратегия торговли по MACD Crossover

Автор:Чао Чжан, Дата: 2024-01-05 15:32:06
Тэги:

img

Обзор

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

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

Эта стратегия основана на индикаторе MACD. Индикатор MACD представляет собой разницу между двумя скользящими средними линиями с разными параметрами, отражающими изменения импульса цен. В частности, это разница между быстрой скользящей средней линией (парометр по умолчанию - 12-дневная линия) и медленной скользящей средней линией (парометр по умолчанию - 26-дневная линия), называемой MACD bar. Для устранения колебаний индикатор MACD также вводит линию DEA или линию сигнала, обычно 9-дневную взвешенную скользящую среднюю MACD.

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

Стратегия использует перекрестное соотношение MACD и линии DEA для определения времени покупки и продажи.

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

Преимущества этой стратегии включают:

  1. Способность своевременно следить за тенденцией и отслеживать изменения цен.
  2. Просто и легко понять и реализовать.
  3. Относительно фиксированные параметры без частого регулирования.
  4. Применимо к разным временным рамкам.

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

Эта стратегия также сопряжена с некоторыми рисками:

  1. Может генерировать множество ложных сигналов или сбоев на боковых рынках.
  2. У него есть некоторое отставание и он может пропустить лучшее время изменения цен.
  3. Параметры легко переоптимизируются, и фактические результаты могут быть плохими.

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

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

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

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

  2. Сочетание с другими показателями для формирования более эффективных стратегий комбинации.

  3. Установка правильных стоп-лосс и точек получения прибыли для эффективного контроля рисков.

  4. адаптивная оптимизация для применения этой стратегии на разных рынках и сроках на основе реальных условий.

Заключение

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


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MACD Strategy by Forbes",default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

fastLength = input(20)
slowlength = input(40)
MACDLength = input(4)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2011, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350

f1 = plot(MACD,color=red)
s1 = plot(aMACD,color=blue)
plotColor = if delta > 0
    delta > delta[1] ? lime : green
else 
    delta < delta[1] ? maroon : red

plot(delta, color=plotColor, style=columns)

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Больше