Appearance
Cụm TVM — Giá trị thời gian của tiền
Cụm gốc của mọi định giá. Nguồn: Schweser 2025 L1 Book 1, Reading 1 (Rates and Returns) + Reading 2 (The Time Value of Money in Finance).
Mô hình 2 lớp: lớp hiểu (đồ thị + thẻ khái niệm dưới đây) tách khỏi lớp tính (tvm.py + test_tvm.py, gọi lib chuẩn).
Đồ thị khái niệm
Node xanh lá = ứng dụng vào chứng khoán thật (chỗ TVM nối ra định giá). Đọc theo mũi tên: trái phiếu = dòng tiền đều (coupon) + hiện giá mệnh giá; cổ phiếu = dòng tiền vĩnh viễn có tăng trưởng.
Thẻ khái niệm (lõi)
- Lãi suất r — giá thuê tiền một kỳ. Gốc của cả cụm. (Thẻ đầy đủ ở sample_concept-dag.md.)
- Giá trị tương lai FV —
FV = PV*(1+r)^n. Bỏ PV nay, lãi gộp r, sau n kỳ thành FV. - Giá trị hiện tại PV —
PV = FV/(1+r)^n. Kéo tiền tương lai về nay; nền mọi định giá. - Lãi hiệu dụng năm EAR —
(1+r/m)^m - 1. Lãi thực khi gộp m lần/năm; so sánh công bằng khác tần suất. - Dòng tiền đều Annuity —
PV = pmt*(1-(1+r)^-n)/r. Chuỗi tiền bằng nhau n kỳ. - Dòng tiền vĩnh viễn Perpetuity —
PV = pmt/r. Chuỗi đều mãi mãi (cổ phiếu ưu đãi). - Hiện giá ròng NPV — tổng PV dòng tiền trừ vốn bỏ ra;
>0= tạo giá trị. - Lợi suất nội bộ IRR — lãi làm
NPV=0; giải số. - Tăng trưởng kép CAGR —
(end/begin)^(1/n)-1; cũng là lợi suất ngầm định.
Node ghép (ứng dụng) — chỗ TVM nối ra định giá thật
- Giá trái phiếu =
annuity_pv(coupon) + present_value(mệnh giá). Ghép thẳng 2 node lõi. - Định giá cổ phiếu (DDM/Gordon) = perpetuity có tăng trưởng:
V = D1/(k-g).
Ví dụ có lời giải (đối chiếu Schweser Reading 2)
Mỗi ví dụ test một node, đáp án lấy từ answer key Schweser → là "đáp án độc lập", không tự khớp:
- Perpetuity: ưu đãi $9/năm, yêu cầu 11% →
9/0.11 = $81.82. - Trái phiếu: 10 năm, coupon 5% trên mệnh giá $10,000,000, YTM 6% → giá
$9,263,991. - CAGR: cổ tức 5 → 7 sau 3 năm →
(7/5)^(1/3)-1 = 11.87%.
Cách chạy
cd 100_quant/01_tvm
../../.venv/bin/python -m pytest -qTest xanh = công thức khớp cả công thức đóng, numpy-financial, lẫn đáp án Schweser. Đây là vòng phản hồi đo được của cụm.