初级
到期收益率
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve(face_value, coupon_rate, market_price, maturity):
coupon = face_value * coupon_rate
ytm_low, ytm_high = 0.01, 0.5
for _ in range(100):
ytm = (ytm_low + ytm_high) / 2
price = sum(coupon / (1 + ytm) ** t for t in range(1, maturity + 1))
price += face_value / (1 + ytm) ** maturity
if abs(price - market_price) < 0.01:
break
if price > market_price:
ytm_low = ytm
else:
ytm_high = ytm
return {"面值": face_value, "市场价格": market_price, "YTM": round(ytm, 4)}
示例
输入
solve(1000, 0.05, 950, 5)
期望输出
{'面值': 1000, '市场价格': 950, 'YTM': 0.0623}
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199