Стратегия трендовой торговли на основе индикатора MACD


Дата создания: 2024-02-02 11:32:48 Последнее изменение: 2024-02-02 11:32:48
Копировать: 3 Количество просмотров: 642
1
Подписаться
1617
Подписчики

Стратегия трендовой торговли на основе индикатора MACD

Обзор

В основе этой стратегии лежит индикатор, разработанный Эндрю Абрахамом в статье, опубликованной в сентябрьском выпуске журнала “TASC” в журнале “Тренды торговли криптовалютами”. Индикатор использует средний реальный диапазон колебаний и ценовые каналы для определения направления рыночных тенденций и фильтрует торговые сигналы в сочетании с индикатором MACD, который предназначен для захвата средне-длинных тенденций.

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

Сначала стратегия рассчитывает весомое скользящее среднее 21-дневного диапазона реальных колебаний (ATR) в качестве базового диапазона колебаний. Затем она рассчитывает максимальные и минимальные цены за последние 21 день, сравнивает текущие цены закрытия линии K с верхней и нижней границами базового диапазона колебаний, чтобы определить, прорвала ли цена канал, и, таким образом, определить направление тенденции.

В частности, определение верхнего предела канала является максимальной ценой за последние 21 день минус 3 раза базовый ATR, а нижнего предела канала - минимальной ценой за последние 21 день плюс 3 раза базовый ATR. Когда цена закрытия выше верхнего предела канала, следует рассматривать как тенденцию к повышению; когда цена закрытия ниже нижнего предела канала, следует рассматривать как тенденцию к снижению.

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

Стратегические преимущества

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

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

Стратегический риск

В этой стратегии есть определенные риски, которые проявляются в следующих аспектах:

  1. Риск нарушения ценового коридора не исключен
  2. Риск появления вводящих в заблуждение сигналов
  3. Неправильная настройка параметров может привести к нестабильности стратегии

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

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

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

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

Можно тестировать комбинации различных параметров Length или Multiplier, чтобы найти оптимальную комбинацию параметров, которая дает наилучшую отдачу на основе данных обратной связи.

  1. в сочетании с другими показателями фильтрации signal

Можно проверить фильтрационный сигнал в сочетании с другими показателями, такими как RSI, KDJ и т. Д., чтобы увидеть, можно ли повысить доходность.

  1. Динамические параметры настройки

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

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

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

Исходный код стратегии
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © melihtuna

//@version=1
strategy("Trend Trader Strategy with MACD", overlay=true)

// === Trend Trader Strategy ===
Length = input(21),
Multiplier = input(3, minval=1)
MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = iff(close > hiLimit and close > loLimit, hiLimit,
        iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos =	iff(close > ret, 1,
	    iff(close < ret, -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(ret, color= blue , title="Trend Trader Strategy with MACD")

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

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true

strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == -1)