Heikin Ashi và Kaufman Adaptive Moving Average Chiến lược giao dịch

Tác giả:ChaoZhang, Ngày: 2023-12-19 15:51:30
Tags:

img

Tổng quan

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

Chiến lược logic

Các thành phần chính của chiến lược này là:

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

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

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

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

Phân tích lợi thế

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

  1. Nến Heikin Ashi có khả năng giảm tiếng ồn để lọc ra một số biến động ngắn hạn.
  2. KAMA nhạy cảm hơn SMA và EMA và có thể theo dõi hiệu quả những thay đổi xu hướng ở các mức chính.
  3. Sự kết hợp của bộ lọc kép Heikin Ashi và KAMA có thể giảm lỗi.
  4. Chỉ số ADX có thể được cấu hình để xác định sức mạnh của xu hướng để tránh các tín hiệu sai.
  5. Các tín hiệu giao dịch trực tiếp và dễ dàng vận hành linh hoạt.

Phân tích rủi ro

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

Hướng dẫn tối ưu hóa

  1. Tối ưu hóa các tham số Heikin Ashi gần và 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 chỉ được tạo ra khi xu hướng ổn định.
  3. Kết hợp các chỉ số phụ khác như Bollinger Bands để thiết lập các tiêu chuẩn dừng lỗ.
  4. Kiểm tra sự ổn định của các tham số trên các sản phẩm khác nhau để tìm ra sự kết hợp các tham số tối ưu.

Tóm lại

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)





Thêm nữa