Chiến lược giao dịch trung bình chuyển động thích nghi của Heikin Ashi và Kaufman (HLC3/Kaufman Strategy) là một chiến lược giao dịch định lượng kết hợp các nến Heikin Ashi và trung bình chuyển động thích nghi của Kaufman (KAMA).
Các thành phần chính của chiến lược này là:
Tính toán giá mở và đóng của Heikin Ashi. Những giá này phản ánh giá trung bình của thân nến và có thể lọc ra một số tiếng ồn.
Tính toán trung bình chuyển động thích nghi của Kaufman (KAMA). KAMA có thể điều chỉnh trơn tru một cách năng động và sẽ không bị tụt hậu quá nhiều trong các biến động thị trường mạnh.
So sánh mối quan hệ giữa Heikin Ashi đóng và KAMA để xác định tín hiệu mua và bán. Khi Heikin Ashi đóng vượt qua KAMA, một tín hiệu mua được tạo ra. Khi Heikin Ashi đóng vượt dưới KAMA, một tín hiệu bán được tạo ra.
Thêm chỉ số ADX để đánh giá sức mạnh của xu hướng để tránh các tín hiệu sai trong các thị trường giới hạn phạm vi.
Ưu điểm lớn nhất của chiến lược này là bộ lọc kép của nến Heikin Ashi và KAMA, có thể làm giảm đáng kể các giao dịch ồn ào và tín hiệu sai.
Chiến lược giao dịch trung bình chuyển động thích nghi Heikin Ashi và Kaufman là một chiến lược theo dõi xu hướng lọc kép. Nó kết hợp khả năng giảm tiếng ồn của nến Heikin Ashi và theo dõi nhanh các thay đổi xu hướng của KAMA để lọc hiệu quả các giao dịch tiếng ồn và giảm các tín hiệu sai. Nó phù hợp để theo dõi xu hướng trung và dài hạn. Chiến lược có thể được tăng cường hơn nữa về tính ổn định và lợi nhuận thông qua tối ưu hóa tham số, xác nhận bằng các chỉ số phụ trợ, v.v.
/*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)