Стратегия торговли адаптивной скользящей средней Хайкин Аши и Кауфмана


Дата создания: 2023-12-19 15:51:30 Последнее изменение: 2023-12-19 15:51:30
Копировать: 1 Количество просмотров: 1108
1
Подписаться
1621
Подписчики

Стратегия торговли адаптивной скользящей средней Хайкин Аши и Кауфмана

Обзор

Heikin Ashi и Kaufman Adaptive Moving Average Trading Strategy (HLC3/Kaufman Strategy) - это количественная торговая стратегия, объединяющая Heikin Ashi K-линии и Kaufman Adaptive Moving Average (KAMA). Эта стратегия определяет направление торговли по Heikin Ashi K-линии, а затем использует Kaufman Adaptive Moving Average в качестве вспомогательного показателя для фильтрации торговых сигналов.

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

Стратегия состоит из следующих частей:

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

  2. Кафман адаптируется к скользящей среднему ((KAMA) │КАМА способен динамически регулировать свою плавность, не создавая больших задержек при резких рыночных колебаниях │

  3. Сравнение величины цены закрытия Heikin Ashi и KAMA для определения сигналов покупки и продажи. Сигнал покупки возникает, когда цена закрытия Heikin Ashi пересекает KAMA; сигнал продажи возникает, когда цена закрытия Heikin Ashi пересекает KAMA.

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

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

Наибольшим преимуществом этой стратегии является сочетание двойных фильтров Heikin Ashi K и KAMA, что позволяет значительно снизить уровень шума и ложных сигналов. Конкретные преимущества:

  1. Сам по себе Heikin Ashi K имеет функцию шумоподавления, что позволяет отфильтровывать некоторые краткосрочные колебания.
  2. KAMA более чувствительна к изменениям тенденций на крупном уровне, чем SMA и EMA.
  3. Двойная фильтрация в сочетании с Heikin Ashi и KAMA позволяет сократить погрешность.
  4. Конфигурируемый индикатор ADX определяет сильные и слабые тенденции, чтобы избежать ошибочных сигналов.
  5. Торговые сигналы простые, понятные и гибкие.

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

  1. Некоторые вибрации могут привести к появлению ошибочных сигналов, поэтому следует соответствующим образом скорректировать параметры, чтобы избежать этого риска.
  2. Слишком чувствительные выборы могут привести к резким колебаниям, поэтому параметры KAMA должны быть соответствующим образом ослаблены.
  3. При длительном тренде KAMA может отставать от ценовых изменений до определенной степени. Это необходимо в сочетании с показателем ADX для определения стабильности тренда.

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

  1. Оптимизируйте конечную цену Heikin Ashi и параметры KAMA, чтобы найти оптимальные условия фильтрации.
  2. Добавление трендовых индикаторов, таких как ADX, гарантирует, что торговые сигналы появляются только тогда, когда тренд стабилизируется.
  3. В сочетании с другими вспомогательными показателями, такими как линия Boll, устанавливаются стандарты стоп-лосса.
  4. Тестирование стабильности параметров различных сортов для поиска оптимального сочетания параметров.

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

Heikin Ashi и Kaufman Adaptive Moving Average Trading Strategy - это стратегия двойного отслеживания тенденций. Она сочетает в себе функции отключения шума Heikin Ashi K-линии и преимущества быстрого отслеживания изменений тенденций KAMA, чтобы эффективно отфильтровать шум торговли и уменьшить ошибочные сигналы, подходящие для отслеживания среднесрочных и долгосрочных тенденций.

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

//@version=2
//Heikin/Kaufman   by Marco

strategy("HLC3/Kaufman Strategy ",shorttitle="HLC3/KAU",overlay=true)
res1 = input(title="Hlc3 Time Frame", defval="D")
test = input(1,"Hlc3 Shift")
sloma = input(20,"Slow EMA Period")

//Kaufman MA
Length = input(5, minval=1)
xPrice = input(hlc3)
xvnoise = abs(xPrice - xPrice[1])
Fastend = input(2.5,step=.5)
Slowend = input(20)
nfastend = 2/(Fastend + 1)
nslowend = 2/(Slowend + 1)
nsignal = abs(xPrice - xPrice[Length])
nnoise = sum(xvnoise, Length)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
nAMA = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
//ha_t = heikinashi(tickerid)
//ha_close = request.security(ha_t, period, nAMA)
//mha_close = request.security(ha_t, res1, hlc3)
bha_close = request.security(syminfo.ticker, timeframe.period, nAMA)
bmha_close = request.security(syminfo.ticker, res1, hlc3)

//Moving Average
//fma = ema(mha_close[test],1)
//sma = ema(ha_close,sloma)
//plot(fma,title="MA",color=black,linewidth=2,style=line)
//plot(sma,title="SMA",color=red,linewidth=2,style=line)
bfma = ema(bmha_close[test],1)
bsma = ema(bha_close,sloma)
plot(bfma,title="MA",color=black,linewidth=2,style=line)
plot(bsma,title="SMA",color=red,linewidth=2,style=line)
//Strategy
//golong =  crossover(fma,sma) 
//goshort =   crossunder(fma,sma)
golong =  crossover(bfma,bsma) 
goshort =   crossunder(bfma,bsma)
strategy.entry("Buy",strategy.long,when = golong)
strategy.entry("Sell",strategy.short,when = goshort)