Bài trước bạn học groupby — nhóm theo giá trị (vùng, loại…). Chuỗi thời gian là 1 dạng đặc biệt: nhóm/phân tích theo mốc thời gian. Đây là kỹ năng liên quan trực tiếp nhất đến phân tích đầu tư/tài chính trong toàn lộ trình.
Vấn đề: giá cổ phiếu nhảy lên xuống liên tục, khó thấy xu hướng
Nhìn biểu đồ giá cổ phiếu hàng ngày, bạn sẽ thấy đường giá “nhảy” lên xuống liên tục — rất khó nhận ra xu hướng dài hạn nếu chỉ nhìn giá thô từng ngày. Đây là lúc dùng trung bình động (rolling/moving average): tính trung bình giá trong 1 khung thời gian trượt dần (ví dụ 250 ngày gần nhất), giúp làm mượt các biến động ngắn hạn.
Code thật — dùng ngay được với dữ liệu chứng khoán
.rolling(N) hoạt động giống groupby đã học ở bài trước, nhưng nhóm theo
“N mốc thời gian gần nhất” thay vì theo giá trị cố định. Có thể áp bất kỳ hàm tính toán nào sau đó:
trung bình (.mean()), độ lệch chuẩn — đo độ biến động/rủi ro (.std()), hay
tương quan giữa 2 chuỗi (.corr()) — rất hữu ích khi so sánh mức độ “đi cùng nhau” của 2
cổ phiếu theo thời gian.
Xem thêm
Video này (tiếng Anh) thực hành trực tiếp tính trung bình động trên dữ liệu chứng khoán thật, đúng kỹ thuật vừa học ở trên.
- Bạn giải thích được vì sao cần trung bình động khi phân tích dữ liệu giá cổ phiếu theo ngày.
- Bạn viết được code .rolling(N).mean() để tính trung bình động.
- Bạn biết thêm ít nhất 1 hàm khác có thể dùng sau .rolling() ngoài .mean() (.std(), .corr()…).
Dữ liệu theo thời gian LUÔN có nhiễu ngắn hạn — đừng vội kết luận xu hướng chỉ từ vài điểm dữ liệu gần nhất. Trung bình động là công cụ đơn giản nhưng hiệu quả để tách “nhiễu ngắn hạn” khỏi “xu hướng thật dài hạn”, cực kỳ phổ biến trong phân tích tài chính thực tế.
Câu hỏi thường gặp
Nên chọn khung thời gian (window) bao nhiêu ngày cho trung bình động?
Không có số chuẩn chung — phụ thuộc mục đích: khung ngắn (vd 20 ngày) phản ứng nhanh với biến động gần, khung dài (vd 250 ngày ~ 1 năm) cho thấy xu hướng dài hạn ổn định hơn.
rolling() có tính được cho dữ liệu bị thiếu (missing) không?
Có, pandas tự động loại bỏ giá trị thiếu khi tính, và có tham số min_periods để quyết định cần tối thiểu bao nhiêu điểm dữ liệu hợp lệ mới tính ra kết quả.
Kỹ thuật này có phải là “dự đoán” giá cổ phiếu tương lai không?
Không — trung bình động chỉ tổng hợp lại dữ liệu ĐÃ CÓ để dễ nhìn xu hướng, không tự dự đoán tương lai. Dự đoán thật cần các mô hình phức tạp hơn, nằm ngoài phạm vi bài này.
