
Chiến lược giao dịch Heikin Ashi và Kaufman Adaptive Moving Average (HLC3/Kaufman Strategy) là một chiến lược giao dịch định lượng kết hợp đường Heikin Ashi K và đường Kaufman Adaptive Moving Average (KAMA). Chiến lược này xác định hướng giao dịch thông qua đường Heikin Ashi K và sau đó sử dụng đường trung bình chuyển động của Kaufman để lọc tín hiệu giao dịch.
Chiến lược này bao gồm:
Tính toán giá mở và giá đóng của Heikin Ashi. Những giá này phản ánh giá trung bình của các thực thể K-line, có thể lọc một phần tiếng ồn.
Tính toán trung bình di chuyển tự điều chỉnh của Kaufman ((KAMA) KAMA có thể điều chỉnh động độ mịn của mình, không bị tụt hậu nhiều khi thị trường đột ngột biến động mạnh.
So sánh giá đóng cửa Heikin Ashi với KAMA để xác định tín hiệu mua và bán. Một tín hiệu mua được tạo ra khi giá đóng cửa Heikin Ashi vượt qua KAMA; một tín hiệu bán được tạo ra khi giá đóng cửa Heikin Ashi vượt qua KAMA.
Bạn có thể thêm các chỉ số ADX để đánh giá xu hướng mạnh hoặc yếu, tránh các tín hiệu sai trong thị trường chấn động.
Lợi thế lớn nhất của chiến lược này là kết hợp hai bộ lọc của Heikin Ashi K và KAMA, có thể giảm đáng kể tiếng ồn giao dịch và tín hiệu sai. Các lợi thế cụ thể như sau:
Heikin Ashi và Kaufman Adaptive Moving Average là một chiến lược theo dõi xu hướng với hai làn sóng lọc. Nó kết hợp các tính năng loại bỏ tiếng ồn của Heikin Ashi K line và lợi thế của KAMA trong việc theo dõi nhanh chóng sự thay đổi xu hướng, có thể lọc hiệu quả các giao dịch tiếng ồn, giảm tín hiệu sai, phù hợp để theo dõi xu hướng trung hạn. Chiến lược này có thể tăng thêm sự ổn định và khả năng sinh lợi thông qua các phương tiện như tối ưu hóa tham số, xác nhận chỉ số phụ trợ.
/*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)