Стратегия MACD, нейтрализующая тренд


Дата создания: 2023-10-30 17:08:16 Последнее изменение: 2023-10-30 17:08:16
Копировать: 1 Количество просмотров: 641
1
Подписаться
1617
Подписчики

Стратегия MACD, нейтрализующая тренд

Обзор

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

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

Во-первых, рассчитывается цена EMA, чтобы устранить тенденцию цены, чтобы получить цены после устранения тенденции EMA. Затем на основе EMA рассчитывается, соответственно, быстрая DEMA, медленная DEMA и прямая MACD.*EMA1-EMA2) 。 медленная линия DEMA и сигнальная линия рассчитываются аналогично 。 после получения MACD прямой линии ((быстрая линия DEMA - медленная линия DEMA) и сигнальной линии, если MACD прямой линии проходит по сигнальной линии, производится сигнал покупки; если MACD прямой линии проходит по сигнальной линии, производится сигнал продажи 。 наконец, в сочетании с условиями месяца, даты фильтруют сигнал и устанавливают логику остановки убытков 。

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

  1. Устранение ценовых тенденций, более четкое представление о форме MACD

  2. Вычислите скоростные и медленные линии DEMA и получите прямые и сигнальные линии MACD

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

  4. Фильтрация по дате и месяцу

  5. Настройка стоп-логики

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

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

  1. Устранение ценовых тенденций позволяет более четко видеть пересечения MACD-индикаторов, чтобы избежать заблуждения по поводу тенденций.

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

  3. Фильтрация по датам и месяцам позволяет сократить количество ненужных сделок.

  4. Настройка логики остановки убытков, которая позволяет своевременно остановить убытки и контролировать риск.

  5. Использование перекрестных сигналов позволяет сократить количество ошибочных сделок.

  6. В целом, эта стратегия, в сочетании с устранением тенденций, расчетом DEMA и фильтрацией условий, позволяет создать более четкий и надежный торговый сигнал.

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

В этой стратегии также есть некоторые риски, о которых следует помнить:

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

  2. Несмотря на то, что алгоритм DEMA отфильтровал часть шума, в расчете показателя все же может быть больше ложных сигналов.

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

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

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

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

Ответ:

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

  2. Оптимизация фильтрации дат и надлежащая разгрузка.

  3. Тщательно протестировать и оптимизировать точку остановки.

  4. Присоединяйтесь к механизму определения тенденций и избегайте контрастной торговли.

  5. Всесторонний анализ и оптимизация параметров для повышения стабильности.

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

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

  1. Проверьте различные средние цены, чтобы найти более подходящий альтернативный тип линии EMA.

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

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

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

  5. Оптимизация фильтрации по датам и месяцам, чтобы сделать ее более гибкой.

  6. Добавить определение тенденции, избежать обратной операции.

  7. Оптимизация всех параметров, повышение стабильности стратегии.

  8. Проверка долгосрочной эффективности стратегии проводится в более длительных периодах времени.

  9. Проверка в реальном пространстве, дальнейшие изменения параметров стратегии в зависимости от ситуации в реальном пространстве.

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

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

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

//@version=2

strategy(title = "Trendless MACD  Strategy",shorttitle="MACD-T Strategy",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.01,initial_capital=100000)



maperiod=input(9)
ema=ema(close,maperiod)


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(ema,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = ema(ema,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 = MACDLine-SignalLine


colorbar= MACDSignal>0?green:red

plot(MACDSignal,color=colorbar,style=columns,title='Histogram',histbase=0)
p1 = plot(MACDLine,color=blue,title='MACDLine')
p2=plot(SignalLine,color=red,title="SignalLine")
fill(p1,p2,color=blue)


longCond =  crossover(MACDLine,SignalLine) 

shortCond =  crossunder(MACDLine,SignalLine) 




monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)

yearfrom= input(2018)
yearuntil=input(2021)

if (  longCond   ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond  ) 

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