Skip to content

Tính giá trái phiếu từ YTM — yield-to-maturity 💵

Một trái phiếu là lời hứa trả tiền theo lịch cố định: coupon đều mỗi kỳ, mệnh giá lúc đáo hạn. Mọi con số dòng tiền đã biết trước ngay từ hôm phát hành.

Nếu dòng tiền cố định, vậy giá trái phiếu từ đâu mà ra, và tại sao cùng dòng tiền đó lại có nhiều mức giá khác nhau? Câu trả lời nằm ở một con số duy nhất: lợi suất dùng để chiết khấu.

File này dựng bộ máy tính giá: công thức hiện giá chung, trường hợp trả coupon mỗi năm và mỗi nửa năm, cách giải ngược từ giá ra lợi suất, rồi cách xử lý khi mua bán rơi vào giữa hai ngày coupon (giá đầy đủ, giá sạch, lãi dồn tích).


Ký hiệu trong file

Format English — tiếng Việt (nghĩa). Bản gom toàn cụm xem concept.md.

  • P, PVprice / present value — giá trái phiếu hôm nay, bằng hiện giá dòng tiền.
  • C, PMTcoupon payment — tiền coupon mỗi kỳ (bằng lãi suất coupon nhân mệnh giá, chia số kỳ/năm).
  • FV, parface value — mệnh giá, trả lúc đáo hạn.
  • YTMyield to maturity — lợi suất đáo hạn (lãi suất chiết khấu hằng năm niêm yết).
  • rperiodic discount rate — lãi suất chiết khấu mỗi kỳ, bằng YTM chia số kỳ/năm.
  • Nnumber of periods — tổng số kỳ coupon còn lại.
  • AIaccrued interest — lãi dồn tích thuộc người bán.
  • full price — giá đầy đủ (dirty price): tiền người mua thực trả; flat price — giá sạch (clean price): giá niêm yết.
  • day count — quy ước đếm ngày: actual/actual hoặc 30/360.

1. Bức tranh tổng — giá là hiện giá dòng tiền chiết tại YTM

1.1. Công thức gốc

⚙️ Cơ chế: giá trái phiếu bằng tổng hiện giá mọi dòng tiền hứa — chuỗi coupon cộng mệnh giá — chiết khấu tại một lãi suất duy nhất gọi là lợi suất đáo hạn.

P=t=1NC(1+r)t+FV(1+r)N
  • Biến (trái sang phải):
    • Pprice — giá trái phiếu hôm nay.
    • Ccoupon — tiền coupon mỗi kỳ.
    • rperiodic rate — lãi suất chiết khấu mỗi kỳ (YTM chia số kỳ/năm).
    • t — chỉ số kỳ, chạy từ 1 tới N (mỗi coupon rơi ở cuối kỳ t).
    • Nnumber of periods — tổng số kỳ coupon.
    • FVface value — mệnh giá, trả ở cuối kỳ N.

Công thức này nói gì: cộng hiện giá của từng coupon (mỗi coupon chia cho (1+r) lũy thừa số kỳ tới nó), cộng thêm hiện giá mệnh giá. Đây cũng là định nghĩa của YTM: lợi suất nào kéo tổng hiện giá này về đúng giá thị trường thì lợi suất đó là YTM.

1.2. Ba cây con từ một công thức

Công thức gốc rẽ thành các tình huống tính cụ thể:

  • Trả coupon mỗi năm — N bằng số năm, r bằng YTM. Mục 2.
  • Trả coupon mỗi nửa năm — N gấp đôi số năm, C và r đều chia đôi. Mục 3.
  • Biết giá tìm lợi suất — giải ngược công thức ra YTM. Mục 4.
  • Mua giữa hai ngày coupon — phải dồn lãi và tách giá sạch khỏi giá đầy đủ. Mục 5.

1.3. Ba điều kiện để thực nhận YTM

💡 Ý nghĩa: YTM là lợi suất nhà đầu tư nhận nếu ba điều cùng xảy ra (thiếu một là lợi suất thực lệch đi):

  • Giữ tới đáo hạn — không bán giữa chừng.
  • Nhận đủ mọi coupon và mệnh giá — bên phát hành không vỡ nợ.
  • Tái đầu tư mỗi coupon cũng tại YTM — nếu lãi suất tái đầu tư khác đi, lợi suất thực sẽ khác YTM.

2. Trái phiếu trả coupon mỗi năm

⚙️ Cơ chế: đơn giản nhất — mỗi năm một coupon, chiết khấu trực tiếp tại YTM.

🔍 Ví dụ Schweser (annual-pay): trái phiếu mới 5 năm, coupon 10%, mệnh giá 100, trả mỗi năm. Coupon mỗi năm là 10 đô, mệnh giá 100 đô trả cuối năm 5.

  • Chiết tại YTM 10%: P=101,10+101,102++101,105+1001,105=100,00 đô (Schweser answer key).
    • Số này nghĩa là gì: khi coupon bằng đúng lợi suất (10% = 10%), giá bằng mệnh giá — trái phiếu bán ở par.
  • Chiết tại YTM 8%: P=107,99 đô (Schweser answer key); máy tính tài chính: N = 5, PMT = 10, FV = 100, I/Y = 8, CPT PV = −107,99.
    • Số này nghĩa là gì: lợi suất tụt xuống dưới coupon thì giá vọt lên trên mệnh giá 7,99 đô — premium.
  • Chiết tại YTM 12%: P=92,79 đô (Schweser answer key).
    • Số này nghĩa là gì: lợi suất vượt coupon thì giá rớt dưới mệnh giá, discount 100 − 92,79 = 7,21 đô.

⚠️ Bẫy chính tả số học: một số máy nhập lãi suất là số nguyên phần trăm (gõ 8, không phải 0,08), và PV ra dấu âm vì máy coi đó là tiền anh bỏ ra mua trái phiếu (dòng tiền ra), còn coupon và mệnh giá là dòng tiền vào dấu dương.

💡 Quan sát về độ lồi: YTM giảm 2% (từ 10% xuống 8%) làm giá tăng 7,99 đô, nhưng YTM tăng 2% (lên 12%) chỉ làm giá giảm 7,21 đô — không đối xứng. Đây là dấu hiệu đầu tiên của độ lồi, đào sâu ở file 02.


3. Trái phiếu trả coupon mỗi nửa năm

⚙️ Cơ chế: trái phiếu thực tế thường trả nửa năm một lần. Quy ước CFA: chia đôi mọi thứ theo kỳ — coupon mỗi kỳ là nửa coupon năm, lãi suất mỗi kỳ là nửa YTM năm, số kỳ gấp đôi số năm.

P=t=12nC/2(1+YTM2)t+FV(1+YTM2)2n
  • Biến (trái sang phải):
    • C/2 — nửa coupon năm, trả mỗi sáu tháng.
    • YTM/2 — lãi suất mỗi kỳ sáu tháng.
    • t — chỉ số kỳ nửa năm, chạy tới 2n.
    • n — số năm; 2n — tổng số kỳ.

Công thức này nói gì: cùng công thức gốc nhưng đơn vị đổi từ năm sang nửa năm — mọi dòng tiền và lãi suất tính theo kỳ sáu tháng. YTM niêm yết bằng lãi suất mỗi kỳ nhân số kỳ trong năm.

🔍 Ví dụ Schweser (semiannual-pay): vẫn trái phiếu 5 năm coupon 10% mệnh giá 100, nhưng trả 5 đô mỗi sáu tháng, YTM năm 8%.

  • Tham số mỗi kỳ: coupon 5 đô, lãi suất kỳ 4%, số kỳ 10.
  • Giá: P=108,11 đô (Schweser answer key); máy tính: N = 10, PMT = 5, FV = 100, I/Y = 4, CPT PV = −108,11.
  • Số này nghĩa là gì: trái phiếu earns 4% mỗi sáu tháng; YTM niêm yết là 4%×2=8%. Giá hơi khác bản trả năm (108,11 so với 107,99) vì coupon về sớm hơn nửa năm.

4. Biết giá tìm lợi suất

⚙️ Cơ chế: quan hệ giá-lợi suất chạy hai chiều — biết giá thì giải ngược ra YTM. Không có công thức đóng, máy tính tài chính dò nghiệm.

🔍 Ví dụ Schweser (giải YTM): vẫn trái phiếu trên, giờ giá thị trường dịch lên 105 (tức 105% mệnh giá).

  • Giải lợi suất mỗi kỳ: N = 10, PMT = 5, FV = 100, PV = −105, CPT I/Y = 4,37% (Schweser answer key).
  • YTM niêm yết: 4,37%×2=8,74% (Schweser answer key).
  • Số này nghĩa là gì: giá cao hơn (105 so với 108,11 ở YTM 8%) đi cùng lợi suất thấp hơn — nhưng đây giá 105 thấp hơn 108,11 nên lợi suất phải cao hơn 8%, đúng là 8,74%. Quan hệ nghịch giữ nguyên.

⚠️ Bẫy dấu PV: phải nhập PV âm (tiền bỏ ra mua) còn coupon và mệnh giá dương, nếu không máy không tính được tỷ suất sinh lời (không có dòng ra thì không có lợi suất).


5. Mua bán giữa hai ngày coupon

5.1. Vì sao phải tách giá

⚙️ Cơ chế: phần lớn giao dịch thật thanh toán vào ngày rơi giữa hai ngày coupon. Coupon kế tiếp sẽ trả trọn cho người mua, nhưng một phần coupon đó thực ra đã chạy trong thời gian người bán còn nắm — phần ấy gọi là lãi dồn tích, người mua phải trả thêm cho người bán.

  • full price (giá đầy đủ, dirty/invoice price) — tiền người mua thực trả, gồm cả lãi dồn tích.
  • flat price (giá sạch, clean price) — giá niêm yết, không gồm lãi dồn tích.

💡 Ý nghĩa: giá niêm yết bỏ lãi dồn tích ra vì nếu để vào, giá sẽ trông như tăng đều mỗi ngày trong kỳ rồi rớt đột ngột đúng ngày trả coupon — gây nhiễu khi đọc. Tách ra thì giá sạch phản ánh đúng giá trị thực, lãi dồn tích tính riêng.

5.2. Lãi dồn tích

AI=C×số ngày từ coupon trước tới thanh toánsố ngày trong kỳ coupon
  • Biến (trái sang phải):
    • AIaccrued interest — lãi dồn tích.
    • C — tiền coupon mỗi kỳ.
    • tử số — số ngày đã trôi từ ngày coupon trước tới ngày thanh toán.
    • mẫu số — tổng số ngày trong cả kỳ coupon.

Công thức này nói gì: lấy coupon nhân tỷ lệ thời gian đã trôi trong kỳ — người bán hưởng phần coupon ứng với khoảng họ còn nắm. Hai cách đếm ngày: actual/actual đếm ngày thật (thường trái phiếu chính phủ), 30/360 coi mỗi tháng 30 ngày năm 360 ngày (thường trái phiếu doanh nghiệp).

🔍 Ví dụ Schweser (lãi dồn tích): trái phiếu coupon 4% trả mỗi năm vào ngày 15 tháng 5, lệnh thanh toán ngày 10 tháng 8. Coupon năm là 4%×100=4 đô.

  • Theo 30/360: số ngày dồn = (30 − 15) tháng 5 + 30 tháng 6 + 30 tháng 7 + 10 tháng 8 = 85 ngày.
    • AI=4×85360=0,944 đô (ví dụ tự dựng theo dữ liệu Schweser).
  • Theo actual/actual: số ngày dồn = (31 − 15) tháng 5 + 30 tháng 6 + 31 tháng 7 + 10 tháng 8 = 87 ngày.
    • AI=4×87365=0,953 đô (ví dụ tự dựng theo dữ liệu Schweser).
  • Số này nghĩa là gì: hai quy ước đếm cho hai con số hơi khác (0,944 so với 0,953) — chọn nhầm quy ước là sai lãi dồn tích, nên phải biết trái phiếu thuộc loại nào.

5.3. Giá đầy đủ và giá sạch

⚙️ Cơ chế: không cộng lãi dồn tích vào giá sạch để ra giá đầy đủ, mà làm ngược lại — tính giá đầy đủ trước, rồi trừ lãi dồn tích ra giá sạch. Hai bước:

  • Bước 1 — tính giá trái phiếu tại ngày coupon trước (hiện giá các coupon còn lại tại ngày đó).
  • Bước 2 — gộp lãi (compound) giá đó tới ngày thanh toán theo số ngày đã trôi.
full price=PVngày coupon trước×(1+r)d/Tflat price=full priceAI
  • Biến (trái sang phải):
    • PV ngày coupon trước — giá trái phiếu tính ở ngày coupon gần nhất đã qua.
    • r — lãi suất chiết khấu mỗi kỳ.
    • d — số ngày từ coupon trước tới thanh toán; T — tổng số ngày trong kỳ coupon; d/T — phần kỳ đã trôi.
    • AI — lãi dồn tích (mục 5.2).

Công thức này nói gì: lăn giá trị từ ngày coupon trước tới ngày thanh toán bằng cách gộp lãi đúng phần kỳ đã trôi, ra giá đầy đủ; rồi gỡ lãi dồn tích để ra giá sạch niêm yết.

🔍 Ví dụ Schweser (giá đầy đủ và giá sạch): trái phiếu coupon 5% trả ngày 15 tháng 6 và 15 tháng 12, YTM 4%, thanh toán ngày 21 tháng 8, còn 4 coupon tới đáo hạn, đếm ngày thật.

  • Bước 1 — giá tại ngày coupon trước: coupon nửa năm nên lãi suất kỳ là 4/2 = 2%, coupon kỳ 2,5 đô.
    • N = 4, PMT = 2,5, FV = 100, I/Y = 2, CPT PV = 101,904 đô (Schweser answer key).
  • Bước 2 — gộp lãi tới ngày thanh toán:
    • Số ngày 15 tháng 6 tới 15 tháng 12 = 183 ngày; số ngày 15 tháng 6 tới 21 tháng 8 = 67 ngày.
    • full price=101,904×(1,02)67/183=102,645 đô (Schweser answer key).
  • Lãi dồn tích: AI=2,5×67183=0,915 đô (Schweser answer key).
  • Giá sạch: flat price=102,6450,915=101,73 đô (Schweser answer key).
  • Số này nghĩa là gì: giá sạch 101,73 thấp hơn giá tại ngày coupon trước 101,904 — đúng kỳ vọng, vì giá sạch không phải hiện giá tại ngày coupon trước mà là phần còn lại sau khi gỡ lãi dồn tích.

6. Liên hệ bức tranh gốc

  • Một công thức gốc, nhiều biến thể — trả năm, trả nửa năm, giải ngược, giữa hai ngày coupon đều suy ra từ cùng ý: giá bằng hiện giá dòng tiền chiết tại YTM.
  • Giá sạch và giá đầy đủ là chuyện kế toán-thời-gian, không phải chuyện định giá mới — bản chất vẫn là hiện giá, chỉ thêm bước lăn giá trị tới đúng ngày thanh toán và tách phần coupon thuộc người bán.
  • Vì sao quan trọng cho anh: YTM là một con số duy nhất tóm tắt cả chuỗi dòng tiền, tiện làm đặc trưng so sánh trái phiếu; nhưng nó giả định mọi dòng tiền chiết tại cùng một lãi suất, một sự đơn giản hóa mà các cụm spot rate sau sẽ gỡ ra.

✅ Tự kiểm nhanh

  • Giá trái phiếu là gì theo định nghĩa? → Tổng hiện giá dòng coupon cộng hiện giá mệnh giá, chiết tại YTM. (mục 1.1)
  • Coupon 10% bằng YTM 10% thì giá bằng bao nhiêu? → Bằng mệnh giá (par), ví dụ 100 đô. (mục 2)
  • Trái phiếu trả nửa năm thì chia đôi những gì? → Coupon kỳ và lãi suất kỳ chia đôi, số kỳ gấp đôi số năm. (mục 3)
  • Vì sao PV nhập âm khi giải YTM? → PV là tiền bỏ ra mua (dòng ra), coupon và mệnh giá là dòng vào; không có dòng ra thì không tính được lợi suất. (mục 4)
  • Giá đầy đủ khác giá sạch ở đâu? → Giá đầy đủ gồm lãi dồn tích, giá sạch là giá đầy đủ trừ lãi dồn tích. (mục 5.1)
  • Tính giá sạch bằng cách cộng hay trừ lãi dồn tích? → Tính giá đầy đủ trước rồi trừ lãi dồn tích, không cộng vào giá sạch. (mục 5.3)