目录

  • QuantLib 金融计算——随机过程之概述

    • 框架
    • 用法与接口

如果未做特别说明,文中的程序都是 Python3 代码。

QuantLib 金融计算——随机过程之概述

载入模块

import QuantLib as qlprint(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 }\)
    • VarianceGammaProcess
    • Merton76Process
    • GeometricBrownianMotionProcess:\(d S ( t , S ) = \mu S d t + \sigma S d W _ { t }\)
    • HullWhiteProcess
    • HullWhiteForwardProcess
    • GsrProcess

基类 StochasticProcess 模拟一个 d 维 Ito 过程:

\[ d \mathrm S_t = \mu \left( t , S_t \right) \mathrm d t + \sigma \left( t , \mathrm S_t \right) d \mathrm { W }_t \]

quantlib-python 默认的离散化方法是 Euler 方法:

\[ S \left( t + \Delta t \right) = \mu \left( t , S_t \right) \Delta t + \sigma \left( t , S_t \right) \Delta W_t \]

用法与接口

随机过程类的用法基本上是首先初始化一个实例,然后并将其传递给其他类的实例,这些类的实例从中提取所需的变量。一个例子是普通的 Black-Scholes 期权定价器,它从随机过程中检索出波动率。另一个例子是蒙特卡罗定价框架中的路径生成器,需要随机过程的参数,生成对应的路径。

StochasticProcess 提供下列成员函数:

  • size():整数,返回随机过程的维度;
  • initialValues()Array,返回数组 \(S_0\);
  • drift(t, x)Array,返回数组 \(\mu(t,S_t)\);tx 分别是浮点数和 Array
  • diffusion(t, x)Array,返回数组 \(\sigma(t,S_t)\);tx 分别是浮点数和 Array
  • expectation(t0, x0, dt)Array,根据具体的离散方法返回数组 \(E \left( S_{ t_0 + \Delta t} | S_{ t_0 } = x_0 \right)\);t0dt 是浮点数,x0Array
  • stdDeviation(t0, x0, dt)Matrix,根据具体的离散方法返回标准差矩阵 \(Std \left( S_{ t_0 + \Delta t} | S_{ t_0 } = x_0 \right)\);t0dt 是浮点数,x0Array
  • covariance(t0, x0, dt)Matrix,根据具体的离散方法返回协方差矩阵 \(Cov \left( S_{ t_0 + \Delta t} | S_{ t_0 } = x_0 \right)\);t0dt 是浮点数,x0Array
  • 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 派生的所有函数,但这些函数使用浮点数对象而不是 ArrayMatrix 对象。

转载于:https://www.cnblogs.com/xuruilong100/p/10306718.html

QuantLib 金融计算——随机过程之概述相关推荐

  1. QuantLib 金融计算——收益率曲线之构建曲线(3)

    目录 QuantLib 金融计算--收益率曲线之构建曲线(3) 概述 估算期限结构的步骤 读取样本券数据 一些基本配置 配置 *Helper 对象 配置期限结构 估算期限结构 汇总结果 当前实现存在的 ...

  2. QuantLib 金融计算——收益率曲线之构建曲线(1)

    目录 QuantLib 金融计算--收益率曲线之构建曲线(1) YieldTermStructure DiscountCurve DiscountCurve 对象的构造 ZeroCurve ZeroC ...

  3. QuantLib 金融计算库

    一.简介 QuantLib 是一个免费的.开源的, 金融计算的C++库,旨在为量化金融计算提供一个统一的.综合的软件框架. QuantLib 的源代码由 C++ 编写,得力于 C++ 在面向对象和泛型 ...

  4. QuantLib 金融计算——收益率曲线之构建曲线(2)

    目录 QuantLib 金融计算--收益率曲线之构建曲线(2) YieldTermStructure 问题描述 Piecewise** 分段收益率曲线的原理 Piecewise** 对象的构造 Fit ...

  5. QuantLib 金融计算——基本组件之天数计算规则详解

    目录 天数计算规则详解 定义 30 / 360 法 30/360 US 30/360 Bond Basis 30E/360 30E/360 ISDA Actual 法 Actual/Actual IC ...

  6. OpenCL™(开放计算语言)概述

    OpenCL™(开放计算语言)概述 异构系统并行编程的开准 OpenCL™(开放计算语言)是一种开放的.免版税的标准,用于对超级计算机.云服务器.个人计算机.移动设备和嵌入式平台中的,各种加速器进行跨 ...

  7. 金融计算与编程 基于matlab,金融计算与编程.pdf

    金融市场与风险管理系列教材 金融计算与编程 ---基于 MATLAB 的应用 曹志广 著 上海财经大学出版社 ( ) 图书在版编目 CIP数据 : / : 金融计算与编程 基于 的应用 曹志广著 上海 ...

  8. 互联网金融大数据架构概述与应用 - 大数据应用案例

    如果需转载,请注明:乐投网-互联网金融大数据架构概述与应用 IBM分析事业部 IBM分析事业部是在过去一两年间逐步成型的,成立后分成了若干个小部门,如AnalyticsPlatform.CLOUDDA ...

  9. portstats matlab,MATLAB金融计算试题

    <MATLAB金融计算试题>由会员分享,可在线阅读,更多相关<MATLAB金融计算试题(19页珍藏版)>请在人人文库网上搜索. 1.精品文档MATLAB金融计算试题(2014级 ...

最新文章

  1. vue中引入swiper
  2. 还不会子网划分?看这篇文章还远远不够!
  3. 北京集训:20180310
  4. C#多线程编程系列(五)- C# ConcurrentBag的实现原理
  5. ps -ef 命令说明
  6. python转cpp_python转c工具
  7. eclipse中outline中图标含义
  8. iOS 15 如何让 App 启动更快?
  9. Java基础93 JDBC连接MySQL数据库
  10. Xamarin自学教程(Android)之一
  11. 技嘉主板bios设置内存图解
  12. 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题
  13. FatMouse believes that the fatter a mouse is, the faster it runs.
  14. c++语言里平方根值函数,函数式编程之函数定义与使用(以scala语言为例)
  15. 使用win7 快捷键
  16. 【CodeWars】Ones and Zeros
  17. vue3+element-plus动态设置字体大小
  18. VirtualBox安装虚拟机并为其装系统
  19. 【对讲机的那点事】带你玩转宝锋UV6R对讲机(三)
  20. 【网络科学0】新的开始

热门文章

  1. 过了初试,面试而不了了之
  2. 股票涨停之后该不该卖?
  3. 跑步是冻龄,还是催人老?
  4. 整个线上营销_而言,最重要的是什么?
  5. 年轻人创业可以选择的3个方向
  6. 社区团购会一直走下去吗?
  7. 社区生鲜招团长,物业优势何以难施展?
  8. 我并不想劝人创业当老板
  9. 男人在35岁之前最好的投资
  10. 构建第一个fabric网络