Quang Anh Stocks là nền tảng nghiên cứu thị trường chứng khoán Việt Nam, tập hợp dữ liệu thị trường, thông tin doanh nghiệp, công cụ sàng lọc và chỉ báo định giá trong một trải nghiệm song ngữ Việt–Anh.
Lưu ý: Sản phẩm phục vụ mục đích nghiên cứu và giáo dục; không phải là khuyến nghị đầu tư.
| Nhóm | Điểm nổi bật |
|---|---|
| Tổng quan thị trường | Chỉ số, độ rộng thị trường, cổ phiếu biến động mạnh, heatmap ngành và thị trường quốc tế |
| Phân tích cổ phiếu | Giá, biểu đồ, sổ lệnh, lịch sử giá, báo cáo tài chính, tỷ số, cổ đông, doanh nghiệp cùng ngành và sự kiện |
| Định giá & kỹ thuật | Theo dõi P/E, P/B theo thời gian, đối chiếu với ngành, cùng tín hiệu kỹ thuật trực tiếp |
| Stock Screener | Lọc cổ phiếu HOSE, HNX và UPCOM theo định giá, chất lượng, tăng trưởng, vốn hoá, sàn và ngành ICB |
| Vĩ mô & dòng tiền | Giao dịch khối ngoại, tỷ giá, hàng hoá, chỉ báo kinh tế và cơ cấu GDP |
| Tin tức hỗ trợ AI | Tin tức doanh nghiệp/thị trường, sự kiện cổ phiếu và các bản tóm tắt hỗ trợ nghiên cứu |
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS và Recharts
- Backend: Flask, Flask-Sock và Socket.IO
- Dữ liệu: SQLite, Pandas, NumPy và các quy trình cập nhật Python
- Triển khai: API REST qua proxy cùng WebSocket cho dữ liệu thời gian thực
- Node.js 20.9 trở lên
- Python 3.8 trở lên
- npm
git clone https://github.com/quanganhtapcode/valuation.git
cd valuation
pip install -r requirements.txt
cd frontend-next && npm install && cd ..Chạy backend và frontend trong hai terminal riêng:
# Terminal 1
npm run start-backend# Terminal 2
npm run start-frontendFrontend mặc định chạy tại http://localhost:3000. Để cấu hình kết nối backend cục bộ, sao chép frontend-next/.env.example thành frontend-next/.env.local và điều chỉnh các biến môi trường cần thiết.
Browser
│
├── REST /api/* ──> Next.js API proxy ──> Flask API
└── WebSocket ──────────────────────────> Flask Socket endpoint
│
SQLite & data pipelines
| Thư mục | Vai trò |
|---|---|
frontend-next/ |
Ứng dụng Next.js: routes, components, API clients và giao diện |
backend/ |
Flask API, nghiệp vụ định giá và các dịch vụ dữ liệu |
automation/ |
Tác vụ cập nhật dữ liệu, xuất báo cáo và vận hành định kỳ |
scripts/fetchers/ |
Các công cụ thu thập và xử lý dữ liệu thị trường |
data/sqlite/ |
Cơ sở dữ liệu SQLite, WAL/SHM và backup runtime (không commit) |
data/financial-statements/ |
Dữ liệu báo cáo tài chính đã tải về (không commit) |
config/ |
Cấu hình và metadata được quản lý theo Git |
runtime/, logs/ |
Trạng thái tạm thời và nhật ký vận hành (không commit) |
docs/ |
Tài liệu kỹ thuật và vận hành |
cd frontend-next
npm run lint
npm run buildVới thay đổi ở backend hoặc pipeline, hãy chạy trực tiếp tác vụ liên quan, ví dụ:
python run_pipeline.pyĐóng góp, báo lỗi và đề xuất cải tiến đều được hoan nghênh. Trước khi mở pull request, vui lòng chạy lint/build cho phần frontend bị ảnh hưởng và mô tả rõ thay đổi cùng cách kiểm tra.
Dữ liệu và phân tích trên Quang Anh Stocks chỉ nhằm hỗ trợ nghiên cứu. Thông tin có thể bị chậm, thiếu hoặc thay đổi; luôn tự xác minh trước khi đưa ra bất kỳ quyết định đầu tư nào.
Phát hành theo giấy phép MIT.
- HTTP từ trình duyệt luôn gọi đường dẫn tương đối
/api/...trên domain website. - Next.js proxy, snapshot trang chủ và ảnh chia sẻ dùng chung
src/lib/backendApi.server.ts:BACKEND_API_URLcho production,BACKEND_API_URL_LOCALcho development. Không đặt địa chỉ backend trực tiếp trong component. - WebSocket dùng duy nhất
NEXT_PUBLIC_BACKEND_WS_URLvà helpergetWsUrl(); mặc định production làwss://api.quanganh.org/v1/valuation, development làws://127.0.0.1:8000. WebSocket kết nối trực tiếp backend vì proxy HTTP trên Vercel không chuyển tiếp WebSocket. NEXT_PUBLIC_API_URLvàNEXT_PUBLIC_REALTIME_API_URLkhông còn được sử dụng. Khi thay đổi biếnNEXT_PUBLIC_*, cần build/deploy lại frontend.