Стратегия следования за трендом MACD


Дата создания: 2023-12-11 14:57:00 Последнее изменение: 2023-12-11 14:57:00
Копировать: 0 Количество просмотров: 649
1
Подписаться
1621
Подписчики

Стратегия следования за трендом MACD

Обзор

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

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

Основная логика стратегии отслеживания трендов MACD заключается в следующем:

  1. Расчет MACD-линий и сигнальных линий.
  2. Когда MACD-линия пробивает 0 снизу вверх, записывает наивысшую точку в это время и ждет сигнала мертвой форки.
  3. Когда MACD-линия падает вниз от 0 сверху, записывайте самую низкую точку в это время и ждите сигнала золотого форка.
  4. При появлении форка, записывается текущая цена закрытия, которая используется в качестве точки входа, устанавливается точка остановки, открывается позиция.
  5. При появлении мертвой форки записывается текущая цена закрытия в качестве точки входа в позицию, устанавливается точка остановки убытков, открывается позиция и делается пустота.
  6. При проведении позиции на несколько позиций, если доходность достигает заданной цели или отзыв достигает точки остановки убытков, ликвидация позиции прибыльно завершена.
  7. При открытии позиции по диверсификации, если доходность достигает заданной цели или отзыв достигает точки остановки убытков, ликвидация позиции завершается прибылью.

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

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

Стратегия отслеживания трендов MACD имеет следующие преимущества:

  1. Источник стратегического сигнала является единственно ясным и непосредственно генерируется MACD-индикатором, избегая помех сигналу.
  2. Используйте характеристики MACD для определения направления рыночных тенденций.
  3. В этом случае, как отмечается в сообщении, “все, что мы делаем, - мы делаем для того, чтобы сохранить стабильность и стабильность”.
  4. У нас есть контроль над рисками, есть механизм сдерживания потерь.

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

Также существуют риски, связанные со стратегией слежения за трендом MACD:

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

В связи с вышеуказанными рисками можно принять следующие меры оптимизации:

  1. В сочетании с другими показателями фильтрует ложные сигналы.
  2. Динамическая коррекция стоп-стоп.
  3. Оптимизация параметров для отслеживания коэффициентов прибыли и стоп-лосс.

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

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

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

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

  3. Настройка механизма динамического отслеживания стоп-убытков. Стоп-убытки могут быть скорректированы в режиме реального времени в зависимости от колебаний.

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

  5. В сочетании с машинным обучением модели фильтруют сигналы. Модели могут быть обучены оценивать надежность сигналов.

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

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

Исходный код стратегии
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0