
可能有朋友会问,市面上量化库那么多,TA-Lib、backtrader 不都挺好的吗?但这些库解决的问题不太一样。
TA-Lib 主要做技术分析,比如计算个均线、MACD 什么的。backtrader 是做策略回测的。但如果你想给期权定个价,想知道一个结构化产品到底值多少钱,这些库就帮不上忙了。
FinancePy 就是专门干这个的。它能做债券定价、期权定价、利率曲线构建,甚至还能算信用违约互换(CDS)这种复杂产品。关键是,代码全是 Python 写的,没有复杂的 C++ 依赖,看得懂也改得动。
举几个实际的例子你就明白了。
场景一:给期权定价
假设你看好某只股票,想买个看涨期权。券商给你报价 5 块钱,你怎么知道这个价格合不合理?
用 FinancePy 几行代码就能算出来:
from financepy.products.equity import EquityVanillaOptionfrom financepy.market.curves import DiscountCurveimport datetime# 设置期权参数expiry_date = datetime.date(2024, 12, 31) # 到期日strike_price = 100.0 # 行权价option = EquityVanillaOption(expiry_date, strike_price, "Call")# 当前市场数据stock_price = 95.0 # 股票现价volatility = 0.25 # 波动率 25%risk_free_rate = 0.03 # 无风险利率 3%# 计算期权价格value = option.value(datetime.date(2024, 6, 1),stock_price,DiscountCurve(datetime.date(2024, 6, 1)),volatility)print(f"期权理论价格: {value:.2f} 元")
跑出来的结果是理论价格。如果券商报价 5 块,理论价格只有 3 块,那你就知道这期权贵了。
场景二:计算债券收益率
你买了个债券,票面利率 5%,3 年后到期,现在市场价 98 元。这个债券的实际收益率是多少?
from financepy.products.bonds import Bondimport datetime# 创建债券对象issue_date = datetime.date(2024,1,1)maturity_date = datetime.date(2027,1,1)coupon = 0.05 #5% 年息bond = Bond(issue_date, maturity_date, coupon)# 计算到期收益率clean_price = 98.0 # 市场价格settlement_date = datetime.date(2024, 6, 1)ytm = bond.yield_to_maturity(settlement_date, clean_price)print(f"到期收益率: {ytm*100:.2f}%")
这样你就能算出来,98 块买的这个债券,实际年化收益率大概是多少,比单看票面利率准确多了。
说到量化库,很多人第一反应是 QuantLib。QuantLib 确实很强大,基本是业界标准了。但它是 C++ 写的,Python 只是个封装。想要深入理解代码逻辑,或者根据自己需求改点东西,门槛就比较高。
FinancePy 的好处就是代码全透明,都是 Python 写的。你想看看 Black-Scholes 模型到底怎么实现的,直接翻源码就行。想改个参数、调整个公式,也不用去碰 C++ 那一套。
03.最后说一句
金融市场水很深,有了定价工具不代表就能赚钱。理论价格和市场价格之间,永远隔着流动性、交易成本、信息不对称这些现实因素。
不过话说回来,多学点总是好的。
项目地址:https://github.com/domokane/FinancePy
感兴趣的朋友可以去看看,欢迎在留言区吱一声!

如果果你觉得这篇文章有帮助,别忘了点赞、关注、收藏哟,你的支持是我原创的动力~
关注下方👇🏻公众号,回复【小助手】获取学习手册
另外下面是一个量化小白的入门小册,有兴趣的可以看看,合适了再下手哈!买了之后有我们专门的量化交流群可以讨论。
