Tính EWMA
Giờ bạn sẽ tạo một số đặc trưng để dự đoán danh mục tối ưu. Tr before tiên, ta dùng chính biến động giá làm đặc trưng. Cụ thể, hãy tạo exponential weighted moving average (EWMA) theo ngày, rồi lấy mẫu lại về khung thời gian theo tháng. Cuối cùng, dịch trung bình động theo tháng của giá lên trước một tháng, để có thể dùng nó làm đặc trưng dự đoán danh mục trong tương lai.
Bài tập này là một phần của khóa học
Machine Learning cho Tài chính bằng Python
Hướng dẫn bài tập
- Dùng
span= 30 để tính exponential weighted moving average theo ngày (ewma_daily). - Lấy mẫu lại EWMA theo ngày sang theo tháng bằng tần suất Business Monthly Start (BMS) và lấy ngày đầu tiên của tháng (
.first()). - Dịch
ewma_monthlylên trước một tháng để dùng EWMA của tháng trước làm đặc trưng dự đoán danh mục tối ưu của tháng tiếp theo.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Calculate exponentially-weighted moving average of daily returns
ewma_daily = returns_daily.ewm(span=____).mean()
# Resample daily returns to first business day of the month with the first day for that month
ewma_monthly = ewma_daily.resample(____).____
# Shift ewma for the month by 1 month forward so we can use it as a feature for future predictions
ewma_monthly = ewma_monthly.____.dropna()
print(ewma_monthly.iloc[-1])