QuantLib 金融计算——随机过程之概述
如果未做特别说明,文中的程序都是 Python3 代码。
QuantLib 金融计算——随机过程之概述
载入模块
import QuantLib as ql
print(ql.__version__)
1.12
框架
随机过程是金融工程中的一个核心概念,是沟通理论分析和计算实践的枢纽。quantlib-python 提供了一组成体系的类架构用于描述实际中最常见到的几种随机过程,以 1.12 版本为例:

C++ 版本的实现提供了更多具体的随机过程。
其中最根本的基类是 StochasticProcess,然后衍生出三大类别:
HestonProcess:特殊的二维随机过程——Heston 过程;BatesProcess:一种带跳跃的 Heston 过程;
StochasticProcessArray:描述一般的多维随机过程;StochasticProcess1D:描述常用的若干一维随机过程。GeneralizedBlackScholesProcess:Black-Scholes 框架下四种最常用的随机过程BlackScholesProcess:\(d \ln S ( t ) = \left( r ( t ) - \frac { \sigma ( t , S ) ^ { 2 } } { 2 } \right) d t + \sigma d W _ { t }\)BlackScholesMertonProcess:\(d \ln S ( t , S ) = \left( r ( t ) - q ( t ) - \frac { \sigma ( t , S ) ^ { 2 } } { 2 } \right) d t + \sigma d W _ { t }\)BlackProcess:\(d \ln S ( t ) = - \frac { \sigma ( t , S ) ^ { 2 } } { 2 } d t + \sigma d W _ { t }\)GarmanKohlagenProcess:\(d \ln S ( t ) = \left( r ( t ) - r _ { f } ( t ) - \frac { \sigma ( t , S ) ^ { 2 } } { 2 } \right) d t + \sigma d W _ { t }\)
VarianceGammaProcessMerton76ProcessGeometricBrownianMotionProcess:\(d S ( t , S ) = \mu S d t + \sigma S d W _ { t }\)HullWhiteProcessHullWhiteForwardProcessGsrProcess
基类 StochasticProcess 模拟一个 d 维 Ito 过程:
\]
quantlib-python 默认的离散化方法是 Euler 方法:
\]
用法与接口
随机过程类的用法基本上是首先初始化一个实例,然后并将其传递给其他类的实例,这些类的实例从中提取所需的变量。一个例子是普通的 Black-Scholes 期权定价器,它从随机过程中检索出波动率。另一个例子是蒙特卡罗定价框架中的路径生成器,需要随机过程的参数,生成对应的路径。
StochasticProcess 提供下列成员函数:
size():整数,返回随机过程的维度;initialValues():Array,返回数组 \(S_0\);drift(t, x):Array,返回数组 \(\mu(t,S_t)\);t和x分别是浮点数和Array;diffusion(t, x):Array,返回数组 \(\sigma(t,S_t)\);t和x分别是浮点数和Array;expectation(t0, x0, dt):Array,根据具体的离散方法返回数组 \(E \left( S_{ t_0 + \Delta t} | S_{ t_0 } = x_0 \right)\);t0、dt是浮点数,x0是Array;stdDeviation(t0, x0, dt):Matrix,根据具体的离散方法返回标准差矩阵 \(Std \left( S_{ t_0 + \Delta t} | S_{ t_0 } = x_0 \right)\);t0、dt是浮点数,x0是Array;covariance(t0, x0, dt):Matrix,根据具体的离散方法返回协方差矩阵 \(Cov \left( S_{ t_0 + \Delta t} | S_{ t_0 } = x_0 \right)\);t0、dt是浮点数,x0是Array;evolve(t0, x0, dt, dw):Array,根据 \(S_{ t_0}\) 和 Brownian 运动增量 \(\Delta W\) 产生 \(S_{ t_0 + \Delta t}\),默认返回 \(E \left( \mathrm S_{ t_0 + \Delta t } | S_{ t_0 } \right) + \sigma \left( \mathrm S_{ t_0 + \Delta t } | S_{ t_0 } \right) \Delta \mathrm { W }\),其中 \(\sigma\) 是标准差(矩阵).
对于 StochasticProcess1D 类,该类继承自 StochasticProcess 类,提供了从 StochasticProcess 派生的所有函数,但这些函数使用浮点数对象而不是 Array 和 Matrix 对象。
QuantLib 金融计算——随机过程之概述的更多相关文章
- QuantLib 金融计算——随机过程之一般 Black Scholes 过程
目录 QuantLib 金融计算--随机过程之一般 Black Scholes 过程 一般 Black Scholes 过程 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib ...
- QuantLib 金融计算——随机过程之 Heston 过程
目录 QuantLib 金融计算--随机过程之 Heston 过程 Heston 过程 参考文献 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--随机过程之 H ...
- QuantLib 金融计算
我的微信:xuruilong100 <Implementing QuantLib>译后记 QuantLib 金融计算 QuantLib 入门 基本组件之 Date 类 基本组件之 Cale ...
- QuantLib 金融计算——基本组件之 Currency 类
目录 QuantLib 金融计算--基本组件之 Currency 类 概述 构造函数 成员函数 如果未做特别说明,文中的程序都是 python3 代码. QuantLib 金融计算--基本组件之 Cu ...
- QuantLib 金融计算——高级话题之模拟跳扩散过程
目录 QuantLib 金融计算--高级话题之模拟跳扩散过程 跳扩散过程 模拟算法 面临的问题 "脏"的方法 "干净"的方法 实现 示例 参考文献 如果未做特别 ...
- QuantLib 金融计算——数学工具之数值积分
目录 QuantLib 金融计算--数学工具之数值积分 概述 常见积分方法 高斯积分 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之数值积分 载入模 ...
- QuantLib 金融计算——数学工具之求解器
目录 QuantLib 金融计算--数学工具之求解器 概述 调用方式 非 Newton 算法(不需要导数) Newton 算法(需要导数) 如果未做特别说明,文中的程序都是 Python3 代码. Q ...
- QuantLib 金融计算——数学工具之插值
目录 QuantLib 金融计算--数学工具之插值 概述 一维插值方法 二维插值方法 如果未做特别说明,文中的程序都是 Python3 代码. QuantLib 金融计算--数学工具之插值 载入模块 ...
- QuantLib 金融计算——数学工具之优化器
目录 QuantLib 金融计算--数学工具之优化器 概述 Optimizer Constraint OptimizationMethod EndCriteria 示例 Rosenbrock 问题 校 ...
随机推荐
- 让Ubuntu使用阿里云国内源,解决下载速度慢问题。
阿里云镜像官方地址 http://mirrors.aliyun.com/ 找到最新源地址列表: http://www.linuxdiyf.com/linux/23163.html 软件包管理中心(推荐 ...
- python的return
关于python的return用法,在stackoverflow里的问题: Python — return, return None, and no return at all Consider th ...
- Python学习-9.Python函数定义
先定义一个最基本的函数作为例子: def Print(msg): print(msg) 函数名为Print,参数有一个,为msg,函数体调用print系统函数,输出msg. 接下来就是可变参数,这个特 ...
- C-sharp精华面试题
注:红色表示答案 一.选择,填空题 1. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C). a) ...
- The J-Link hardware debugging Eclipse plug-in
Quicklinks If you already know what are the features of the new plug-in and just want to know how to ...
- Linux Guard Service - 守护进程再次分裂子进程
当系统区内存不能再申请新进程的时候申请会失败 在512MB内存下最多分配的子进程数 3331 [root@localhost 05]# ./test5-1 50000 expect 50000 sub ...
- Buffer Pool--数据库内存结构
数据库从操作系统申请到的内存可分为两部分:1.缓存池内存(数据页和空闲页)2.非缓存池内存(线程/DLL/连接服务器等) Note:通过服务器实例属性设置的最大/最小服务器内存是指缓存池内存Note: ...
- Selenium窗口切换-----Selenium快速入门(六)
有时候,我们打开多个窗口,进行多窗口操作,那么窗口间该如何切换呢? 切换的方法有两个,一个是通过窗口标题来验证,另一个是通过窗口特定的内容来验证,这两个方法都要求得到的标题或内容是唯一的. 用到的相关 ...
- WPF自定义ComboBox
<ControlTemplate x:Key="ComboBoxTextBox" TargetType="{x:Type TextBox}"> &l ...
- UWP开发入门(十)——通过继承来扩展ListView
本篇之所以起这样一个名字,是因为重点并非如何自定义控件,不涉及创建CustomControl和UserControl使用的Template和XAML概念.而是通过继承的方法来扩展一个现有的类,在继承的 ...