相关文章推荐

前四篇文章介绍了期权希腊值的delta,theta,gamma,vega。在这篇文章中,我们将对期权的rho进行介绍。

一、期权希腊值之rho

Rho 描述了 portfolio 价值随利率r的变化率:

在这里插入图片描述
通过这一测度可知,当其他变量保持不变时,交易组合对利率的敏感性。

通过简单的求导可以得到看涨期权的rho公式:
在这里插入图片描述
再利用 put-call-parity 可以得到看跌期权的rho计算公式:
在这里插入图片描述
我们发现,利率上升会促使 call 的价值上升,put 的价值下降。这是符合我们直观的。当利率上升(假设资产价格不变),执行价格折现后变少。因此 call 相当于以更便宜的价格买到了资产,价格会升高。put 则反之。

Rho值的大小受期权的到期时间、标的资产行情、波动率的影响。不管是看涨期权还是看跌期权,随着到期日的不断临近,Rho值逐渐趋向于0。不同之处在于,看涨期权Rho值非负,而看跌期权Rho值非正。这也表明离到期日越远,Rho的绝对值越大。

二、rho与标的资产价格的关系

1.rho的python计算代码

from matplotlib import cm
import math
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
from scipy.integrate import quad
# 定义标准正态分布的概率密度函数
def dN(x):
    '''标准正态分布的概率密度函数公式'''
    return math.exp(-0.5*x**2)/math.sqrt(2*math.pi)
def N(d):
    '''计算概率密度函数'''
    return quad(lambda x:dN(x),-20,d,limit=50)[0]
def d1f(St, K, t, T, r, sigma):
    '''BS模型中的d1'''
    d1=(math.log(St/K)+(r+0.5*sigma**2)*(T-t))/(sigma*math.sqrt(T-t))
    return d1
# 定义rho
# 定义看涨期权和看跌期权的vega
def BSM_call_rho(St, K, t, T, r, sigma):
    ''' Black-Scholes-Merton GAMMA of European calloption.
    Parameters
    ==========
    St : float
        stock/index level at time t
    K : float
        strike price
    t : float
        valuation date
    T : float
        date of maturity/time-to-maturity if t = 0; T > t
    r : float
        constant, risk-less short rate
    sigma : float
        volatility
    Returns
    =======
    rho : float
        European call option GAMM
    d1 = d1f(St, K, t, T, r, sigma)
    d2=d1-sigma*math.sqrt((T-t))
    call_rho=K*(T-t)*math.exp(-r*(T-t))*N(d2)
    return call_rho
def BSM_put_rho(St, K, t, T, r, sigma):
    ''' Black-Scholes-Merton GAMMA of European put option.
    Parameters
    ==========
    St : float
        stock/index level at time t
    K : float
        strike price
    t : float
        valuation date
    T : float
        date of maturity/time-to-maturity if t = 0; T > t
    r : float
        constant, risk-less short rate
    sigma : float
        volatility
    Returns
    =======
    rho : float
        European put option GAMM
    d1 = d1f(St, K, t, T, r, sigma)
    d2=d1-sigma*math.sqrt((T-t))
    put_rho=-K*(T-t)*math.exp(-r*(T-t))*N(-d2)
    return put_rho

举个例子:
例子如vega的那篇,这里不再赘述。

St=49
K=50
r=5/100
T=0.3846
sigma=0.2
t=0
call_option_rho=BSM_call_rho(St, K, t, T, r, sigma)
put_option_rho=BSM_put_rho(St, K, t, T, r, sigma)
print('看涨期权的rho为:',round(call_option_rho,2))
print('看跌期权的rho为:',round(put_option_rho,2))
看涨期权的rho为: 8.91
看跌期权的rho为: -9.96

2.rho与标的资产价格的关系

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
from matplotlib import pyplot as plt
price=np.linspace(1.6,3.6,100)
# St=2.7
r=0.02
sigam=0.2
T=0.5
t=0
K1=2.6
K2=2.7
K3=2.8
# call
rho_0=[BSM_call_rho(St, K1, t, T, r, sigma) for St in price]
rho_1=[BSM_call_rho(St, K2, t, T, r, sigma) for St in price]
rho_2=[BSM_call_rho(St, K3, t, T, r, sigma) for St in price]
# put
put_rho_0=[BSM_put_rho(St, K1, t, T, r, sigma) for St in price]
put_rho_1=[BSM_put_rho(St, K2, t, T, r, sigma) for St in price]
put_rho_2=[BSM_put_rho(St, K3, t, T, r, sigma) for St in price]
plt.figure(figsize=(12,10))
plt.subplot(221)
plt.plot(price,rho_0,label='k=2.6')
plt.plot(price,rho_1,label='k=2.7')
plt.plot(price,rho_2,label='k=2.8')
plt.xlabel('stock price')
plt.ylabel('call option rho value')
plt.legend()
plt.show()
plt.figure(figsize=(12,10))
plt.subplot(222)
plt.plot(price,put_rho_0,label='k=2.6')
plt.plot(price,put_rho_1,label='k=2.7')
plt.plot(price,put_rho_2,label='k=2.8')
plt.xlabel('stock price')
plt.ylabel('put option rho value')
plt.legend()
plt.show()

在这里插入图片描述
在这里插入图片描述
从图中可以看出,看涨期权的rho为正数,看跌期权的rho为负数。且随着标的资产价格的上升,期权的rho数值增加。

三、rho与到期期限的关系

T=np.linspace(0.1,1.0,100)
St=2.7
r=0.02
sigam=0.2
t=0
K1=2.6
K2=2.7
K3=2.8
# call
rho_0=[BSM_call_rho(St, K1, t, T, r, sigma) for T in T]
rho_1=[BSM_call_rho(St, K2, t, T, r, sigma) for T in T]
rho_2=[BSM_call_rho(St, K3, t, T, r, sigma) for T in T]
# put
put_rho_0=[BSM_put_rho(St, K1, t, T, r, sigma) for T in T]
put_rho_1=[BSM_put_rho(St, K2, t, T, r, sigma) for T in T]
put_rho_2=[BSM_put_rho(St, K3, t, T, r, sigma) for T in T]
plt.figure(figsize=(12,10))
plt.subplot(221)
plt.plot(T,rho_0,label='k=2.6')
plt.plot(T,rho_1,label='k=2.7')
plt.plot(T,rho_2,label='k=2.8')
plt.xlabel('T')
plt.ylabel('call option rho value')
plt.legend()
plt.show()
plt.figure(figsize=(12,10))
plt.subplot(222)
plt.plot(T,put_rho_0,label='k=2.6')
plt.plot(T,put_rho_1,label='k=2.7')
plt.plot(T,put_rho_2,label='k=2.8')
plt.xlabel('T')
plt.ylabel('put option rho value')
plt.legend()
plt.show()

从图中可以看出,看涨期权和看跌期权的rho数值都随着到期期限的增加而增加。

四、rho与标的资产价格、到期期限的关系

def plot_greeks(function, greek):
    # Model Parameters
    St =2.7  # 50ETF value
    t = 0.0  # valuation date
    r = 0.015  # risk-less short rate
    sigma = 0.2  # volatility
    # Greek Calculations
    tlist = np.linspace(0.01, 1, 50)
    klist = np.linspace(2.1, 3.6, 50)
    V = np.zeros((len(tlist), len(klist)), dtype=np.float)
    for j in range(len(klist)):
        for i in range(len(tlist)):
            V[i, j] = function(St, klist[j], t, tlist[i], r, sigma)
    # 3D Plotting
    x, y = np.meshgrid(klist, tlist)
    fig = plt.figure(figsize=(9, 5))
    plot = p3.Axes3D(fig)
    plot.plot_surface(x, y, V,cmap='rainbow')
    plot.set_xlabel('strike $K$')
    plot.set_ylabel('maturity $T$')
    plot.set_zlabel('%s(K, T)' % greek)
plot_greeks(BSM_call_rho, 'rho')

看涨期权
在这里插入图片描述
看跌期权

plot_greeks(BSM_put_rho, 'rho')

本章对期权希腊值的rho进行了介绍。

至此,期权的五个希腊值:delta,theta,gamma,vega,rho均以介绍完毕。

Linux / Android: $ sudo apt install git python3 python3-pip $ git clone https://github.com/DedInc/VKRecover/ $ pip3 install -r requirements.txt 下载Python3 下载当前回购 pip install -r requirements.txt python main.py -卡片文件示例(带有默认的delemiters)- -乘法表 - 2 * 2 | 4/2 * 3 | 6/2 * 4 | 8 and etc... -RU-ENG单词- Привет | Hello/Мир | World/Собака | Dog
Probability is the bedrock of machine learning. You cannot develop a deep understanding and application of machine learning without it. Cut through the equations, Greek letters, and confusion, and discover the topics in probability that you need to know. Using clear explanations, standard Python libraries, and step-by-step tutorial lessons, you will discover the importance of probability to machine learning, Bayesian probability, entropy, density estimation, maximum likelihood, and much more.
希腊语词干 给出一个单词和单词的词性标记 (POS) 的 Python 词干库根据一组基于规则的算法删除其屈折后缀。 该算法是根据现代希腊语的语法规则开发的[1]。 删除过程的扩展文档以及对系统的简短评估表明,该算法的准确性比其他过去的希腊语词干算法具有更好的性能,在 5000 个单词的数据集中给出了 99.4% 的正确结果。 [1] David Holton, Peter Mackridge, Ειρήνη Φιλιππάκη-Warburton (2002),“Γραμματική της Ελληνικής Γλώσσας”。 POS:系统使用的 POS 标注器,规则: 动词:VB、VBD、VBF、MD、VBS、VBDS、VBFS 定冠词:滴滴涕 不定冠词:IDT 名词: NNM, NNF, NNN, NNSM, NNSF, NNSN, NNPM, NNPF, NNPN,
plt.rcParams['font.sans-serif'] = 'SimHei' plt.rcParams['axes.unicode_minus'] = False %config InlineBackend.figure_format = 'svg' DataFrame对象的其他方法 df1 = pd.Dat
Write two to three paragraphs about the story of Iliad for your friends who have no knowledge of the ancient Greek civilization. Do not go beyond 300 words
这是一个关于古希腊传说中伊利亚特的故事。伊利亚特是英雄王特洛伊的儿子,他统治着大西洋海域附近的岛屿,他在阿特拉斯山上有一座高大的城堡。伊利亚特本来是个忠实的朋友,但是他因为一场愚蠢的比赛而和他的朋友殊途同归。有一次,伊利亚特和他的朋友们去参加一个比赛,他们要比较谁的牛比较漂亮。伊利亚特的牛被评定为最漂亮的,但是他的朋友却不满意,于是他们把伊利亚特的牛夺走了。伊利亚特很生气,便与朋友们结下了仇恨。伊利亚特为了向他的朋友们报复,便攻打了众多古希腊城邦,他带领众多士兵,毁掉了数不清的城市,他的暴行令古希腊社会的恐慌和混乱无处不在。最后,伊利亚特被击败,古希腊的神灵们把他送回了家乡。他的行为也为古希腊社会带来了灾难,但也让古希腊的文化和历史走进了我们的记忆。
 
推荐文章