Стратегия кроссовера MACD - это стратегия, следующая за трендом. Она использует кроссовер быстрых и медленно движущихся средних линий в качестве сигналов покупки и продажи. Когда быстрая среднедвижущаяся линия пересекает линию медленно движущегося среднего, генерируется сигнал покупки. Когда быстрая среднедвижущаяся линия пересекает линию медленно движущегося среднего, генерируется сигнал продажи.
Эта стратегия основана на индикаторе MACD. Индикатор MACD представляет собой разницу между двумя скользящими средними линиями с разными параметрами, отражающими изменения импульса цен. В частности, это разница между быстрой скользящей средней линией (парометр по умолчанию - 12-дневная линия) и медленной скользящей средней линией (парометр по умолчанию - 26-дневная линия), называемой MACD bar. Для устранения колебаний индикатор MACD также вводит линию DEA или линию сигнала, обычно 9-дневную взвешенную скользящую среднюю MACD.
Когда MACD пересекает линию DEA снизу вверх и входит в положительную зону, это указывает на то, что краткосрочная средняя линия пересекается выше долгосрочной средней линии, что указывает на то, что ценовая тенденция поворачивается вверх и генерируется сигнал покупки. Когда MACD падает сверху вниз через линию DEA и входит в отрицательную зону, это указывает на то, что краткосрочная средняя линия пересекается ниже долгосрочной средней линии, а ценовая тенденция поворачивается вниз, генерируя сигнал продажи.
Стратегия использует перекрестное соотношение MACD и линии DEA для определения времени покупки и продажи.
Преимущества этой стратегии включают:
Эта стратегия также сопряжена с некоторыми рисками:
Для снижения рисков параметры могут быть скорректированы или объединены с другими показателями, такими как показатели объема и волатильности.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров для поиска оптимальных параметров, избегая чрезмерной оптимизации.
Сочетание с другими показателями для формирования более эффективных стратегий комбинации.
Установка правильных стоп-лосс и точек получения прибыли для эффективного контроля рисков.
адаптивная оптимизация для применения этой стратегии на разных рынках и сроках на основе реальных условий.
Стратегия торговли 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)