okama 2.0 ra mắt với chiến lược rút tiền mới và tối ưu hóa hiệu quả nhanh hơn
Phiên bản okama 2.0 đánh dấu bước chuyển từ các ví dụ học thuật sang các ứng dụng đầu tư thực tiễn, tích hợp các chiến lược rút tiền nâng cao và quy trình tối ưu hóa danh mục đầu tư đa kỳ với tái cân bằng nhanh hơn, phù hợp cho nhà đầu tư và phát triển ứng dụng web.

okama 2.0 ra mắt với chiến lược rút tiền mới và tối ưu hóa hiệu quả nhanh hơn
Phiên bản "anniversary" okama 2.0 vừa được phát hành, mang đến nhiều thay đổi quan trọng tập trung vào các chiến lược rút tiền danh mục nâng cao và quy trình tối ưu hóa danh mục hiệu quả (Efficient Frontier) mới nhanh hơn và thực tế hơn. Bên cạnh đó, okama 2.0 cải thiện khả năng sử dụng trong ứng dụng web với tốc độ tính toán được tối ưu đáng kể.
Xu hướng phát triển và những điểm mới của okama 2.0
Nhóm phát triển đã chuyển trọng tâm từ các ví dụ mang tính giáo dục, học thuật sang những trường hợp sử dụng thực tế hơn, đặc biệt hướng đến xây dựng các chiến lược đầu tư hưu trí với rút tiền định kỳ. Ngoài ra, logic của Efficient Frontier cũng được thay đổi với tối ưu hóa nhiều kỳ kèm theo tái cân bằng làm mặc định, giúp đẩy nhanh tốc độ xử lý đáng kể. Bạn có thể cập nhật thư viện okama ngay qua lệnh:
pip install okama -U
Chiến lược rút tiền tiên tiến trong okama 2.0
Các phương pháp rút tiền mới được tích hợp vào kiến trúc phân tích dòng tiền chiết khấu (discounted cash flow) trong lớp PortfolioDCF. Nhà đầu tư có thể dễ dàng tách biệt cấu trúc danh mục, quy tắc tái cân bằng và logic rút tiền để thử nghiệm độc lập.
Vanguard Dynamic Spending (VDS)
Mô hình rút tiền dựa trên phần trăm danh mục vốn có từ phiên bản 1.5.0 được mở rộng với lớp VanguardDynamicSpending. Điểm khác biệt chính là thông số floor_ceiling giới hạn mức tăng giảm tiền rút so với năm trước, giúp tránh dao động mạnh do biến động thị trường.
Ví dụ, floor_ceiling=(-0.025, 0.05) nghĩa là tiền rút không được vượt quá 5% tăng hoặc 2.5% giảm so với năm trước. Chiến lược này mang lại sự ổn định hơn trong kế hoạch chi tiêu hưu trí thực tế.
vds = ok.VanguardDynamicSpending(
parent=pf,
initial_investment=1_000_000,
percentage=-0.08,
floor_ceiling=(-0.025, 0.05),
)
pf.dcf.cashflow_parameters = vds
Cut Withdrawals If Drawdown (CWD)
Đây là chiến lược rút tiền linh hoạt theo nhu cầu thực tế, giảm chi tiêu khi danh mục bị sụt giảm mạnh. CutWithdrawalsIfDrawdown giảm rút tiền dựa trên độ sâu giảm điểm của danh mục (drawdown), qua đó bảo vệ vốn tránh bị rút ở thời điểm thị trường lao dốc.
Tham số crash_threshold_reduction định nghĩa các mức ngưỡng và mức giảm rút tương ứng, ví dụ:
- Giảm 40% khi drawdown vượt quá 20%
- Tạm ngưng rút khi drawdown vượt quá 35%
cwd = ok.CutWithdrawalsIfDrawdown(
parent=pf,
initial_investment=1_000_000,
frequency="year",
amount=-60_000,
indexation="inflation",
crash_threshold_reduction=[(.10, .25), (.20, .50), (.35, 1)],
)
pf.dcf.cashflow_parameters = cwd
Chiến lược này phù hợp với những nhà đầu tư muốn giữ mức chi tiêu cơ bản, đồng thời tích hợp xử lý khủng hoảng.
Hiệu quả tối ưu hóa danh mục đầu tư vượt trội với EfficientFrontier
Phiên bản 2.0 hợp nhất các lớp EfficientFrontier và EfficientFrontierReb thành một lớp duy nhất, tự động chạy tối ưu đa kỳ với tái cân bằng. Nhờ sử dụng caching, đa luồng tính toán và cải tiến thuật toán, việc tối ưu danh mục nhanh hơn nhiều so với trước.
Thêm vào đó, hỗ trợ giới hạn tỷ trọng tài sản (bounds) giúp mô hình phản ánh sát với thực tế, ví dụ giới hạn vàng trong danh mục tối đa 20%.
Ví dụ thiết lập:
ef = ok.EfficientFrontier(
assets=["SPY.US", "GLD.US"],
first_date="2004-12",
last_date="2020-10",
ccy="USD",
rebalancing_strategy=ok.Rebalance(period="year"),
n_points=40,
ticker_names=True,
bounds=((0.0, 1.0), (0.0, 0.20)), # giới hạn vàng tối đa 20%
)
Tối ưu rủi ro cho mức lợi suất mục tiêu nhanh chóng:
ef.minimize_risk(target_value=0.11)
Linh hoạt với các dòng tiền rút và đóng góp tùy ý
Mọi chiến lược rút tiền hay đóng góp hiện cho phép truyền tham số time_series_dic định nghĩa dòng tiền theo ngày/tháng năm cụ thể, phù hợp với các kế hoạch tài chính cá nhân phức tạp.
Ví dụ:
time_series_dic = {
"2027-02": 2_000, # đóng góp tháng 2/2027
"2030-03": -4_000 # rút tiền tháng 3/2030
}
Kiểm định phân phối dữ liệu nâng cao
Okama 2.0 bổ sung phương pháp tự động lựa chọn phân phối phù hợp nhất dựa trên kiểm định Kolmogorov–Smirnov (kstest_for_all_distributions), giúp nâng cao độ chính xác khi dự báo tài chính.
Ngoài ra, người dùng có thể chủ động tùy chỉnh hoặc tối ưu tham số phân phối, đặc biệt hữu ích cho phân phối Student’s t – thường dùng mô hình đuôi dày trong dự báo rủi ro cực đoan.
Tính năng kiểm tra chất lượng phù hợp của phân phối qua biểu đồ Q-Q (Quantile–Quantile) cũng đã được thêm vào, giúp trực quan đánh giá mức độ khớp của mô hình với dữ liệu lịch sử.
Tài liệu và hướng dẫn chi tiết
Phần tài liệu okama được làm mới, chi tiết hơn với nhiều ví dụ thực tế trên GitHub. Một số ví dụ nổi bật bao gồm:
- Chiến lược rút tiền VDS và CWD trong các danh mục đầu tư
- Mô hình tối ưu hóa danh mục đa kỳ
- Dự báo Monte Carlo và phương pháp hiệu chỉnh phân phối
Kế hoạch phát triển tương lai cho okama
Trong thời gian tới, những cải tiến quan trọng của okama sẽ sớm được áp dụng lên nền tảng web okama.io. Phiên bản mới cũng sẽ hỗ trợ các bản cập nhật của Pandas 3 và Python 3.14.
Mục tiêu xa hơn là phát triển một kế hoạch tài chính cá nhân hoàn chỉnh qua chuỗi chiến lược đầu tư liên tục: từ danh mục tăng trưởng cho giai đoạn tích luỹ đến danh mục bảo toàn chi tiêu khi về hưu, được kiểm thử bằng dự báo Monte Carlo toàn diện.
Nguồn tham khảo:
Bạn có thể hỗ trợ dự án bằng cách đánh dấu sao trên GitHub nếu thấy hữu ích.
Q-Q Plot minh họa chất lượng kiểm định phân phối
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
