标签:开始 模板 pre 搜索 源代码 其他 探索 实现 准备
本文在Creative Commons协议下发布。
瞬息万变的金融市场开发出了太多的金融产品,产生了太多的计算问题,这对于 Fintech 来讲:无论是计算能力上的,还是软件设计上的是一个巨大的挑战。
QuantLib 是一个免费、开源的软件库,旨在为量化金融计算提供一个统一的、综合的软件框架。QuantLib 的源代码由 C++ 编写,得利于 C++ 在面向对象和泛型编程方面强大的表现力,以及C++对贴近底层所带来的出众执行效率,QuantLib 一方面可以清晰地描述各种复杂的金融产品,同时兼顾了计算速度。
QuantLib 所提供的功能聚焦在两大领域:
与期权相关的主要内容有:
与固定收益相关的主要内容有:
推荐在 Ubuntu 操作系统下安装和使用 QuantLib ,如果使用的是 Ubuntu 16.04 或 18.04,请先在系统中添加 Dirk Eddelbuettel 维护的 PPA,以便轻松地安装最新版本。
sudo add-apt-repository ppa:edd/misc
sudo apt-get update
QuantLib 高度依赖 Boost 库,在安装 QuantLib 之前务必安装 Boost,只需要在终端键入:
sudo apt-get install libboost-all-dev
安装 QuantLib:
sudo apt-get install libquantlib0-dev libquantlib0v5
在 C++ 的 IDE 中配置编译器的连接器和搜索路径,让编译器能够找到文件 /usr/lib/libQuantLib.so
和路径 /usr/include/ql
就可以探索和使用 QuantLib 了 :)。
作为金融实务、学术研究和软件设计三者的交叉点,学习和使用 QuantLib 并非一项简单的任务。要掌握这一得力工具,你必须成为一个多面手。
John Hull 编写的 Risk Management and Financial Institutions 和 Options, Futures and other Derivatives 是两本非常出色的书,能够提供金融实务和学术研究方面足够的基础知识让你可以开始探索 QuantLib。除此之外,QuantLib 提供了一套非常详尽的文档,更加深入细致的专业知识可以在这里获得。
上手编程、操作软件是掌握 QuantLib 的过程中要面对的一大挑战。
QuantLib 的源代码由 C++ 编写,使用 C++ 编程是学习、探索 QuantLib 最直接的方式,不过也是最具挑战性的,因为 C++ 本身是一门非常“硬核”的计算机语言,而且 QuantLib 目前的体量和结构已经很庞大和复杂。
在上手之前,你需要了解、掌握 C++ 编程的基本知识(语法、函数、类、模板和 STL),C++ Primer 是一个非常好的开始。想要熟练使用 QuantLib 必须要能够理解其复杂的内部架构,这就需要一点“设计模式”的知识,Head First Design Patterns 是入门的不二选择(Gof4 的 Design Patterns 过于晦涩了),Modern C++ Design 适合进阶。
为了帮助使用者深入了解 QuantLib 的设计细节和思路,QuantLib 的核心作者 Luigi Ballabio 专门编写了 Implementing QuantLib
有了上述知识和技能的准备,就可以从 github 上作者提供的例子开始了,不要忘了勤快地查看文档。
如果要快速上手学习、使用 QuantLib,C++ 就显得过于困难了。鉴于 C++ 版的 QuantLib 取得了巨大的成功,许多开源爱好者把 QuantLib 拓展到了其他语言和软件环境下,在 C#、Java、Perl、Python、Julia、Ruby 和 R 等语言中都可以找到对 QuantLib 的封装;在 Microsoft Excel 和 LibreOffice Calc 中也有 QuantLib 的插件。
在 Ubuntu 环境下,常用的三个扩展分别是:
遗憾的是,这些扩展不能提供 C++ 版本的全部功能。
QuantLib-Python 是三个扩展中做的最好的,尽可能的移植了 C++ 版本的架构和使用方法,提供的功能也是最多的。quantlib-python 的安装十分轻松:
pip install QuantLib
感谢 Gouthaman Balaraman 提供了 quantlib-python 详尽的范例教程,和他编写的书——QuantLib Python Cookbook。
如果想要扩展 QuantLib-Python 目前的功能,实现定制化,你需要一点 SWIG 的知识用来创建自己的封装。
和 Python 相比,R 在面向对象编程方面的能力比较弱,所以 RQuantLib 没有保留 QuantLib 原始的架构和用法,而是将部分功能包装成为函数,相对于 QuantLib-Python 而言,RQuantLib 保留的功能更少。
RQuantLib 的主页。
标签:开始 模板 pre 搜索 源代码 其他 探索 实现 准备
原文地址:https://www.cnblogs.com/evilqliang/p/12344605.html