Торговая стратегия следования за трендом с использованием пересечения двойных скользящих средних


Дата создания: 2024-01-05 15:32:06 Последнее изменение: 2024-01-05 15:32:06
Копировать: 1 Количество просмотров: 677
1
Подписаться
1617
Подписчики

Торговая стратегия следования за трендом с использованием пересечения двойных скользящих средних

Обзор

Двулинейная кросс-стратегия является стратегией отслеживания тенденций. Она использует как сигнал к покупке и продаже кросс-стратегию быстрого движения среднего значения (MACD) и медленно движущегося среднего значения.

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

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

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

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

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

Эта стратегия имеет следующие преимущества:

  1. Captured позволяет оперативно и своевременно отслеживать изменения в ценовых тенденциях.
  2. Это просто, понятно и легко реализовано.
  3. Параметры более фиксированы, не требуют регулярной корректировки.
  4. Подходит для разных временных циклов.

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

Однако эта стратегия также несет в себе некоторые риски:

  1. Whipsaws может вызывать многократные ошибочные сигналы, то есть повторяющиеся триггеры покупок и продаж на диапазоне.
  2. Lagging - существует определенная задержка, которая может привести к упущению наилучшего момента для изменения цены.
  3. over optimization - параметры, которые легко переоптимизируются, но могут оказаться неэффективными.

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

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

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

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

  2. Сочетание с другими показателями. Можно ввести показатели величины, показатели волатильности и т. Д., Чтобы сформировать более мощную комбинационную стратегию.

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

  4. Оптимизация адаптации. Эта стратегия может быть применена в разных рынках и в разные периоды времени и может быть скорректирована в соответствии с реальными обстоятельствами.

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

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

Исходный код стратегии
/*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)