MACD DEMA Торговая стратегия

Автор:Чао Чжан, Дата: 2023-09-19 16:10:19
Тэги:

Обзор

Эта стратегия сочетает в себе индикаторы MACD и DEMA для генерации торговых сигналов из кроссоверов.

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

  1. Вычислить скоростную линию DEMAfast как DEMA стоимость цены с длиной периода fastmacd.

  2. Вычислить медленную линию DEMAslow как DEMA стоимость цены с длиной периода slowmacd.

  3. Линия MACD - это разница между быстрыми и медленными линиями: DEMAfast - DEMAAslow.

  4. Сигнальная линия представляет собой значение DEMA линии MACD с периодом сигнала MACd.

  5. Кроссовры между MACD и линиями сигналов генерируют торговые сигналы: длинные на золотом кресте, короткие на смертном кресте.

  6. Добавление фильтров даты для генерации сигналов только в пределах указанного диапазона дат.

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

Основными преимуществами этой стратегии являются:

  1. Сочетание MACD и DEMA дополняет индикаторы.

  2. Дизайн двойных рельсов DEMA уменьшает отставание и шум индикатора MACD.

  3. Сигналы MACD легко интерпретируются, чисты и просты.

  4. Гибкое установление фильтров даты удовлетворяет различным потребностям стратегии.

  5. Параметры MACD могут быть оптимизированы для обеспечения гибкости в условиях рынка.

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

Основные риски этой стратегии:

  1. MACD борется как индикатор тренда на неуравновешенных рынках.

  2. Кроссоверы могут генерировать ложные сигналы, требует эффективной фильтрации.

  3. Стратегия стоп-лосса не надежная, склонна к чрезмерным стопам.

  4. Оптимизация параметров недостаточно всеобъемлющая, большая разница в производительности между продуктами.

  5. Фильтр даты слишком жесткий, требует динамической настройки.

Решения:

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

  2. Добавьте ценовые условия, чтобы отфильтровать ложные кресты.

  3. Установите разумные начальные и последующие стоп-лосс.

  4. Испытание параметров по всем продуктам, динамическая оптимизация.

  5. Настройка дат фильтра на основе условий реального времени.

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

Некоторые потенциальные улучшения для стратегии:

  1. Добавьте фильтр громкости для перекрестных сигналов.

  2. Оптимизировать комбинации параметров MACD для различных продуктов.

  3. Добавьте стоп-стратегии, такие как фиксированный или отстающий стоп-потеря.

  4. Динамически корректировать стоп-лосс на основе волатильности рынка.

  5. Отслеживать силу тренда для размещения позиций.

Резюме

Стратегия MACD DEMA сочетает в себе сильные стороны обоих индикаторов, используя кроссоверы для улавливания тенденций. Но MACD по своей сути отстает, остерегайтесь ложных сигналов. Также оптимизируйте остановки, чтобы избежать необоснованной ликвидации. Для живой торговли рекомендуется осторожный вход на основе оптимизированных параметров и непрерывных улучшений.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(" MACD DEMA STRATEGY ", overlay=true)

source=close
price=source



fastmacd = input(12,title='MACD Fast  Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')

macdslowline1 = ema(close,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(close,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )


MACDSignal = SignalLine-MACDLine


colorbar= MACDSignal>0?green:red




yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(MACDLine,SignalLine) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(MACDLine,SignalLine) ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    
    
    
    
    
    
    
    
    


Больше