无套利理论与风险中性定价
一、无套利理论
1. 无套利原则简介
-
无套利原则:无套利原则是金融市场中最基本的假设之一,它认为在一个没有交易成本和市场摩擦的有效市场中,无法通过买卖金融工具获得无风险的利润。即:若存在套利机会,市场会迅速调整价格,直到该机会消失。
-
无套利定价:如果市场中存在套利机会,投资者可以通过无风险的买卖组合获得利润。为了避免套利,金融资产的价格必须满足无套利条件。
-
计算无套利价格:假设一个金融衍生品的现货价格为 S 0 S_0 S0,其未来的支付为 X X X(例如期权到期时的履约价格),无套利价格的计算通常涉及到折现未来支付(考虑到无风险利率):
P 0 = X ( 1 + r ) T P_0 = \frac{X}{(1 + r)^T} P0=(1+r)TX
其中, P 0 P_0 P0 是当前价格, X X X 是未来支付, r r r 是无风险利率, T T T 是时间期限。
2. 无套利定价的实例
假设一个股票现价
S
0
=
100
S_0 = 100
S0=100 美元,未来 1 个月(即 1/12 年)内的无风险利率
r
=
5
%
r = 5\%
r=5%,期权到期时的履约价格为
X
=
105
X = 105
X=105 美元。则根据无套利原理,期权的当前无套利价格为:
P
0
=
105
(
1
+
0.05
)
1
12
≈
105
/
1.00417
≈
104.59
P_0 = \frac{105}{(1 + 0.05)^{\frac{1}{12}}} \approx 105 / 1.00417 \approx 104.59
P0=(1+0.05)121105≈105/1.00417≈104.59
这意味着在没有套利机会的市场中,期权的现货价格应该为 104.59 美元。
二、风险中性概率
1. 风险中性概率的定义
-
风险中性概率(Risk-neutral probability)是一种假设,假定所有资产的期望回报率都等于无风险利率。在这种假设下,投资者不关心资产的风险,所有的资产定价都可以使用无风险利率进行折现。
-
风险中性定价:在风险中性世界中,资产价格的演变不再由实际的市场风险和收益率决定,而是根据无风险利率进行计算。也就是说,金融衍生品(例如期权)的定价不依赖于实际的期望收益率,而是依赖于无风险利率和资产的未来价格。
2. 风险中性概率的计算
假设我们有一个简单的二叉树模型,其中股票当前价格为
S
0
=
100
S_0 = 100
S0=100 美元,未来可能涨到
S
u
=
110
S_u = 110
Su=110 或跌到
S
d
=
90
S_d = 90
Sd=90,无风险利率为
r
=
5
%
r = 5\%
r=5%。我们可以计算风险中性概率
p
p
p,使得期望股价等于无风险利率下的股价:
S
0
=
p
S
u
+
(
1
−
p
)
S
d
(
1
+
r
)
S_0 = \frac{p S_u + (1 - p) S_d}{(1 + r)}
S0=(1+r)pSu+(1−p)Sd
代入数值:
100
=
p
×
110
+
(
1
−
p
)
×
90
1.05
100 = \frac{p \times 110 + (1 - p) \times 90}{1.05}
100=1.05p×110+(1−p)×90
解得:
p
=
100
×
1.05
−
90
110
−
90
=
105
−
90
20
=
0.75
p = \frac{100 \times 1.05 - 90}{110 - 90} = \frac{105 - 90}{20} = 0.75
p=110−90100×1.05−90=20105−90=0.75
所以,涨的概率
p
=
0.75
p = 0.75
p=0.75,跌的概率
1
−
p
=
0.25
1 - p = 0.25
1−p=0.25。
三、套利定价模型
1. 套利定价模型的应用
套利定价模型(APT)是一种基于无套利原理的多因子模型,用来定价和衡量资产的风险。例如,对于期权或其他衍生品,套利定价模型通常利用无套利的假设来推导其理论价格。
2. 使用无套利模型计算期权价格
考虑一个欧式看涨期权(call option),其当前价格为 S 0 = 100 S_0 = 100 S0=100 美元,履约价格为 X = 105 X = 105 X=105 美元,期权到期日为 1 个月(即 1/12 年),无风险利率 r = 5 % r = 5\% r=5%,且股票的波动率为 σ = 20 % \sigma = 20\% σ=20%。
利用Black-Scholes模型(适用于无套利市场)来计算期权价格。公式为:
C
=
S
0
Φ
(
d
1
)
−
X
e
−
r
T
Φ
(
d
2
)
C = S_0 \Phi(d_1) - X e^{-rT} \Phi(d_2)
C=S0Φ(d1)−Xe−rTΦ(d2)
其中:
d
1
=
ln
(
S
0
/
X
)
+
(
r
+
σ
2
2
)
T
σ
T
d_1 = \frac{\ln(S_0 / X) + (r + \frac{\sigma^2}{2})T}{\sigma \sqrt{T}}
d1=σTln(S0/X)+(r+2σ2)T
d
2
=
d
1
−
σ
T
d_2 = d_1 - \sigma \sqrt{T}
d2=d1−σT
Φ
(
⋅
)
是标准正态分布的累积分布函数.
\Phi(\cdot) \text{ 是标准正态分布的累积分布函数.}
Φ(⋅) 是标准正态分布的累积分布函数.
计算过程:
- S 0 = 100 S_0 = 100 S0=100, X = 105 X = 105 X=105, T = 1 12 T = \frac{1}{12} T=121 年, r = 5 % r = 5\% r=5%, σ = 20 % \sigma = 20\% σ=20%
- 计算
d
1
d_1
d1 和
d
2
d_2
d2
d 1 = ln ( 100 / 105 ) + ( 0.05 + 0. 2 2 2 ) × 1 12 0.2 × 1 12 ≈ − 0.1109 d_1 = \frac{\ln(100/105) + (0.05 + \frac{0.2^2}{2}) \times \frac{1}{12}}{0.2 \times \sqrt{\frac{1}{12}}} \approx -0.1109 d1=0.2×121ln(100/105)+(0.05+20.22)×121≈−0.1109
d 2 = d 1 − 0.2 × 1 12 ≈ − 0.1109 − 0.0577 = − 0.1686 d_2 = d_1 - 0.2 \times \sqrt{\frac{1}{12}} \approx -0.1109 - 0.0577 = -0.1686 d2=d1−0.2×121≈−0.1109−0.0577=−0.1686 - 计算期权价格:
C = 100 × Φ ( − 0.1109 ) − 105 × e − 0.05 × 1 12 × Φ ( − 0.1686 ) C = 100 \times \Phi(-0.1109) - 105 \times e^{-0.05 \times \frac{1}{12}} \times \Phi(-0.1686) C=100×Φ(−0.1109)−105×e−0.05×121×Φ(−0.1686)
通过查标准正态分布表或利用 Python 计算得到:
Φ ( − 0.1109 ) ≈ 0.4563 , Φ ( − 0.1686 ) ≈ 0.4332 \Phi(-0.1109) \approx 0.4563, \quad \Phi(-0.1686) \approx 0.4332 Φ(−0.1109)≈0.4563,Φ(−0.1686)≈0.4332
C ≈ 100 × 0.4563 − 105 × e − 0.0042 × 0.4332 ≈ 45.63 − 45.17 ≈ 0.46 C \approx 100 \times 0.4563 - 105 \times e^{-0.0042} \times 0.4332 \approx 45.63 - 45.17 \approx 0.46 C≈100×0.4563−105×e−0.0042×0.4332≈45.63−45.17≈0.46
答案:该期权的价格约为 0.46 美元。
四、课堂活动
活动目标:
- 通过案例分析和计算,学生将掌握无套利原理和风险中性定价的实际应用。
- 通过编程模拟,学生能够深入理解风险中性概率和套利定价模型。
活动安排:
- 案例分析:
- 题目:给定现货价格 S 0 = 100 S_0 = 100 S0=100,履约价格 X = 105 X = 105 X=105,模拟 3 种不同的风险中性概率(通过改变涨跌幅度和无风险利率),并计算不同市场条件下的期权价格。
- 计算步骤:
- 给定不同的无风险利率和波动率,使用 Black-Scholes 模型计算期权价格。
- 编程任务:
- 学生通过编写 Python 程序模拟期权定价,分别绘制不同无风险利率和波动率对期权价格的影响。
五、Python 代码实现示例
以下 Python 代码用于计算欧式看涨期权的价格,并分析无风险利率、波动率对期权价格的影响。
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
# Black-Scholes 定价模型函数
def black_scholes_call(S0, X, T, r, sigma):
d1 = (np.log(S0 / X) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
return S0 * stats.norm.cdf(d1) - X * np.exp(-r * T) * stats.norm.cdf(d2)
# 参数设置
S0 = 100 # 现货价格
X = 105 # 履约价格
T = 1/12 # 1个月到期
r = 0.05 # 无风险利率
sigma = 0.2 # 波动率
# 计算期权价格
C = black_scholes_call(S0, X, T, r, sigma)
print(f"欧式看涨期权价格: {C:.2f}")
# 绘制不同波动率下的期权价格
sigma_range = np.linspace(0.1, 0.5, 100)
option_prices = [black_scholes_call(S0, X, T, r, sigma) for sigma in sigma_range]
plt.plot(sigma_range, option_prices)
plt.title("期权价格随波动率变化")
plt.xlabel("波动率")
plt.ylabel("期权价格")
plt.grid(True)
plt.show()
代码说明:
black_scholes_call
函数计算欧式看涨期权价格;- 通过
matplotlib
绘制波动率对期权价格的影响图。
六、总结与讨论
- 无套利原理:
- 通过案例计算理解