Σ
SDCalc
Trung cấpỨng dụng·12 min

Độ lệch chuẩn trượt cho Chuỗi thời gian

Tìm hiểu cách tính và diễn giải độ lệch chuẩn trượt (rolling) cho phân tích chuỗi thời gian. Bao gồm dải Bollinger, phân cụm biến động, ví dụ mã Python và ứng dụng thực tế trong tài chính.

Độ lệch chuẩn trượt là gì?

Độ lệch chuẩn trượt (còn gọi là SD cuộn hay biến động theo dõi) tính độ lệch chuẩn trên một cửa sổ thời gian trượt. Không giống SD tĩnh sử dụng tất cả dữ liệu lịch sử, SD trượt tập trung vào các quan sát gần đây, khiến nó thiết yếu để phát hiện thay đổi biến động theo thời gian.

Kỹ thuật này là nền tảng trong thị trường tài chính, nơi biến động không cố định mà thay đổi theo thời gian. Một cổ phiếu có thể bình lặng trong nhiều tháng, rồi đột ngột trở nên biến động mạnh trong mùa công bố kết quả kinh doanh hoặc khủng hoảng thị trường. SD trượt nắm bắt những động lực này theo thời gian thực.

Tại sao SD trượt quan trọng

Độ lệch chuẩn tĩnh đối xử bình đẳng với tất cả dữ liệu lịch sử, nhưng biến động gần đây thường dự đoán biến động tương lai tốt hơn lịch sử xa. SD trượt cho bạn thước đo rủi ro hiện tại, có tính hành động và thích ứng với điều kiện thị trường thay đổi.

Cách tính Độ lệch chuẩn trượt

Tại mỗi thời điểm, tính độ lệch chuẩn của n điểm dữ liệu trước đó. Khi tiến về phía trước, cửa sổ trượt, luôn sử dụng n giá trị gần nhất. Điều này tạo ra chuỗi thời gian ước lượng biến động.

1

Xác định cửa sổ

Chọn số kỳ (ví dụ: 20 ngày) bao gồm trong mỗi phép tính.
2

Tính SD đầu tiên

Tính độ lệch chuẩn của n điểm dữ liệu đầu tiên.
3

Trượt cửa sổ

Di chuyển về phía trước một kỳ, bỏ giá trị cũ nhất, thêm giá trị mới nhất.
4

Lặp lại

Tiếp tục cho đến khi hết chuỗi dữ liệu.
python
import pandas as pd
import numpy as np

# Load your time series data
df = pd.read_csv('stock_prices.csv')

# 20-day rolling standard deviation
df['rolling_std_20'] = df['returns'].rolling(window=20).std()

# Annualized volatility (assuming daily returns)
df['annualized_vol'] = df['rolling_std_20'] * np.sqrt(252)

# Multiple windows for comparison
df['rolling_std_10'] = df['returns'].rolling(window=10).std()
df['rolling_std_50'] = df['returns'].rolling(window=50).std()

Lưu ý rằng (window-1) giá trị đầu tiên sẽ là NaN vì bạn cần ít nhất n quan sát để tính. Trong thực tế, bạn có thể dùng tham số min_periods để bắt đầu tính sớm hơn với ít quan sát hơn.

Chọn kích thước cửa sổ phù hợp

Kích thước cửa sổ tạo ra sự đánh đổi giữa khả năng phản ứng và tính ổn định:

  • Cửa sổ ngắn (5-10 ngày):Phản ứng nhanh với thay đổi biến động nhưng nhiễu và có thể tạo tín hiệu giả
  • Cửa sổ trung bình (20-30 ngày):Cân bằng giữa phản ứng và ổn định; 20 ngày là tiêu chuẩn ngành cho dải Bollinger
  • Cửa sổ dài (50-100 ngày):Mượt mà và ổn định nhưng chậm phát hiện thay đổi chế độ; tốt cho phân tích xu hướng

Mẹo hữu ích

Sử dụng nhiều kích thước cửa sổ cùng lúc. So sánh SD trượt 10 ngày, 20 ngày và 50 ngày để hiểu cả biến động ngắn hạn lẫn xu hướng biến động dài hạn. Sự phân kỳ giữa chúng có thể báo hiệu thay đổi chế độ.

Ứng dụng thực tế

Độ lệch chuẩn trượt được sử dụng rộng rãi trong tài chính và khoa học dữ liệu:

  • Quản lý rủi ro:Tính Giá trị rủi ro (VaR) sử dụng biến động gần đây thay vì trung bình lịch sử
  • Định giá quyền chọn:Ước lượng tham số biến động ngụ ý cho Black-Scholes và các mô hình khác
  • Quản lý danh mục:Điều chỉnh quy mô vị thế dựa trên biến động hiện tại; giảm mức độ tiếp xúc khi biến động tăng đột biến
  • Phát hiện bất thường:Nhận diện các giai đoạn bất thường khi biến động hiện tại lệch đáng kể so với trung bình trượt
  • Phân tích kỹ thuật:Dải Bollinger, Kênh Keltner và các chỉ báo dựa trên biến động khác

Giải thích dải Bollinger

Dải Bollinger là ứng dụng nổi tiếng nhất của độ lệch chuẩn trượt. Được phát triển bởi John Bollinger vào thập niên 1980, chúng tạo ra đường bao động xung quanh giá thích ứng với biến động.

Dải Bollinger

Upper Band = SMA(20) + 2 × Moving SD(20) Lower Band = SMA(20) - 2 × Moving SD(20)

Các dải mở rộng trong giai đoạn biến động và co lại trong giai đoạn bình lặng. Nhà giao dịch sử dụng điều này để:

  • Nhận diện trạng thái quá mua/quá bán khi giá chạm dải
  • Phát hiện “siết chặt” (biến động thấp) thường báo trước bứt phá
  • Đặt mức dừng lỗ động dựa trên điều kiện thị trường hiện tại

Phân cụm biến động

Một trong những sự kiện thực nghiệm quan trọng nhất trong tài chính là biến động có xu hướng phân cụm—biến động cao có xu hướng theo sau biến động cao, và thấp theo sau thấp. Điều này được Robert Engle (Giải Nobel 2003) công thức hóa trong mô hình ARCH.

SD trượt cho thấy sự phân cụm này một cách trực quan. Khi bạn vẽ biến động cuộn theo thời gian, bạn sẽ thấy các chế độ rõ ràng của biến động cao và thấp thay vì biến động ngẫu nhiên. Điều này có những hàm ý sâu sắc:

  • Khả năng dự đoán:Biến động ngày mai có khả năng giống ngày hôm nay—bạn có thể dự đoán rủi ro
  • Phân bổ rủi ro:Giảm vị thế khi bước vào chế độ biến động cao
  • Lựa chọn chiến lược:Các chiến lược giao dịch khác nhau hoạt động tốt hơn trong các môi trường biến động khác nhau

Lưu ý quan trọng

Dù biến động phân cụm, thay đổi chế độ có thể đột ngột và mạnh mẽ. Tin tức lớn, sụp đổ thị trường hoặc thông báo chính sách có thể chuyển đổi chế độ biến động ngay lập tức. SD trượt sẽ luôn trễ những thay đổi này—vào lúc nó phản ánh thực tế mới, chế độ có thể đã thay đổi lần nữa.