Financial Score
P/E dương được xếp hạng theo thứ tự thấp → cao và ROE theo cao → thấp. Score dùng 50% P/E percentile + 50% ROE percentile. Các mã thiếu hoặc có P/E không dương không tham gia score.
Forecast
Forecast sử dụng Ridge Regression trên các lag return [1, 2, 3, 5, 10], forecast recursive và tạo 10 ngày giao dịch kế tiếp, bỏ thứ Bảy/CN. Backtest là chronological split.
Self-Learning
Mỗi ngày dự báo được lưu vào D1. Khi target date đã có actual close, hệ thống đối chiếu prediction với actual, tính error và dùng chính observation mới để online-update bias/weights. Model version tăng sau mỗi update.
Nguồn dữ liệu & giới hạn runtime
Giá lịch sử được gọi từ Yahoo Finance Chart endpoint. Python yfinance và Python vnstock không chạy native trong Cloudflare Pages Functions. Vì vậy phần financial fundamentals hiện dùng Yahoo Finance quoteSummary trong Cloudflare-only runtime. Project không giả vờ gọi import yfinance/vnstock trong JavaScript.