La estrategia de trading de Heikin Ashi y Kaufman (HLC3/Kaufman Strategy) es una estrategia de trading cuantitativa que combina velas de Heikin Ashi y Kaufman Adaptive Moving Average (KAMA).
Los principales componentes de esta estrategia son:
Calcular los precios de apertura y cierre de Heikin Ashi. Estos precios reflejan el precio medio de los cuerpos de las velas y pueden filtrar algo de ruido.
Calcular la media móvil adaptativa de Kaufman (KAMA). KAMA puede ajustar dinámicamente su suavidad y no se retrasará demasiado durante las fluctuaciones bruscas del mercado.
Compare la relación entre el cierre de Heikin Ashi y KAMA para determinar las señales de compra y venta. Cuando el cierre de Heikin Ashi cruza sobre KAMA, se genera una señal de compra. Cuando el cierre de Heikin Ashi cruza por debajo de KAMA, se genera una señal de venta.
Añadir el indicador ADX para juzgar la fuerza de la tendencia para evitar señales erróneas en los mercados de rango.
La mayor ventaja de esta estrategia es el doble filtro de velas Heikin Ashi y KAMA, que puede reducir en gran medida las operaciones ruidosas y las señales erróneas.
La estrategia de trading de media móvil adaptativa de Heikin Ashi y Kaufman es una estrategia de seguimiento de tendencias de doble filtro. Combina la capacidad de reducción de ruido de las velas de Heikin Ashi y el seguimiento rápido de los cambios de tendencia de 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)