В процессе загрузки ресурсов... загрузка...

Стратегия MACD без тренда

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

img

Обзор

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

Логика стратегии

В первую очередь, EMA цены рассчитывается, чтобы устранить ценовой тренд и получить уменьшенную EMA. Затем на основе EMA рассчитываются быстрая линия DEMA, медленная линия DEMA и линия MACD. Быстрая линия DEMA рассчитывается путем: сначала расчета EMA1 быстрой линии, затем расчета EMA2 EMA1 и, наконец, расчета DEMA=(2*EMA1-EMA2). Слишком медленная линия DEMA и линия сигнала рассчитываются аналогично. После получения линии MACD (быстрая линия DEMA - медленная линия DEMA) и линии сигнала, генерируется сигнал покупки, когда линия MACD пересекает линию сигнала, а сигнал продажи генерируется, когда линия MACD пересекает линию сигнала ниже. Наконец, комбинируйте фильтры даты и месяца и установите логику остановки.

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

  1. Удалить ценовую тенденцию, чтобы лучше видеть индикатор MACD.

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

  3. Скрещивание линии MACD и линии сигнала генерирует торговые сигналы.

  4. Добавьте фильтры даты и месяца.

  5. Установите логику остановки.

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

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

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

  2. Использование алгоритма DEMA для расчета MACD фильтрует шум и делает сигнал более ясным.

  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. Торговля в режиме реального времени для проверки и дальнейшего изменения параметров на основе реальной торговли.

Резюме

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


/*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")





Больше