Количественная стратегия градиента MACD


Дата создания: 2023-12-19 16:14:50 Последнее изменение: 2023-12-19 16:14:50
Копировать: 0 Количество просмотров: 713
1
Подписаться
1621
Подписчики

Количественная стратегия градиента MACD

Обзор

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

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

  1. Вычислить цены открытия и закрытия, максимумы и минимумы Heikin-Ashi, нарисовать линию Heikin-Ashi, сгладить движение цены K-линии.

  2. Параметры MACD: скоростная линия 12, медленная линия 26, сигнальная линия 9.

  3. Вычислить разницу между медленной линией DEA, быстрой линией DEA и MACD. Нарисовать столбиковую карту MACD.

  4. Когда MACD-дифференциал выше 0, сделайте больше; когда MACD-дифференциал ниже 0, сделайте пустое.

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

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

  1. Heikin-Ashi Filter эффективно фильтрует рыночный шум и определяет тенденции.

  2. MACD предлагает более четкие точки для торговли и покупки.

  3. В сочетании с Heikin-Ashi и MACD, можно улучшить качество торговых точек и увеличить прибыльные сделки.

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

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

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

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

  3. Слишком жесткие временные условия могут привести к упущению хороших торговых возможностей.

Ответ:

  1. Настройка стоп-стоп-убытков, контроль разовых потерь.

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

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

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

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

  2. Добавление механизмов остановки убытков, таких как остановка убытков / отслеживание убытков.

  3. Показатели EMA, KDJ и т.д. в сочетании являются поворотными точками.

  4. Добавление энергетических показателей, избежание энергетических расхождений.

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

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

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

//@version=4
strategy("MACD ASHI BARS .v1 ", overlay=false,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,slippage=1)

// Calculation HA Values 
haopen  = 0.0
haclose = (open + high + low + close) / 4
haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2
hahigh  = max(high, max(haopen, haclose))
halow   = min(low,  min(haopen, haclose))

// HA colors
hacolor = haclose > haopen ? color.green : color.red
src=haclose



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

macdslowline1 = sma(src,slowmacd)
macdslowline2 = sma(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )

macdfastline1 = sma(src,fastmacd)
macdfastline2 = sma(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)

MACDLine = (DEMAfast - DEMAslow)

SignalLine = sma(MACDLine, signalmacd)

delta = MACDLine-SignalLine




swap1 = delta>0?color.green:color.red



plot(delta,color=swap1,style=plot.style_columns,title='Histo',histbase=0,transp=20)
p1 = plot(MACDLine,color=color.blue,title='MACD Line')
p2 = plot(SignalLine,color=color.red,title='Signal')
fill(p1, p2, color=color.blue)
hline(0)



yearfrom = input(2020)
yearuntil =input(2042)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)







if ( crossover(delta,0)  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if (  crossunder(delta,0) and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

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