第8章--蒙特卡洛模拟金融衍生产品定价_第1页
第8章--蒙特卡洛模拟金融衍生产品定价_第2页
第8章--蒙特卡洛模拟金融衍生产品定价_第3页
第8章--蒙特卡洛模拟金融衍生产品定价_第4页
第8章--蒙特卡洛模拟金融衍生产品定价_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 8 章 蒙特卡洛模拟金融衍生产品定价 本章介绍蒙特卡洛模拟期权定价的内容 要求读者掌握随机数生成方式 了解蒙特卡洛定价就是模拟风险中性测度下标的资产的运动过程 学会蒙特卡 洛方法模拟欧式期权定价 掌握提高模拟精度的常用方法 8 1 随机模拟基本原理 1977 年 菲力埔 伯耶勒 Phelim Boyle 提出了模拟方法求解金融资产定 价问题 其想法是假设资产价格分布是随机波动 如果知道了这个波动过程 就可以通过随机模拟不同的路径 每做完一次模拟 就产生了一个最终资产价 值 再进行若干次这样的过程 那么所得到的结果就是一个最终的资产价值分 布 从这个分布中我们可以得到期望的资产价格 8 1 1 随机数生成函数 1 均匀分布随机数生成函数 MATLAB 中的 unidrnd 函数可以生成 1 到 N 的均匀分布随机数 调用方式 R unidrnd N R unidrnd N m R unirnd N m n 其中 N 所要生成的随机数个数 m 确定输出随机矩阵 R 的行数 n 确定输出随 机矩阵 R 的列数 2 生成服从连续均匀分布的随机数 如果需要生成服从连续分布的随机数 则需调用 unifrnd 函数 其调用格式为 调用方式 1 R unifrnd A B 生成位于 A B 之间的一个随机数 调用方式 2 R unifrnd A B m 生成位于 A B 之间的随机数 m m1 m2 表示行数列数 调用方式 3 R unifrnd A B m n m n 分别表示行数 列数 unifrnd 1 2 5 6 unifrnd 1 2 5 6 8 1 2 生成正态分布随机数 调用方式 R normrnd mu sigma R normrnd mu sigma m R normrnd mu sigma m n 8 1 3 特定分布随机数发生器 MATLAB 中有统一格式的随机数发生器 函数名称为 random 可生成许多服 从不同分布的随机数 y random name A1 A2 A3 m n 表 8 1 生成特定分布的随机数函数参数表 beta 分布 beta 二项分布 bino 卡方 chi2 指数分布 exp F 分布 f Gamma gam Lognormal logn uniform unif Poisson poiss T t Normal norm Noncentral F ncf Noncentral nct 8 1 4 蒙特卡洛模拟方差削减技术 蒙持卡洛模拟精度与模拟次数密切相关 模拟次数越高其精度越高 但是 次数增加又会增加计算量 实践证明明减少模拟方差可以提高稳定性 减少模 拟次数 有很多种方法可以减小方差 如对偶变量技术 控制变量技术 分层 抽样 矩匹配 条件蒙特卡洛模拟等 但最简单并且应用最为广泛的是对偶变 量技术与控制变量技术 对偶变量技术就是先随机抽样得到一组数据 然后以此为基础构造出另一组 对偶变量 下面以正态分布为例介绍对偶变量技术 首先从正态分布变量中随 机抽取 N 个样本值 分别为 由此可以得到个模拟值 N 2 1i Zi N 那么衍生证券蒙特卡洛估计值为 N 2 1i Ci i i C N 1 C 以为基础 构造对偶随机数 是与相互对偶的 N 2 1i Zi ZZ i i Z i Z 随机数 由正态分布的性质知 也是服从正态分布 由对 N 2 1i ZZ ii 偶随机数生成的估计值为 i i C N 1 C 对和取平均得到新的估计C C i ii 2 C C N 1 C C 2 1 C 如果随机抽样的样本模拟得到的估计值比较小 那么与之 N 3 2 1i Zi 对偶的随机抽样样本得到的估计值可能会偏大 二者的平 N 2 1i ZZ ii 均值就可能会接近真实值 如果 那么0 C C cov ii C var 2 1 C C cov 2 1 C var 2 1 2 C C var iiii ii 从上面的不等式可以看出 利用对偶技术可以增加估计稳定性 提高了估计精 确度 8 1 5 随机模拟控制变量技术 摔制变量技术就是将与所估计的未知变量密切相关的另一个已知量的真实 值和估计值之间的差异作为控制量 以提高估计精度 在定价实践中 将这两 种衍生证券用相同的随机抽样样本和时间间隔 实施同样的蒙特卡洛模拟过程 能够得到两个模拟估计值 以第二种衍生证券真实值与估计值之间的差异作为 控制变量 最后得到第一种衍生证券的蒙特卡洛估计值 假定是需要估汁的第一种衍生证券的价值 是价值容易估计的第二种 1 V 2 V 衍生证券的价值 第一种证券与第二种证券相似 而和分别是第一种衍生 1 V 2 V 证券和第二种衍生证券在同样的随机抽样样本的蒙特卡洛估计值 那么利用控 制变量技术得到第一种衍生证券的价格估计值为 V V V V 221 Cl 1 这里就是控制变量 它实际上是第一种衍生证券的蒙特卡洛模拟的估计 22 V V 误差 且上述方程的方差之间的关系为 V V cov 2 V var V var V var 2121 Cl 1 如果 一定有 V V cov 2 V var 212 V var V var 1 Cl 1 因此 当两种衍生证券的协方差很大时 或者当两种衍生证券的价格高度 相关时 上述关系是成立的 两种衍生证券的正相关性越强 估计效率越理想 然的从实际应用的角度看 这种控制变量技术的应用十分有限 因此 下面是 更一般的控制变量技术 其控制变量的形式为 V V V V 22t1 方差为 V V cov 2 V var V var V var 212 2 11 这是关于控制变量系数的二次三项式 下面的目标是能够找到特殊的使 方差最小 这时只要取就可以保证方差最小 这 V var 1 V var V V cov 2 21 V var 1 种控制变量技术的缺点是需要提前知道协方差的信息 而这一般 V V cov 21 需要靠经验实现 8 2 蒙持卡洛方法模拟期权定价 编程 考 8 2 1 蒙特卡洛方法模拟欧式期权定价 在期权计算中 我们可以利用风险中性的方法计算期权的价格 风险中性 定价形式如下 f E ef T rT 其中 是期权的价格 是到期日的现金流 是风险中性测度 f T fTE 如果知道了风险中性测度就可以模拟全路径 也可模拟终端价格 例如计 算障碍期权等路径依赖型期权时可以模拟全路径 而欧式期权可模拟终端价格 如果标的资产服从几何布朗运动 SdWSdtdS 那么风险中性定价的关键在于寻找风险中性测度 对于几何布朗运动 可以 证明风险中性测度下 标的资产运动过程如下 TT 2 rexpSS 2 0T 对于欧式看涨期权 到期日欧式看涨期权现金流如下 K TT 2 S 0 exp r0 max 2 其中 是执行价 是无风险利率 是标准差 是正态分布的随机变量 Kr 对到期日的现金流用无风险利率贴现 就可以知道期权的价格 考考 例 8 1 假设股票价格服从几何布朗运动 股票现在价格 欧式期50 0 S 权执行价 无风险利率 股票波动的标准差 期权的52K 1 0r 4 0sigma 到期日 试用蒙特卡洛模拟方法计算该期权价格 12 5T 下面用 MATLAB 编写一个子程序 blsmc 进行计算 function eucall varprice ci blsmc s0 K r T sigma Nu 蒙特卡洛方法计算欧式看涨期权的价格 输入参教 sO 股票价格 K 执行价 r 无风险利率 sigma 股票波动的标准差 Nu 模拟的次数 输出参数 eucall 欧式看涨期权的价格 varprice 模拟期权价格的方差 ci 95 概率保证的期权价格区间 randn seed O 定义随机数发生器种子是 0 这样可以保证每次模拟的结果相同 nuT r 0 5 sigma 2 T sit sigma sqrt T discpayoff exp r T max 0 s0 exp nuT sit randn Nu l K 期权到期时的现金流 eucall varprice ci normfit discpayoff 调用子程序可得到欧式看涨期权价格 c var ci blsmc 50 52 0 1 5 12 0 4 1000 c 5 3244 var 9 3149 ci 4 5581 6 0908 从上面的结果可以看到 蒙特卡洛模拟得到的期权价格为 5 4445 样本正 态拟合的方差为 9 1361 95 的置信区间为 4 8776 6 0115 模拟波动的区间 还是很大的 我们用了 normfit 函数对模拟的结果用正态分布函数进行拟合 这不是必 需的 主要是为了考察模拟结果的稳定性 如果不需要考察结果是否稳定 也 可直接对模拟的结果求均值 此时可将最后一句改为 price mean discpayoff 欧式期权的公式解如下 call put blsprice 50 52 0 1 5 12 0 4 call 5 6794 put 5 1976 公式解 5 1911 和模拟值 5 4445 二者之间还是存在较大的差距 增加模拟 的次数为 10000 次时结果如下 c var ci blsmc 50 52 0 1 5 12 0 4 10000 c 5 4636 var 8 8791 ci 4 1405 5 7867 模拟结果入 5 1338 可以看到期权模拟精度有了显著提高 95 的的置信 区间为 4 9587 5 3089 置信区间较 1000 时大大缩小 模拟可靠性增加 下面用对偶方法计算欧式看涨期权的价格 function eucall varprice ci dul blsmc s0 K r T sigma Nu 蒙特卡洛方法计算欧式看涨期权的价格 对偶法 输入参教 sO 股票价格 K 执行价 r 无风险利率 sigma 股票波动的标准差 Nu 模拟的次数 输出参数 eucall 欧式看涨期权的价格 varprice 模拟期权价格的方差 ci 95 概率保证的期权价格区间 randn seed O 定义随机数发生器种子是 0 这样可以保证每次模拟的结果相同 nuT r 0 5 sigma 2 T sit sigma sqrt T rand randn Nu 1 discpayoff exp r T max 0 s0 exp nuT sit rand K discpayoff1 exp r T max 0 s0 exp nuT sit 1 rand K 期权到期时的现金流 duleucall dulvarprice dulci normfit discpayoff discpayoff1 调用子程序可得到欧式看涨期权价格 c var ci dul blsmc 50 52 0 1 5 12 0 4 10000 结果如下 c 5 5931 var 8 2321 ci 5 3382 5 8480 模拟的结果为 5 2094 离精确值 5 19l1 非常接近 说明对偶技术还是非 常有效的 8 2 2 蒙特卡洛方法模拟障碍期权定价 障碍期权是特殊形式的期权 例如确定一个障碍值 在期权的存续期内 b S 有可能超过该价格 也有可能低于该价格 对于敲出期权而言 如果在期权的 存续期内标的资产价格触及障碍值时 期权合同可以提前终止执行 相反地 b S 对于敲入期权丽言 如果标的资产价格触及障碍值时 期权合同开始生效 b S 注意障碍值可以低于标的资产现在的价格 也可以高于 如果 b S 0 S 0 S 称为上涨期权 反之称为下跌期权 0b SS 对于下跌敲出看跌期权 该期权首先是看跌期权 股票价格是 执行价 0 S 是 买入看跌期权就首先保证以执行价卖掉股票 下跌敲出障碍期权相当KK 于在看跌期权的基础上附加提前终止执行的条款 内容是当股票价格触及障碍 值时看跌期权就提前终止执行 b S 因为该期权对于卖方有利 所以其价格应低于看跃期权的价格 下面考虑下跌敲入看跌期权 同样地该期权首先是看跌期权 下跌敲入期 权相当于在看跌期权的基础上 附加何时生效的条款 内容是当股票的价格触 及障碍值时 看跌期权开始生效 综合地看 标准的看跌期权合同可以拆分 b S 为两份产品 分别是下跌敲出看跌期权与下跌敲入看跃期权 用公式表示如下 dodi PPP 其中 是标准看跌期权价格 与分别表示下跌敲入看跌期权与下跌敲P di P do P 出看跌期权的价格 如果下跌敲出看跌期权提前终止时卖方补偿一些费用给买 方 上述公式表示的平价义系就就不再有效 当障碍值确定时 障碍期权存在公式解 其形式如下 d N d N b d N d N S d N d N a d N d N KeP 68130 5724 rT 其中 是股票价格 是障碍值 是看跌期权执行价 是存续期 是 0 S b SKTr 无风险利率 是波动率的标准差 其他参数如下 a Sb S0 1 2 r sigma 2 b Sb S0 1 2 r sigma 2 d1 log S0 K r sigma 2 2 T sigma sqrt T d2 log S0 K r sigma 2 2 T sigma sqrt T d3 log S0 Sb r sigma 2 2 T sigma sqrt T d4 log S0 Sb r sigma 2 2 T sigma sqrt T d5 log S0 Sb r sigma 2 2 T sigma sqrt T d6 log S0 Sb r sigma 2 2 T sigma sqrt T d7 log S0 K Sb 2 r sigma 2 2 T sigma sqrt T d8 log S0 K Sb 2 r sigma 2 2 T sigma sqrt T 利用上面的公式编写下跌敲出障碍期权价格的程序如下 function P DownOutPut S0 K r T sigma Sb a Sb S0 1 2 r sigma 2 b Sb S0 1 2 r sigma 2 d1 log S0 K r sigma 2 2 T sigma sqrt T d2 log S0 K r sigma 2 2 T sigma sqrt T d3 log S0 Sb r sigma 2 2 T sigma sqrt T d4 log S0 Sb r sigma 2 2 T sigma sqrt T d5 log S0 Sb r sigma 2 2 T sigma sqrt T d6 log S0 Sb r sigma 2 2 T sigma sqrt T d7 log S0 K Sb 2 r sigma 2 2 T sigma sqrt T d8 log S0 K Sb 2 r sigma 2 2 T sigma sqrt T P K exp r T normcdf d4 normcdf d2 a normcdf d7 normcdf d5 S0 normcdf d3 normcdf d1 b normcdf d8 normcdf d6 例 8 2 我们考虑一个欧式看跌股票期权 股票的价格为 50 看跌期权执行 价为 50 无风险利率为 0 1 时间为 5 个月 股票年波动率的标准差为 0 4 首先公式的解如下 S0 50 K 50 r 0 1 T 5 12 sigma 0 4 call put blsprice S0 K r T sigma call 6 0871 put 4 7780 看跌期权价格为 4 076 对于上述看跌期权 进一步地 我们考虑障碍值 等于 40 时下跌敲出期权的价格 b S P DownOutPut S0 K r T sigma 40 P 0 8436 由于该下跌敲出看跌期权提供的条件过于优厚 买方承受大量风险 作为回 报价格较看跌期权便宜许多 下面用蒙特卡洛方法模拟下跌敲出看跌期权价格 在模拟中我们给出了模 拟次数为 NRep1 每次模拟时间分为 NSteps 步离散 障碍值为变量 Sb 其现金 流如下 当时 CashFlow 0 bt SS 我们可以先模拟路径 然后让小于 Sb 的路径的现金流为 0 程序如下 DOPutMC s0 k r T sigma sb NSteps NRep1 function P aux CI DOPutMC s0 k r T sigma sb NSteps NRep1 利用蒙特卡洛方法对欧式下跌敲出期权定价 输入参数 sO 股票价格 k 执行价 r 无风险利率 T 期权存续期 sigma 股票波动的标准差 Sb 障碍值 NSteps 时间离散数目 NRepl 欧式看涨期权的价格 varprice 模拟期权价格的方差 ci 95 概率保证的期权价格区间 输出参数 P 下跌敲出看跌期权价格 CI 蒙特卡洛摩尼的方差 NCrossed 价格的 95 置信区间 用蒙特卡洛方法模拟风险中性下股价路径 dt T NSteps nudt r 0 5 sigma 2 dt sidt sigma sqrt dt randn seed 0 rand randn NRep1 NSteps rand1 nudt sidt rand rand2 cumsum rand1 2 沿列方向逐列累加 path s0 exp rand2 利用路径进行定价 payoff zeros NRep1 1 for i 1 NRep1 ax path i if min ax sb payoff i 0 如果路径中的任意一点价格低于障碍值 现金流为 0 else payoff i max 0 k ax NSteps end end P aux CI normfit exp r T payoff P 为期权价格 运行程序 s0 50 k 50 r 0 1 T 5 12 sigma 0 4 sb 40 NSteps 600 NRep1 10000 P aux CI DOPutMC s0 k r T sigma sb NSteps NRep1 P 0 6891 aux 1 5626 CI 0 2887 0 0894 该期权模拟的价格为 0 5594 和前面的公式解 0 5424 尚存在差距 增加模 拟次数 代码如下 s0 50 k 50 r 0 1 T 5 12 sigma 0 4 sb 40 NSteps 600 NRep1 20000 P aux CI DOPutMC s0 k r T sigma sb NSteps NRep1 P 0 8951 aux 1 4015 CI 0 7729 0 0173 结果和公式解比较接近 如果将存续期改为 2 12 年 再考察其价格变化 代码如下 P aux CI DOPutMC s0 k r 2 12 sigma sb 60 50000 P 1 1812 aux 2 9638 CI 1 5229 1 8395 8 2 3 蒙特卡洛方法模拟亚式期权定价 亚式期权是一种路径依赖型期权 它的收益函数依赖于期权存续期内标的 资产的平均价格 平均价格分算术平均和几何平均两种 对于离散算术平均价 格定义为 8 1 n 1i ida t S n 1 A 其中是离散时间样本点 n 2 1i ti 离散几何平均价格定义为 8 2 n 1 n 1i idg t SA 亚式看涨期权到期现金流为 N Tt tit 0 K t S N 1 max i N 1i i 其中 是执行价 是时刻的股价 K t S ii t 例 8 3 股票价格为 50 亚式看涨期权执行价为 50 存续则为 5 个月 期权到期现金流是每月均价与执行价之差 股票波动率的标准差为 0 4 无风 险利率为 0 1 下面用蒙特卡洛方法计算该亚式期权价格 该期权定价程序为 DOPutMC s0 k r T sigma sb NSteps NRep1 function P aux CI AsianMC s0 k r T sigma NSteps NRep1 利用蒙特卡洛方法对亚式期权定价 输入参数 sO 股票价格 k 执行价 r 无风险利率 T 期权存续期 sigma 股票波动的标准差 NSteps 时间离散数目 NRepl 模拟路径数 输出参数 P 下跌敲出看跌期权价格 CI 蒙特卡洛模拟的方差 NCrossed 价格的 95 置信区间 用蒙特卡洛方法模拟风险中性下股价路径 dt T NSteps nudt r 0 5 sigma 2 dt sidt sigma sqrt dt randn seed 0 rand randn NRep1 NSteps rand1 nudt sidt rand rand2 cumsum rand1 2 沿列方向逐列累加 path s0 exp rand2 利用路径进行定价 payoff zeros NRep1 1 for i 1 NRep1 payoff i max 0 mean path i k end P aux CI normfit exp r T payoff 运行程序 s0 50 k 50 r 0 1 T 5 12 sigma 0 4 NSteps 5 NRep1 50000 P aux CI AsianMC s0 k r T sigma NSteps NRep1 P 3 6958 aux 5 4831 CI 3 7914 4 6003 这是一个比较粗糙的估计 我们可以用控制变量 control variable 技术 提高估计精度 构造 N 0i i t SY 显然它和收益函数是相关的 而 tr t 1N r N 0i itr N 0i tir N 0i N 0i i e1 e1 0 S e 0 Se 0 S ti S E t SE Y E 这样用控制变量法可以将前面的程序改为 e 0 S t S E t AsianMCCV m function P CI AsianMCCV S0 X r T sigma NSamples NRep1 NPilot 利用蒙特卡洛方法对亚式期权定价 输入参数 sO 股票价格 X 执行价 r 无风险利率 T 期权存续期 sigma 股票波动的标准差 NSample 取样数目 NRepl 模拟路径数 Npilot 路径数目 输出参数 P 下跌敲出看跌期权价格 CI 蒙特卡洛模拟的方差 用蒙特卡洛方法模拟风险中性下股价路径 TryPath AssetPaths1 S0 r sigma T NSamples NPilot 生成路径 StockSum sum TryPath 2 PP mean TryPath 2 NSamples 1 2 TryPayoff exp r T max 0 PP X MatCov cov StockSum TryPayoff c MatCov 1 2 var StockSum dt T NSamples ExpSum S0 1 exp NSamples 1 r dt 1 exp r dt MC ControlVars zeros NRep1 1 for i 1 NRep1 StockPath AssetPaths1 S0 r sigma T NSamples 1 Payoff i exp r T max 0 mean StockPath 2 NSamples 1 X ControlVars i Payoff i c sum StockPath ExpSum end P aux CI normfit ControlVars function Spaths AssetPaths1 S0 mu sigma T NSteps NRep1 dt T NSteps nudt mu 0 5 sigma 2 dt sidt sigma sqrt dt Increments nudt sidt randn NRep1 NSteps LogPaths cumsum log S0 ones NRep1 1 Increments 2 Spaths exp LogPaths 下面是控制变量模拟的结果 randn seed 0 P CI AsianMCCV 50 50 0 1 5 12 0 4 5 45000 50000 计算结果为 P 3 7436 CI 3 5162 4 9710 根据前面蒙特卡洛模拟的结果有 randn seed 0 P aux CI AsianMC 50 50 0 1 5 12 0 4 5 50000 P 3 6958 aux 5 4831 CI 3 7914 4 6003 可以看出控制变量使得估计的置信区间缩小了 8 2 4 蒙特卡洛模拟经验等价勒测度 等价鞅理论是金融衍生品定价的重要方法 衍生品价格就是在等价鞅 测度下对衍生品现金流用无风险利率贴现 可以用下面方程表示 F S EeS 0T QrT 0 其中 表示股票价格 为无风险利率 表示 0 时刻信息 表 0 Sr 0 F F E 0 Q 示等价敬测度下的期望算子 Duan 和 simonate 1998 提出了乘数调整法 该方法可以保证等价鞅 性质 当标的资产服从几何布朗运动时 等价鞅下的资产运动满足下列条 件 TT 2 rexpSS 2 0T 其中 这样模拟的第 条路径为 1 0 N i T i 2 0T i TT 2 rexpSS 这时我们可以构造一个等价鞅测度 M S S rTexp S i S T i T i 0 T i 测度实际上在第 条路径的权重上乘以 当样本容量趋 S i rTexp S0 于无穷大时有 0 M 1i t i rT SS M 1 e 是风险中性测度下的新样本 i S i i 对于例 8 1 我们重新编写程序如下 function Emse

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论