Chiến lược giao dịch đường trung bình động thích ứng Heikin Ashi và Kaufman


Ngày tạo: 2023-12-19 15:51:30 sửa đổi lần cuối: 2023-12-19 15:51:30
sao chép: 1 Số nhấp chuột: 1109
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch đường trung bình động thích ứng Heikin Ashi và Kaufman

Tổng quan

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.

Nguyên tắc chiến lược

Chiến lược này bao gồm:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Phân tích lợi thế

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:

  1. Các dây Heikin Ashi K tự nó có chức năng khử tiếng ồn, để lọc một số biến động ngắn hạn.
  2. KAMA nhạy cảm hơn SMA và EMA, có thể theo dõi hiệu quả sự thay đổi xu hướng ở cấp độ lớn.
  3. Phương pháp lọc kép kết hợp Heikin Ashi và KAMA có thể làm giảm sai sót.
  4. Có thể cấu hình chỉ số ADX để đánh giá xu hướng mạnh hoặc yếu, tránh tín hiệu sai.
  5. Các tín hiệu giao dịch trực tiếp, rõ ràng, dễ sử dụng và linh hoạt.

Phân tích rủi ro

  1. Một số trường hợp chấn động có thể tạo ra tín hiệu sai, nên điều chỉnh các tham số thích hợp để tránh rủi ro này.
  2. Các tham khảo quá nhạy cảm có thể dễ bị theo đuổi cao hoặc thấp, nên nên nới lỏng tham số KAMA một cách thích hợp.
  3. Trong một xu hướng dài hạn, KAMA có thể bị tụt lại sau mức độ thay đổi giá. Điều này cần kết hợp với chỉ số ADX để xác định sự ổn định của xu hướng.

Hướng tối ưu hóa

  1. Tối ưu hóa giá đóng cửa Heikin Ashi và tham số KAMA để tìm các điều kiện lọc tốt nhất.
  2. Thêm các chỉ số đánh giá xu hướng như ADX để đảm bảo tín hiệu giao dịch được tạo ra khi xu hướng ổn định.
  3. Kết hợp với các chỉ số hỗ trợ khác như đường Boll để thiết lập tiêu chuẩn dừng lỗ.
  4. Kiểm tra tính ổn định của các tham số của các giống khác nhau để tìm ra sự kết hợp tham số tối ưu.

Tóm tắt

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ợ.

Mã nguồn chiến lược
/*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)