# 公式与来源说明

本文档说明 `moonbit-fixedincome` 当前实现采用的基础公式、约定和边界。代码是独立实现，未复制第三方实现。

## 现金流现值

给定现金流 `(t_i, C_i)` 和贴现因子 `DF(t_i)`，现值为：

```text
PV = Σ C_i × DF(t_i)
```

平坦简单复利曲线以年化收益率 `r` 和年分数 `τ` 计算：

```text
DF(τ) = 1 / (1 + r × τ)
```

曲线接口只要求提供观察日对应的贴现因子，因此用户可以接入连续复利、远期曲线或外部曲线引擎，而不改变工具和定价层。

## 应计利息与收益率

应计利息按票面利息乘以当前票息期内的已计息日分数计算。票息期首尾是否计入由日计数规则决定；当前 API 将规则显式传入，避免把市场惯例隐藏在定价函数中。

收益率求解使用现金流现值与目标价格的差值作为目标函数，并在给定区间内使用二分法。无根、输入非法和不收敛都会返回结构化错误，而不会静默返回数值。

## 久期与凸性

修正久期由价格对收益率的一阶变化近似得到，凸性由中心差分得到。差分步长由调用者传入并校验为正数；这使得批量风险分析可以明确记录数值误差和场景步长。

## 适用边界

- 当前实现覆盖固定利率、零息、摊还贷款、平坦曲线、分段线性贴现因子和曲线平移压力测试。
- 浮动利率、可赎回债券、现金流树和更完整的曲线引导保留在扩展接口中，优先保证输入语义可审计，再补充市场惯例。
- 生产使用时应提供经过业务确认的节假日表、日计数规则和舍入策略；示例中的空节假日表只用于演示。

## 参考资料

- Frank J. Fabozzi, *Bond Markets, Analysis, and Strategies*：固定收益现金流、收益率、久期与凸性背景。
- OpenGamma Strata 文档：日计数、业务日调整、现金流和贴现曲线的术语对照。
- ISDA 相关市场术语：日计数和业务日约定的行业背景。

这些资料用于概念和术语核对；本仓库没有复制其代码或非必要的大段文字。
