Стратегия торговли адаптивными скользящими средними (HLC3/Kaufman Strategy) - это количественная стратегия торговли, которая сочетает в себе свечи Хайкина Аши и адаптивную скользящую среднюю (KAMA).
Основными составляющими этой стратегии являются:
Вычислите цены открытия и закрытия Heikin Ashi. Эти цены отражают среднюю цену корпусов свечей и могут отфильтровать какой-то шум.
Вычислите адаптивную скользящую среднюю Кауфмана (KAMA).
Для определения сигналов покупки и продажи сравнить взаимосвязь между закрытием Хайкина Аши и KAMA. Когда закрытие Хайкина Аши пересекает KAMA, генерируется сигнал покупки. Когда закрытие Хайкина Аши пересекает KAMA, генерируется сигнал продажи.
Добавить индикатор ADX для оценки силы тренда, чтобы избежать ошибочных сигналов на рынках с диапазоном.
Самым большим преимуществом этой стратегии является двойной фильтр свечей Хайкина Аши и KAMA, который может значительно уменьшить шумные сделки и неправильные сигналы.
Стратегия 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)