Chỉ Số Dự Báo MACD

Hình 1: MACD giá cổ phiếu MWG trong năm 2021

Chỉ số MACD, là tên gọi tắt của moving average convergence/divergence, là một chỉ số giao dịch được sử dụng trong phân tích kỹ thuật trên giá cổ phiếu. Chỉ số được phát triển bởi Gerald Appel vào những năm cuối thập niên 70 của thế kỷ 20.

Chỉ số MACD giúp chúng ta xác định sự thay đổi của sức mạnh, hướng, động lượng ( momentum), và khoảng thời gian của xu hướng giá cổ phiếu. Để làm được điều này, MACD sử dụng 3 chuỗi thời gian EMA khác nhau, theo sách vở kinh điển là EMA12, EMA26 và EMA9. Chỉ số MACD dùng 3 chuỗi EMA trên, được ký hiệu là MACD(12,26,9). Do chỉ sử dụng lịch sử giá của quá khứ, nên chỉ số MACD được xếp vào nhóm chỉ số dự báo muộn.

Mô hình MACD

Đường MACD $$ MACD = EMA_{12} - EMA_{26} $$

MACD được cấu tạo bằng cách lấy chu kỳ ngắn hạn trừ chu kỳ dài hạn (EMA12 - EMA26). Thị trường tăng giá là tại thời điểm MACD chuyển trạng thái giá trị từ âm sang dương. Ngược lại, thị trường giảm giá là tại thời điểm MACD chuyển trạng thái từ dương sang âm

$$ signal = EMA_9 $$

Đường tín hiệu đi song song với đường MACD, và xảy ra các trường hợp sau

  • Xu hướng tăng giá: Đường MACD cắt đường tín hiệu, MACD đi từ dưới lên

  • Xu hướng giảm giá: Đường MACD cắt đường tín hiệu, MADC đi từ trên xuống

$$ histogram = MACD - signal $$

Đường histogram: đo khoảng cách chên lệch giữa MACD và signal. Như hình 1 phía trên, giá trị của histotram được biểu diễn là các đường trụ hình vuông, có giá trị dài ngắn khác nhau. Giá trị histogram phản ánh giá trị động lượng (momemtum) về giá. Nếu MACD lớn hơn đường tín hiệu thì chúng ta sẽ có vùng đồi dương.

Nếu để ý kỹ, chúng ta có thể thấy rằng, nếu lực mua vẫn dương, đồi vẫn dương, nhưng giá trị histogram ngắn lại, gần 0, đó có thể là tín hiệu của việc giá có thể giảm.

Viết bot mua chứng khoán mã MWG, tự động, dựa trên MACD, kiểm thử lợi nhuận

Dưới tư cách là lập trình viên, mình sẽ coding một con bot nhỏ, chỉ sử dụng MACD, và xem thử lợi nhuận như thế nào.

Bài toán giả định:

  • Cho dư 100 triệu VND trong tay

  • Đầu tư cổ phiếu của tập đoàn thế giới Di động, mã cổ phiếu MWG

  • Thời gian: Từ ngày 1/1/2021 đến 31/12/2021

  • Đầu tư toàn bộ trong một lần, không DCA, không xét yếu tố T+3, giá mua và giá chốt lời là giá tại thời điểm close.

Lấy dữ liệu: Mình sử dụng thư viện vnquant của anh Phạm Khánh Đình. Mã nguồn của thư viện ở địa chỉ https://github.com/phamdinhkhanh/vnquant. DataSource được dùng là của vndirect. Thư viện của anh Khánh tại thời điểm mình sử dụng bị lỗi khi load data vndirect, mình có rewrite lại.

Để tính EMA, mình xài hàm ewm có sẵn của pandas.

Kết quả: Như hình 1 mình đã show phía trên, hi hi.

1Profit gained from the MACD strategy by investing $100M in MWG : 15619726.64
2Profit percentage of the MACD strategy : 15%

Nếu mình đầu tư 100 triệu ở đầu năm 2021, sử dụng MACD với các tham số (12, 26, 9), đến cuối năm mình thu được thêm 15 triệu 6 trăm 19 ngàn 7 trăm 26 đồng. Lợi nhận hơn 15%, cao hơn tiền lời gửi ngân hàng.

Tham số 12,16,9 theo sách vở, mình không ưng lắm, thế là mình đã cho chạy grid search tìm tham số tốt nhất, kết quả ở hình 2. Cuối cùng mình đã tìm được vài tổ hợp như (9,25,6) hoặc (10,26,5) cho ra lợi nhuận đạt 40%.

Hình 2: MWG grid search Hình 2: MWG grid search

Cho dù các tổ hợp ở trên khá cao, nhưng mình quyết định chọn cặp tổ hợp (11,31,5) cho các bài toán trong tương lai. Lý do là lợi nhuận của tập tổ hợp cũng khá cao, đạt 39%, thứ hai là tập tổ hợp trên chứa toàn số nguyên tố.

BOT mua chứng khoán, rỗ VN30

Tương tự như mua cổ phiếu MWG. Mình sẽ thực hiện test mua cổ phiếu trong rỗ VN30, gồm các mã cổ phiếu VPB, HPG, MBB, POW, STB, TCB, SSI, CTG, VRE, TCH, VHM, NVL, PDR, BID, FPT, HDB, TPB, SBT, MWG, VIC, BVH, VNM, PLX, MSN, PNJ, VCB, VJC, KDH, REE, GAS như sau:

  • Mỗi loại cổ phiếu được cấp vốn 100 triệu, tổng cộng 30 mã cổ phiếu, có 3 tỷ

  • Sử dụng tổ hợp MACD(11,31,5)

  • Thống kê lợi nhuận cuối năm

Kết quả

Stock code Profit Profit Percent
VPB 59531568.83 59
HPG 47797426.41 47
MBB 43655931.7 43
POW 11334630.9 11
STB 68945860.5 68
TCB 30909090.6 30
SSI 88181694.47 88
CTG 16023538.94 16
VRE 13112161.55 13
TCH 61063208.12 61
VHM 5633657.62 5
NVL 83612690.71 83
PDR 73030645.91 73
BID -10671169.9 -11
FPT 16548330.46 16
HDB 42686713.83 42
TPB 30960123.75 30
SBT 25536989.15 25
MWG 39039335.94 39
VIC 30392688.88 30
BVH -3770737.5 -4
VNM -13891787.01 -14
PLX 5485716.75 5
MSN 8503902.24 8
PNJ -6325266.73 -7
VCB -7289353.31 -8
VJC -2464227.2 -3
KDH 44801727.18 44
REE 26242537.2 26
GAS 41354753.12 41

Có ông lời, có ông lỗ. Tổng lời là 869.972.383 triệu, trên tỷ lệ đầu tư là 3 tỷ. Đạt tỷ lệ lợi nhuận 28%.

Ở trên, mình chỉ sử dụng đường xu hướng để quyết định mua / bán, chưa hề sử dụng giá trị động lượng của histogram để xét việc chốt lời hiệu quả. Nên hiệu quả đầu tư vẫn còn nhỏ.

Mình điều chỉnh lại một chút, nếu giá trị histogram giảm bé hơn 10% so với thời điểm cao nhất ở thời điểm đồi dương, mình sẽ chốt lời ngay. Ngoài ra, chúng ta sẽ kết hợp với mây Ichimoku để lọc lại các thời điểm mua cho hợp lý hơn.

Cảm ơn các bạn đã theo dõi bài viết, hẹn gặp lại ở bài tiếp theo.

Comments