【FinE】期权希腊字母与风险对冲

风险对冲

风险对冲是指通过投资或者购买与标的资产收益波动负相关的某种资产或者衍生证券,来冲销标的资产潜在损失的一种策略.

Delta对冲

Δ \Delta Δ定义为其他变量不变时期权价格变化 Δ c \Delta c Δc与标的资产价格变化 Δ S \Delta S ΔS的比率
Δ = Δ c Δ S \Delta=\frac{\Delta c}{\Delta S} Δ=ΔSΔc
在使用Delta对冲风险时,需要定期调整对冲头寸,否则会承担头寸风险暴露风险.
不支付红利的股票欧式看涨期权的Delta为
Δ = N ( d 1 ) \Delta=N(d_1) Δ=N(d1)
在对一个看涨期权空头进行 Δ \Delta Δ对冲时,在任何时候需要同时持有数量为 N ( d 1 ) N(d_1) N(d1)的标的资产多头.
不支付红利的股票欧式看跌期权 Δ \Delta Δ
Δ = N ( d 1 ) − 1 < 0 \Delta=N(d_1)-1<0 Δ=N(d1)1<0
看跌期权的多头需要用标的资产的多头头寸来对冲风险.

Theta对冲

Θ \Theta Θ定义为在其他变量不变期间期权价格变化相对于权利期变化的比率
Θ = ∂ c ∂ ( T − t ) \Theta=\frac{\partial c}{\partial(T-t)} Θ=(Tt)c
不支付红利的股票欧式看涨期权的 Θ \Theta Θ
Θ = ∂ c ∂ ( T − t ) = − S n ( d 1 ) 1 2 σ 1 T − t − r K e − r ( T − t ) N ( d 2 ) \Theta=\frac{\partial c}{\partial(T-t)}=-Sn(d_1)\frac{1}{2}\sigma\frac{1}{\sqrt{T-t}}-rKe^{-r(T-t)}N(d_2) Θ=(Tt)c=Sn(d1)21σTt 1rKer(Tt)N(d2)
其中
n ( x ) = 1 2 π e − x 2 2 n(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}} n(x)=2π 1e2x2
不支付红利的股票欧式看跌期权的 Θ \Theta Θ
Θ = ∂ ∂ ( T − t ) = − S n ( d 1 ) 1 2 σ 1 T − t + r K e − r ( T − t ) N ( − d 2 ) \Theta=\frac{\partial}{\partial (T-t)}=-Sn(d_1)\frac{1}{2}\sigma\frac{1}{\sqrt{T-t}}+rKe^{-r(T-t)}N(-d_2) Θ=(Tt)=Sn(d1)21σTt 1+rKer(Tt)N(d2)

Gamma对冲

Γ \Gamma Γ反映了资产价格变动对期权 Δ \Delta Δ变动的影响程度
Γ = ∂ Δ ∂ S \Gamma=\frac{\partial \Delta}{\partial S} Γ=SΔ
Γ \Gamma Γ大小反映了为了保持 Δ \Delta Δ中性而需要调整的头寸,不支付红利的欧式看涨期权和看跌期权的 Γ \Gamma Γ均为
Γ = n ( d 1 ) S σ T − t \Gamma=\frac{n(d_1)}{S\sigma\sqrt{T-t}} Γ=SσTt n(d1)

Vega对冲

Vega定义为其他量不变时,期权价格 c c c变化对标的资产波动率 σ \sigma σ变化的比率
V e g a = ∂ c ∂ σ Vega=\frac{\partial c}{\partial \sigma} Vega=σc
投资组合管理者需要缩小期权的Vega,将波动率的变化造成的损失降低到最小
V e g a = S n ( d 1 ) T − t Vega=Sn(d_1)\sqrt{T-t} Vega=Sn(d1)Tt

Rho对冲

ρ \rho ρ定义为其他变量不变时,期权价格 c c c变化与利率 r r r变化之间的比率,即
ρ = ∂ c ∂ r \rho=\frac{\partial c}{\partial r} ρ=rc
一般看涨期权的 ρ \rho ρ值大于零,看跌期权的 ρ \rho ρ值小于零.
不支付红利股票的欧式看涨期权 ρ \rho ρ值为
ρ = K ( T − t ) N ( d 2 ) e − r ( T − t ) \rho=K(T-t)N(d_2)e^{-r(T-t)} ρ=K(Tt)N(d2)er(Tt)
不支付红利股票的欧式看跌期权 ρ \rho ρ值为
ρ = − K ( T − t ) N ( − d 2 ) e − r ( T − t ) \rho=-K(T-t)N(-d_2)e^{-r(T-t)} ρ=K(Tt)N(d2)er(Tt)

案例

考虑一个不支付红利股票的欧式看涨期权,其标的资产价格是 50 50 50,行权价格是 50 50 50,无风险利率是 10 % 10\% 10%,年波动利率是 30 % 30\% 30%,权利期间还有6个月,求相关参数

解析

预处理参数 d 1 , d 2 d_1, d_2 d1,d2 n ( x ) n(x) n(x)
d 1 = ln ⁡ ( S / K ) + ( r + σ 2 / 2 ) ( T − t ) σ T − t d 2 = ln ⁡ ( S / K ) + ( r − σ 2 / 2 ) ( T − t ) σ T − t = d 1 − σ T − t n ( d 1 ) = 1 2 π e − d 1 2 2 \begin{aligned} &d_1=\frac{\ln(S/K)+(r+\sigma^2/2)(T-t)}{\sigma\sqrt{T-t}}\\ &d_2=\frac{\ln(S/K)+(r-\sigma^2/2)(T-t)}{\sigma\sqrt{T-t}}=d_1-\sigma\sqrt{T-t}\\ &n(d_1)=\frac{1}{\sqrt{2\pi}}e^{-\frac{d_1^2}{2}} \end{aligned} d1=σTt ln(S/K)+(r+σ2/2)(Tt)d2=σTt ln(S/K)+(rσ2/2)(Tt)=d1σTt n(d1)=2π 1e2d12
根据公式计算对冲参数
Δ = N ( d 1 ) Θ = − 50 n ( d 1 ) ∗ 1 2 ∗ σ ∗ 1 T − t − 0.1 ∗ 50 ∗ e − 0.1 ∗ 0.5 N ( d 2 ) Γ = n ( d 1 ) 50 ∗ 0.3 ∗ 0.5 V = 50 ∗ n ( d 1 ) ∗ 0.5 ρ = 50 ∗ 0.5 ∗ N ( d 2 ) ∗ e − 0.1 ∗ 0.5 \begin{aligned} &\Delta=N(d_1)\\ &\Theta=-50n(d_1)*\frac{1}{2}*\sigma*\frac{1}{\sqrt{T-t}}-0.1*50*e^{-0.1*0.5}N(d_2)\\ &\Gamma=\frac{n(d_1)}{50*0.3*\sqrt{0.5}}\\ &V=50*n(d_1)*\sqrt{0.5}\\ &\rho=50*0.5*N(d_2)*e^{-0.1*0.5} \end{aligned} Δ=N(d1)Θ=50n(d1)21σTt 10.150e0.10.5N(d2)Γ=500.30.5 n(d1)V=50n(d1)0.5 ρ=500.5N(d2)e0.10.5
cpp计算对冲参数

#include<iostream>
#include<vector>
#include<cmath>
#include<cstring>
#include<cassert>
#include<iomanip>
#include<random>
#include<map>
using namespace std;

const double pi=3.1415926;

double N(const double &x){
    if(x>6.0) return 1.0;
    if(x<-6.0) return 0.0;
    double b1=0.31938153;
    double b2=-0.356563782;
    double b3=1.781477937;
    double b4=-1.821255978;
    double b5=1.330274429;
    double p=0.2316419;
    double c=1.0/sqrt(2*pi);
    double a=fabs(x);
    double k=1.0/(1+a*p);
    double b=c*exp(-pow(x, 2)/2.0);
    double n=((((b5*k+b4)*k+b3)*k+b2)*k+b1)*k;
    n=1.0-b*n;
    if(x<0.0) n=1.0-n;
    return n;
}

void hedge_parameters(const double &S, const double &K, const double &r, const double &sigma, const double &tm, double &Delta, double &Gamma, double &Theta, double &Vega, double &Rho){
    double d1=(log(S/K)+(r+pow(sigma, 2)/2)*tm)/(sigma*sqrt(tm));
    double d2=d1-sigma*sqrt(tm);
    double nd1=exp(-pow(d1, 2)/2)/(sqrt(2*pi));
    Delta=N(d1);
    Gamma=nd1/(S*sigma*sqrt(tm));
    Theta=-(S*sigma*nd1)/(2*sqrt(tm))-r*K*exp(-r*tm)*N(d2);
    Vega=S*sqrt(tm)*nd1;
    Rho=K*tm*exp(-r*tm)*N(d2);
}

int main(){
    double S=50, K=50, r=0.10, sigma=0.30, tm=0.5;
    double Delta, Gamma, Theta, Vega, Rho;
    hedge_parameters(S, K, r, sigma, tm, Delta, Gamma, Theta, Vega, Rho);
    cout<<"Delta: "<<Delta<<endl;
    cout<<"Gamma: "<<Gamma<<endl;
    cout<<"Theta: "<<Theta<<endl;
    cout<<"Vega: "<<Vega<<endl;
    cout<<"Rho: "<<Rho<<endl;
    
    return 0;
}

python计算对冲参数

from scipy.stats import norm as N
from scipy.stats import multivariate_normal as mvn
from math import log, exp, pi
import numpy as np

def hedge_p(S, K, r, sigma, tm):
    d1=(log(S/K)+(r+sigma**2/2)*(tm))/(sigma*sqrt(tm))
    d2=d1-sigma*sqrt(tm)
    nd1=exp(-d1**2/2)/sqrt(2*pi)
    
    Delta=N.cdf(d1)
    Gamma=nd1/(S*sigma*sqrt(tm))
    Theta=-(S*sigma*nd1)/(2*sqrt(tm))-r*K*exp(-r*tm)*N.cdf(d2)
    Vega=S*sqrt(tm)*nd1
    Rho=K*tm*exp(-r*tm)*N.cdf(d2)
    
    print('Delta: {}'.format(Delta))
    print('Gamma: {}'.format(Gamma))
    print('Theta: {}'.format(Theta))
    print('Vega: {}'.format(Vega))
    print('Rho: {}'.format(Rho))
    
hedge_p(50, 50, 0.1, 0.3, 0.5)

参考资料

金融资产的定价理论与数值计算 北京大学出版社 田文昭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Quant0xff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值