我是靠谱客的博主 笑点低汉堡,最近开发中收集的这篇文章主要介绍数据科普:定价模型与平价关系式(投资必知必会),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

hi,凹凸们????

今天给大家介绍一下定价模型与平价关系式。前文链接:期权类型与到期盈亏(投资必知必会)

一、布莱克-斯科尔斯-默顿模型

在20世纪70年代初,费希尔·布莱克( Fisher black)、迈伦·斯科尔斯( Myron Scholes)和罗伯特·默顿( Robert Merton)在对欧式股票期权定价研究方面取得了重大的理论突破,提出了针对欧式期权定价的模型,该模型被称为布莱克-斯科尔斯-默顿模型(简称BSM模型)。

模型假设:

在推导出布莱克斯科尔斯-默顿模型时,有以下7个假设前提条件:

一是假设基础资产的股票价格服从几何布朗过程;二是可以卖空证券,并且可以完全运用卖空所获得的资金;三是无交易费用和无税收,所有证券均可无限分割;四是在期权期限内,基础资产无期间收入(比如股票不支付股息);五是市场不存在无风险套利机会;六是证券交易是连续进行的;七是短期无风险利率是一个常数,并对所有期限都是相同的。

微分方程:

此外,模型在推导过程中运用到了一个很重要的微分方程,具体就是

微分方程

其中,式子中的 f 表示看涨期权价格,S表示期权基础资产的价格,r为连续复利的无风险收益率,σ为基础资产价格百分比变化(收益率)的波动率,t是时间变量。

定价公式:

欧式看涨期权的定价公式

看涨期权定价公式

通过看涨-看跌平价关系式,可以得到看跌期权的定价公式:

看跌期权定价公式

其中:

d的计算

c与p分别代表欧式看涨、看跌期权的价格,S0是基础资产在初始0时刻的价格,K是期权的执行价格,r是连续复利的无风险收益率,σ为基础资产价格百分比变化(收益率)的年化波动率,T是期权合约的期限(单位是年),N()表示累积标准正态分布的概率密度。

代码实现基于布莱克-斯科尔斯-默顿模型计算欧式看涨期权、看跌期权定价的函数:

import numpy as np
from scipy.stats import norm

def call_BS(S,K,sigma,r,T):
    '''用bs模型计算欧式看涨期权价格
    S 期权基础资产价格
    K 期权执行价格
    sigma 基础资产价格百分比变化(收益率)的年化波动率
    r 无风险收益率
    T 期权合约剩余年限
    '''
    d1 = (np.log(S/K) + (r + pow(sigma,2)/2)*T) / (sigma*np.sqrt(T))
    d2 = d1 - sigma*np.sqrt(T)
    return S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)

def put_BS(S,K,sigma,r,T):
    '''用bs模型计算欧式看跌期权价格
    S 期权基础资产价格
    K 期权执行价格
    sigma 基础资产价格百分比变化(收益率)的年化波动率
    r 无风险收益率
    T 期权合约剩余年限
    '''
    d1 = (np.log(S/K) + (r + pow(sigma,2)/2)*T) / (sigma*np.sqrt(T))
    d2 = d1 - sigma*np.sqrt(T)
    return K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)

例子:

一份期限为6个月的股票期权,期权的基础资产是工商银行的A股股票,2018年12月28日股票收盘价是5.29元/股,期权的执行价格为6元股,无风险利率为年化4%,股票收益率的年化波动率是24%,运用布莱克斯科尔斯-默顿模型计算看涨期权看跌期权的价格。

call_BS(S=5.29, K=6, sigma=0.24, r=0.04, T=0.5)
put_BS(S=5.29, K=6, sigma=0.24, r=0.04, T=0.5)

二、看涨-看跌期权 平价关系式

具有相同执行价格与期限的欧式看跌期权、看涨期权在价格上有一个重要关系式。

1.两个投资组合

首先,考虑以下两个投资组合在期权合约到期时的盈亏情况。A投资组合:一份欧式看涨期权和一份在T时刻到期的本金为K的零息债券;B投资组合:一份欧式看跌期权和一份基础资产。这里需要假设看涨期权与看跌期权具有相同的执行价格K与相同的合约期限T。

对于A投资组合而言,零息债券在期权合约到期日(T时刻)的价值显然是等于K,而对于看涨期权则分两种情形讨论。

情形1:如果在T时刻,基础资产价格St>K,A投资组合中的欧式看涨期权将被执行,此时,A投资组合的价值是(St-K)+K=St;

情形2:如果在T时刻,基础资产价格St<K,A投资组合中的欧式看涨期权就没有价值,此时A投资组合的价值为K。

对于B投资组合而言,也分两种情形讨论。

情形1:如果在T时刻,基础资产价格St>K,此时,B投资组合中的欧式看跌期权没有价值,此时,B投资组合价值为St,也就是仅剩下基础资产的价值;

情形2:如果在T时刻,基础资产价格St<K,此时,B投资组合中的欧式看跌期权会被行使,此时B投资组合价值为(K-St)+St=K。综合以上的分析,当St>K时,在T时刻两个投资组合的价值均为St;当St<K时在T时刻两个投资组合的价值均为K。换而言之,在T时刻(期权合约到期时),两个投资组合的价值均为max(St, K)

由于A投资组合与B投资组合中的期权均为欧式期权,在期权到期之前均不能行使,既然两个投资组合在T时刻均有相同的收益,在期权合约的存续期内也应该有相同的价值。否则,就会出现无风险套利机会,套利者可以买入价格低的投资组合,与此同时卖空价格高的投资组合进行无风险的套利,无风险套利收益就是等于两个组合价值的差额。

2. 抽象的数学表达式

看涨期权 + 零息债券价格 = 看跌期权 + 基础资产价格

平价共识

代码实现:

def call_parity(p,S,K,r,T):
    '''通过平价关系式用看跌期权价格计算欧式看涨期权价格。
    p:欧式看跌期权价格
    S:期权基础资产价格
    K:执行价格
    r:无风险收益率
    T:合约剩余期限    
    '''
    return p + S - K * np.exp(-r * T)

def put_parity(c,S,K,r,T):
    '''通过平价关系式,用看涨期权价格计算欧式看跌期权价格。
    c:欧式看涨期权价格
    S:期权基础资产价格
    K:执行价格
    r:无风险收益率
    T:合约剩余期限    
    '''
    return c + K * np.exp(-r * T) - S

例子:

假设当前股票价格为20元股,期权的执行价格为18元/股,无风险收益率为每年5%,3个月的欧式看涨期权价格对外报价是2.3元,3个月的欧式看跌期权对外报价是0.3元,期权价格是否合理?

call_parity(p=0.3, S=20, K=18, r=0.05, T=0.25)
==>2.523599591110134
put_parity(c=2.3, S=20, K=18, r=0.05, T=0.25)
==>0.07640040888986732

通过计算,看涨期权被低估,看跌期权则被高估,因此可以通过持有看涨期权的多头头寸并买入零息债券(相当于买入A投资组合),同时持有看跌期权的空头头寸并卖空基础资产(相当于卖空B投资组合),从而实现无风险套利。

最后

以上就是笑点低汉堡为你收集整理的数据科普:定价模型与平价关系式(投资必知必会)的全部内容,希望文章能够帮你解决数据科普:定价模型与平价关系式(投资必知必会)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部