Heikin Ashi и Kaufman адаптивная стратегия торговли скользящими средними

Автор:Чао Чжан, Дата: 2023-12-19 15:51:30
Тэги:

img

Обзор

Стратегия торговли адаптивными скользящими средними (HLC3/Kaufman Strategy) - это количественная стратегия торговли, которая сочетает в себе свечи Хайкина Аши и адаптивную скользящую среднюю (KAMA).

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

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

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

  2. Вычислите адаптивную скользящую среднюю Кауфмана (KAMA).

  3. Для определения сигналов покупки и продажи сравнить взаимосвязь между закрытием Хайкина Аши и KAMA. Когда закрытие Хайкина Аши пересекает KAMA, генерируется сигнал покупки. Когда закрытие Хайкина Аши пересекает KAMA, генерируется сигнал продажи.

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

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

Самым большим преимуществом этой стратегии является двойной фильтр свечей Хайкина Аши и KAMA, который может значительно уменьшить шумные сделки и неправильные сигналы.

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

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

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

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

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

Резюме

Стратегия Heikin Ashi и Kaufman Adaptive Moving Average Trading - это стратегия двойного фильтра отслеживания тренда. Она сочетает в себе способность снижения шума свечей Heikin Ashi и быстрого отслеживания изменений тренда 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)





Больше