导航

  • 欧式期权的定价
    • 例题
      • 解析
  • 美式期权定价
    • 例题
      • 解析

欧式期权的定价

定理:支付已知红利股票的Black-Scholes欧式期权定价公式,设到期时刻为 T T T,行权价格为 K K K,已知红利的现值是 V V V,则标的资产价格 S S S满足几何布朗运动的股票欧式看涨期权价格为
c = ( S − V ) N ( d 1 ) − K e − r ( T − t ) N ( d 2 ) c=(S-V)N(d_1)-Ke^{-r(T-t)}N(d_2) c=(S−V)N(d1​)−Ke−r(T−t)N(d2​)
其中
d 1 = ln ⁡ [ ( S − V ) / K ] + ( r + σ 2 / 2 ) ( T − t ) σ T − t d 2 = ln ⁡ [ ( S − V ) / K ] + ( r − σ 2 / 2 ) ( T − t ) σ T − t = d 1 − σ T − t \begin{aligned} &d_1=\frac{\ln[(S-V)/K]+(r+\sigma^2/2)(T-t)}{\sigma\sqrt{T-t}}\\ &d_2=\frac{\ln[(S-V)/K]+(r-\sigma^2/2)(T-t)}{\sigma\sqrt{T-t}}=d_1-\sigma\sqrt{T-t} \end{aligned} ​d1​=σT−t ​ln[(S−V)/K]+(r+σ2/2)(T−t)​d2​=σT−t ​ln[(S−V)/K]+(r−σ2/2)(T−t)​=d1​−σT−t ​​
根据平价关系,可以推出欧式看跌期权的定价公式
p = K e − r ( T − t ) N ( − d 2 ) − ( S − V ) N ( − d 1 ) p=Ke^{-r(T-t)}N(-d_2)-(S-V)N(-d_1) p=Ke−r(T−t)N(−d2​)−(S−V)N(−d1​)

例题

考虑到期时间还有6个月的股票欧式看涨期权和看跌期权,标的股票在2个月和5个月后各有一个除息日,在每个除息日的红利期望值为 0.5 0.5 0.5,已知当前股票价格为 40 40 40,行权价格为 40 40 40,股票年波动率为 30 % 30\% 30%,无风险年利率是 9 % 9\% 9%,求两种期权的价格.

解析

计算红利的现值为
V = D 1 e − r t 1 + D 2 e − r t 2 V=D_1e^{-rt_1}+D_2e^{-rt_2} V=D1​e−rt1​+D2​e−rt2​
BS模型参数
d 1 = ln ⁡ [ ( S − V ) / K ] + ( r + σ 2 / 2 ) ( T − t ) σ T − t d 2 = d 1 − σ T − t \begin{aligned} &d_1=\frac{\ln[(S-V)/K]+(r+\sigma^2/2)(T-t)}{\sigma\sqrt{T-t}}\\ &d_2=d_1-\sigma\sqrt{T-t} \end{aligned} ​d1​=σT−t ​ln[(S−V)/K]+(r+σ2/2)(T−t)​d2​=d1​−σT−t ​​
计算期权价格
c = ( S − V ) N ( d 1 ) − K e − r ( T − t ) N ( d 2 ) p = K e − r ( T − t ) N ( − d 2 ) − ( S − V ) N ( − d 1 ) \begin{aligned} &c=(S-V)N(d_1)-Ke^{-r(T-t)}N(d_2)\\ &p=Ke^{-r(T-t)}N(-d_2)-(S-V)N(-d_1) \end{aligned} ​c=(S−V)N(d1​)−Ke−r(T−t)N(d2​)p=Ke−r(T−t)N(−d2​)−(S−V)N(−d1​)​
c++计算支付红利的期权价格

void option_price(const double &s, const double &K, const double &r, const double &sigma, const double &tm, const double& v){double S=s-v;double d1=(log(S/K)+(r+pow(sigma, 2)/2)*tm)/(sigma*sqrt(tm));double d2=d1-sigma*sqrt(tm);// call option pricedouble c=S*N(d1)-K*exp(-r*tm)*N(d2);// put option pricedouble p=K*exp(-r*tm)*N(-d2)-S*N(-d1);cout<<"call option price: "<<c<<endl;cout<<"put option price: "<<p<<endl;
}int main(){double r=0.09;double t1=0.1667, t2=0.4167;// 计算红利现值double v=0.5*exp(-r*t1)+0.5*exp(-r*t2);option_price(40, 40, 0.09, 0.3, 0.5, v);return 0;
}

python计算支付红利的期权价格

from scipy.stats import norm
from math import log, expdef option_price(S, K, r, sigma, tm, v):S-=vd1=log(S/K)+(r+sigma**2/2)*tm/(sigma*sqrt(tm))d2=d1-sigma*sqrt(tm)c=S*norm.cdf(d1)-K*exp(-r*tm)*norm.cdf(d2)p=K*exp(-r*tm)*norm.cdf(-d2)-S*norm.cdf(-d1)print('call option price is {:.4f}'.format(c))print('put option price is {:.4f}'.format(p))t1, t2=2/12, 5/12
v=0.5*exp(-0.09*t1)+0.5*exp(-0.09*t2)
option_price(40, 40, 0.09, 0.3, 0.5, v)

美式期权定价

美式期权存在提前行权的问题,当预期有红利派发时,在除息日前立即行权是合理的选择. Roll,Geske和Whaley提出一种美式看涨期权定价公式
C = ( S − D 1 e − r τ 1 ) N ( b 1 ) + ( S − D 1 e − r τ 1 ) M ( a 1 , b 1 ; − τ 1 / τ ) − K e − r τ M ( a 2 , − b 2 ; − τ 1 / τ ) − ( K − D 1 ) e − r τ 1 N ( b 2 ) \begin{aligned} &C=(S-D_1e^{-r\tau_1})N(b_1)+(S-D_1e^{-r\tau_1})M(a_1, b_1; -\sqrt{\tau_1/\tau})-Ke^{-r\tau}M(a_2, -b_2;-\sqrt{\tau_1/\tau})-\\ &(K-D_1)e^{-r\tau_1}N(b_2) \end{aligned} ​C=(S−D1​e−rτ1​)N(b1​)+(S−D1​e−rτ1​)M(a1​,b1​;−τ1​/τ ​)−Ke−rτM(a2​,−b2​;−τ1​/τ ​)−(K−D1​)e−rτ1​N(b2​)​
其中
a 1 = ln ⁡ [ ( S − D 1 e − r τ 1 ) / K ] + ( r + σ 2 / 2 ) τ σ τ a 2 = a 1 − σ τ b 1 = ln ⁡ [ ( S − D 1 e − r τ 1 ) / S ˉ ] + ( r + σ 2 / 2 ) τ 1 σ τ 1 b 2 = b 1 − σ τ 1 τ 2 = t 1 − t τ = T − t \begin{aligned} &a_1=\frac{\ln[(S-D_1e^{-r\tau_1})/K]+(r+\sigma^2/2)\tau}{\sigma\sqrt{\tau}}\\ &a_2=a_1-\sigma\sqrt{\tau}\\ &b_1=\frac{\ln[(S-D_1e^{-r\tau_1})/\bar{S}]+(r+\sigma^2/2)\tau_1}{\sigma\sqrt{\tau_1}}\\ &b_2=b_1-\sigma\sqrt{\tau_1}\\ &\tau_2=t1-t\\ &\tau=T-t \end{aligned} ​a1​=στ ​ln[(S−D1​e−rτ1​)/K]+(r+σ2/2)τ​a2​=a1​−στ ​b1​=στ1​ ​ln[(S−D1​e−rτ1​)/Sˉ]+(r+σ2/2)τ1​​b2​=b1​−στ1​ ​τ2​=t1−tτ=T−t​
M ( a , b ; ρ ) M(a, b; \rho) M(a,b;ρ):为二维正态分布的累积分布函数
D 1 D_1 D1​:最后支付红利
t 1 t_1 t1​:最后的除息日
S ˉ \bar{S} Sˉ:通过 c ( S ˉ , t 1 ) = S ˉ + D 1 − K c(\bar{S}, t_1)=\bar{S}+D_1-K c(Sˉ,t1​)=Sˉ+D1​−K解出,其中 c ( S ˉ , t 1 ) c(\bar{S}, t_1) c(Sˉ,t1​)是当 S ˉ = S \bar{S}=S Sˉ=S且 t 1 = t t_1=t t1​=t时,由BS公式给出的期权价格.

例题

美式期权,标的资产价格为 100 100 100,行权价格为 100 100 100,年无风险利率是 10 % 10\% 10%,年波动率是 25 % 25\% 25%,权利期1年,距离除息日还有6个月时间,预期红利为 10 10 10,求期权价格

解析

模型参数, S = K = 100 , r = 0.1 , σ = 0.25 , τ = T − t = 1 , τ 1 = t 1 − t = 0.5 , D 1 = 10 S=K=100, r=0.1, \sigma=0.25, \tau=T-t=1, \tau_1=t_1-t=0.5, D_1=10 S=K=100,r=0.1,σ=0.25,τ=T−t=1,τ1​=t1​−t=0.5,D1​=10
计算 S ˉ \bar{S} Sˉ,求解方程 c ( S ˉ , t 1 ) = S ˉ + D 1 − K c(\bar{S}, t_1)=\bar{S}+D_1-K c(Sˉ,t1​)=Sˉ+D1​−K
计算参数
a 1 = ln ⁡ [ ( 100 − 10 e − 0.1 ∗ 0.5 ) / 100 ] + ( 0.1 + 0.2 5 2 / 2 ) ∗ 1 0.25 ∗ 1 a 2 = a 1 − σ τ b 1 = ln ⁡ [ ( 100 − 10 e − 0.1 ∗ 0.5 ) / S ˉ ] + ( 0.1 + 0.2 5 2 / 2 ) ∗ 0.5 0.25 ∗ 0.5 b 2 = b 1 − σ τ 1 \begin{aligned} &a_1=\frac{\ln[(100-10e^{-0.1*0.5})/100]+(0.1+0.25^2/2)*1}{0.25*\sqrt{1}}\\ &a_2=a_1-\sigma\sqrt{\tau}\\ &b_1=\frac{\ln[(100-10e^{-0.1*0.5})/\bar{S}]+(0.1+0.25^2/2)*0.5}{0.25*\sqrt{0.5}}\\ &b_2=b_1-\sigma\sqrt{\tau_1} \end{aligned} ​a1​=0.25∗1 ​ln[(100−10e−0.1∗0.5)/100]+(0.1+0.252/2)∗1​a2​=a1​−στ ​b1​=0.25∗0.5 ​ln[(100−10e−0.1∗0.5)/Sˉ]+(0.1+0.252/2)∗0.5​b2​=b1​−στ1​ ​​
python计算美式期权价格

from scipy.stats import norm as N
from scipy.stats import multivariate_normal as mvn
from math import log, exp
import numpy as npEPS=1e-6 # 二分法计算精度
MAX=0x3f3f3f3fdef euro_call_option_price(S, K, r, sigma, tm):d1=log(S/K)+(r+sigma**2/2)*tm/(sigma*sqrt(tm))d2=d1-sigma*sqrt(tm)c=S*N.cdf(d1)-K*exp(-r*tm)*N.cdf(d2)p=K*exp(-r*tm)*N.cdf(-d2)-S*N.cdf(-d1)return cdef american_call_option_price(S, K, r, sigma, tau, D1, tau1):if D1<=K-K*exp(-r*(tau-tau1)): return euro_call_option_price(S-D1*exp(-r*tau1), K, r, sigma, tau)rho=-sqrt(tau1/tau)S_bar, S_low, S_hi=0, 0, Sc=euro_call_option_price(S_hi, K, r, sigma, tau-tau1)p=c-S_hi-D1+K # 目标值while p>0.00 and S_hi<MAX:S_hi*=2.0c=euro_call_option_price(S_hi, K, r, sigma, tau-tau1)p=c-S_hi-D1+Kif S_hi>MAX: return euro_call_option_price(S-D1*exp(-r*tau1), K, r, sigma, tau)S_bar=S_hi/2c=euro_call_option_price(S_bar, K, r, sigma, tau-tau1)# 二分while abs(p)>EPS and S_hi-S_low>EPS:if p<0.00: S_hi=S_barelse: S_low=S_barS_bar=0.5*(S_hi+S_low)c=euro_call_option_price(S_bar, K, r, sigma, tau-tau1)p=c-S_bar-D1+Ka1=(log((S-D1*exp(-r*tau1))/K)+(r+sigma**2/2)*tau)/(sigma*sqrt(tau))a2=a1-sigma*sqrt(tau)b1=(log((S-D1*exp(-r*tau1))/S_bar)+(r+sigma**2/2)*tau1)/(sigma*sqrt(tau1))b2=b1-sigma*sqrt(tau)mean = np.array([0.00, 0.00])covariance = np.array([[1, rho],[rho, 1]])MN = mvn(mean=mean, cov=covariance)# 计算美式期权C=(S-D1*exp(-r*tau1))*N.cdf(b1)+(S-D1*exp(-r*tau1))*MN.cdf([a1, b1])-(K*exp(-r*tau))*MN.cdf([a2, b2])-(K-D1)*exp(-r*tau1)*N.cdf(b2)return CC=american_call_option_price(100.0, 100.0, 0.1, 0.25, 1.0, 10.0, 0.5)
print('american call option is {:.4f}'.format(C))

【FinE】红利对期权价格的影响相关推荐

  1. 数据科普:期权价格和相关变量的关系(投资必知必会)

    通过布莱克-斯科尔斯-默顿模型,不难发现有5个变量会影响期权的价格:一是当前基础资产价格S,二是期权的执行价格K,三是期权期限T,四是基础资产的波动率:五是无风险收益率r.下面主要针对当其中一个变量发 ...

  2. GWAS研究基本概念2——Fine mapping

    有了GWAS公共数据后的下一步就是找因果变异(causal varision),这篇文章介绍fine-mapping精细映射 和gene prioritization基因排序,简单一句话就是 tran ...

  3. Intel金融加速卡计算库及FPGA期权定价应用

    作者:喻伟 东方证券FPGA加速应用负责人 / 黄琦 Intel FPGA金融加速产品经理 联系邮箱:yuwei1119@sina.com.cn / 个人微信号:yuwei_1119 近年来,在互联网 ...

  4. python 布莱克舒尔斯_布莱克-舒尔斯-墨顿期权定价模型

    1. 布莱克-舒尔斯-墨顿期权定价模型(Black–Scholes–Merton Option Pricing Model) 布莱克-舒尔斯-墨顿模型(Black–Scholes–Merton mod ...

  5. 《2周攻克期权策略》读书笔记

    第一天 期权定价原理 0201 1.1 期权定价历史 延伸阅读 https://www.douban.com/group/topic/124846601/ 维纳 数学定义布朗运动 1.过程开始于同一起 ...

  6. 衍生品定价之二:期权定价

    期权定价 期权定价原理 买卖权平价关系 期权定价模型 期权定价之二叉树模型 期权定价之B-S-M模型 基础B-S-M模型 存续期内支付红利的B-S-M模型 股指期权定价 希腊字母 Delta (Δ\D ...

  7. 证券从业资格证-考前复习-金融市场基础知识

    备考2023年6月证券从业资格证,每章思维导图及相关概念,用于考前复习,只包含[金融市场基础知识]部分 1. 金融市场基础知识 1.1 第一章 金融市场体系 #mermaid-svg-olEXDXH2 ...

  8. 【NLP】万字梳理!BERT之后,NLP预训练模型发展史

    作者 | 周俊贤 整理 | NewBeeNLP 本文讲解下BERT推出后,预训练模型的演变,包括BERT.RoBERTa.ALBERT.ERNIE系列.ELECTRA.下面脑图是本系列第一篇内容,欢迎 ...

  9. 2019,国产手机生死存亡的一年

    作者 | 方文 本文经授权转自猎云网(ID: ilieyun) OPPO副总裁沈义人给现在火热的5G和折叠屏泼了两盆冷水. "目前这个阶段看来,折叠后除了屏幕变大,和可以折叠一下,并没有带来 ...

最新文章

  1. 算法设计与分析第1章 算法概述
  2. 【Vue】IView之table组件化学习(二)
  3. 移植uboot第五步:支持NORFlash
  4. boost::signals2::trackable相关的测试程序
  5. android sqlite更改数据,更新现有的sqlite数据库中的列,但没有任何更改android
  6. python哪个文字转语音好用_【python3】Python十行代码搞定文字转语音
  7. layui 自定义request_layui中使用自定义数据格式对数据表格进行渲染
  8. java抽取注释_JAVA 注解教程(五)注解的提取
  9. USB HID 协议
  10. 倍数应用题后面需要带单位吗_【小学数学】必考应用题解答思路,多种问题轻松解决!...
  11. JAVA中“:”的用法详解
  12. ARM指令集的最新版本包括针对JavaScript的优化
  13. Zend Studio 4.0.2试用手迹
  14. Spring源码深度解析
  15. 微信开发者工具下载及公众号使用介绍
  16. oracle delete误删除表数据进行恢复
  17. Ubuntu安装与Xshell的配置
  18. 4k纸是几厘米乘几厘米_4k纸多大(4k纸有几张a4纸大)
  19. 【c/c++】二次方程计算器
  20. 网络——数字数据编码

热门文章

  1. html幻灯片图片大小,如何制作ppt?如插入图片、调整图片大小与母版一致!
  2. java excel 65535_java导出excel数据超过65535
  3. 最新突破!天然产物首次实现全合成,轰动整个化学界
  4. 训练日记 2.10 - 4.7
  5. 工业级参数8.4V-24V电压降压到5V或3.3V降压芯片
  6. iPhone 上也能用安卓系统了?!
  7. 比特小鹿:机构加入,加速矿业专业化和全球化 | FBEC2020 特别策划
  8. 项目管理实践篇(二):总结项目经历
  9. Sofaboot学习整理
  10. PKPM 次梁 主梁