第7节 蒙卡模拟计算路径依赖型期权价格

第7节 蒙卡模拟计算路径依赖型期权价格

7.1 简介

       
蒙特卡罗模拟计算期权价格是将股票价格变化过程离散化,通过随机数产生器对每一小段股价变化进行抽样,累计得到一次股价变化过程抽样结果,然后计算出对应的期权价格。进行多次股价变化过程抽样计算出期权价格的平均价并贴现,即为蒙卡模拟得出的期权价格。
       
由于抽样股价过程可以得到完整的股价变化路径,所以可以直接由抽样结果得到路径依赖型期权的价格。这是蒙特卡罗模拟计算期权价格相对于树形计算期权价格的一个优势。

7.2 蒙卡模拟计算回望/亚式期权价格算法

       
以浮动回望看涨期权和亚式平均价格看涨期权为例。浮动回望看涨期权执行时的价格为 max ⁡ ( S T − S m i n ,   0 ) \max(S_T-S_{min}, \, 0) max(STSmin,0) S T S_T ST为执行时刻股票价格, S m i n S_{min} Smin为历史股价极小值;平均价格看涨期权执行时价格为 max ⁡ ( S a v e − K ,   0 ) \max(S_{ave}-K,\,0) max(SaveK,0) K K K为约定执行价格, S a v e S_{ave} Save为历史平均股价。

  1. 根据给定参数,确定股价变化离散化后过程,这里我们使用指数形式。
    S ( t + Δ t ) = S ( t )   e ( r − 1 2 σ 2 ) Δ t + ε σ Δ t ,      ε ∼ N ( 0 , 1 ) ,      Δ t = T N . S(t+\Delta t)=S(t)\,e^{(r-\frac{1}{2}\sigma^2)\Delta t+\varepsilon \sigma\sqrt{\Delta t}},\;\; \varepsilon \sim \mathcal N(0, 1), \;\; \Delta t =\frac{T}{N} . S(t+Δt)=S(t)e(r21σ2)Δt+εσΔt ,εN(0,1),Δt=NT.
  2. S ( t = 0 ) = S 0 S(t=0)=S_0 S(t=0)=S0开始,依照股价离散化变化过程进行抽样,共 N N N次。得到一条股价变化的抽样路径。
  3. 对于浮动回望看涨:由抽样股价变化路径计算出 max ⁡ ( S T − S m i n ,   0 ) \max(S_T-S_{min},\,0) max(STSmin,0),乘以贴现因子 e − r T e^{-rT} erT,得到浮动看涨期权的一次抽样价格;对于平均价格看涨:由抽样股价变化路径计算出 max ⁡ ( S a v e − K ,   0 ) \max(S_{ave}-K,\, 0) max(SaveK,0),乘以贴现因子 e − r T e^{-rT} erT,得到平均价格期权的一次抽样价格。
  4. 重复步骤2、3共 M M M次,对得到的期权价格取平均值,即为蒙卡模拟计算出的目标期权价格。

7.3 算法Python代码实现

import numpy as np
import math

E = math.e

def sample_S_path(r, sigma, S_0, T, N):
    S = S_0
    path = [S]
    dt = T/N
    for i in range(N):
        S *= E**((r-0.5*sigma*sigma)*dt+sigma*np.random.normal()*dt**0.5)
        path.append(S)
    return path

def MC_float_lookback_call(r, sigma, S_0, T, N, M):
    call_price = 0
    for i in 
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值