tf-quant-finance 项目介绍
项目概述
tf-quant-finance 是一个基于 TensorFlow 的定量金融库,专注于提供高性能的金融计算组件。利用 TensorFlow 的硬件加速支持和自动微分功能,这一项目旨在为基础数学方法、中层方法以及具体定价模型提供支持。tf-quant-finance 的开发团队正在积极扩充其功能涵盖范围,以满足更多的金融计算需求。
库的结构
tf-quant-finance 按照三个层次进行组织:
-
基础方法:
- 提供核心数学计算方法,如优化、插值、根查找、线性代数、随机数和准随机数生成等。
-
中层方法:
- 包括常微分方程 (ODE) 和偏微分方程 (PDE) 求解器、伊藤过程框架、扩散路径生成器、Copula 采样器等。
-
定价方法和其他定量金融工具:
- 提供具体的定价模型,如局部波动率 (LV)、随机波动率 (SV)、随机局部波动率 (SLV)、Hull-White 模型等,以及利率曲线构建、收益描述、计划生成等功能。
安装指南
要开始使用 tf-quant-finance,最简单的方法是通过 pip 包管理器进行安装。请确保已经安装了 Python 3.7 及更高版本的 TensorFlow(>= 2.7)。安装过程如下:
pip3 install --upgrade tensorflow
pip3 install --upgrade tf-quant-finance
可能需要使用 --user
选项来安装至用户目录。
TensorFlow 入门
如果您对 TensorFlow 不太熟悉,建议通过自学内容开始。在 tf-quant-finance 项目中,有几份介绍性 Jupyter 笔记本来帮助新手入门:
- TensorFlow 基础知识
- 调试和控制流
- 高级张量操作
这些内容将帮助用户更好地理解和运用 TensorFlow 进行金融模型计算。
开发路线图
tf-quant-finance 的开发团队正在拓展以下领域:
- 伊藤过程的定义和应用。
- 多种金融模型和过程的实现,如布朗运动、几何布朗运动、Ornstein-Uhlenbeck 模型、一因子 Hull-White 模型等。
- Copula 的定义与采样支持。
- 模型校准,支持 Dupire 局部波动率校准和 SABR 模型校准。
- 利率曲线拟合,采用 Hagan-West 算法和单调凸插值方案。
示例
项目中提供一系列端到端的示例,以帮助理解 tf-quant-finance 的应用。这些示例包括:
- 基于 Black-Scholes 模型的美国期权定价
- 欧拉方法的蒙特卡洛模拟
- Black-Scholes 定价与隐含波动率计算
- 前向和反向梯度计算优化
参与贡献
tf-quant-finance 欢迎开发者贡献代码。项目维护团队建议开发者参考 CONTRIBUTING.md 以获取参与的详细指南。
开发者指南
如果您希望为 tf-quant-finance 贡献代码,需要关注以下开发依赖项:
- Bazel 构建系统
- Python 3
- TensorFlow 版本 >= 2.7
- TensorFlow Probability 版本在 v0.11.0 和 v0.12.1 之间
- Numpy 版本 1.21 或更高
- 其它 Python 库,如 Attrs 和 Dataclasses
您可以通过以下命令来安装所需依赖项:
pip3 install --upgrade tf-nightly tensorflow-probability==0.12.1 numpy==1.21 attrs dataclasses
社区和支持
- GitHub 仓库:报告错误或提出功能请求。
- TensorFlow 博客:关注最新的团队内容和社区优秀文章。
- 邮件组交流:可通过 tf-quant-finance@googlegroups.com 进行讨论和提问。
- TensorFlow Probability 的支持,该库利用 TensorFlow Probability 的方法。
声明
谷歌不对该产品提供官方支持。此库目前正在积极开发中,接口可能随时更改。
许可
tf-quant-finance 库根据 Apache 2 许可协议进行授权。该库使用的 Sobol 原始多项式和初始方向数则根据 BSD 许可协议授权。