🎯要点
- 🎯资产价格动态数学随机模型:🖊价格几何布朗运动过程积分 | 🖊布朗运动和几何布朗运动随时间概率密度 | 🖊几何布朗运动离散过程 | 🖊电动车历史股票价值及预期。
- 🎯金融衍生品估值偏微分方程:🖊期权合约 | 🖊计算看涨期权期权面,显示对冲参数及预期价格 | 🖊计算看跌期权的期权面 | 🖊对冲看涨期权投资组合 | 🖊再平衡频率对投资组合方差的影响。
- 🎯期权价格与隐含概率密度函数关系模型:🖊看涨期权隐含波动率 | 🖊看涨期权敏感度值曲面 | 🖊隐含波动率曲面 | 🖊看涨期权价值函数偏微分变化趋势 | 🖊看涨期权价格执行价格对比 | 🖊哈根隐含波动率参数化下的不同隐含波动率形状 | 🖊外汇市场报价数据插值 | 🖊局部波动模型模拟。
- 🎯价格泊松过程中偏积分微分方程:🖊价格跳跃扩散的蒙特卡罗路径和补偿泊松过程 | 🖊默顿模型,跳跃扩散过程 | 🖊跳跃扩散过程概率密度三维分布和二维动态 | 🖊默顿跳跃扩散模型对隐含波动率影响 | 🖊对冲看涨期权价格波动 | 🖊不同对冲频率对损益方差的影响。
- 🎯傅立叶余弦级数和风险中性估值期权定价方法 | 🎯多维期权定价和风险中性措施
- 🎯C++和Python计算金融数学方程算法模型
🍇Python风险中性资产定价
令
β
=
1
/
(
1
+
ρ
)
\beta=1 /(1+\rho)
β=1/(1+ρ) 为跨期贴现因子,其中
ρ
\rho
ρ 是主体对未来贴现的利率。为一单位除息资产定价的基本风险中性资产定价方程为
p
t
=
β
E
t
[
d
t
+
1
+
p
t
+
1
]
p_t=\beta E _t\left[d_{t+1}+p_{t+1}\right]
pt=βEt[dt+1+pt+1]
这里
E
t
[
y
]
E _t[y]
Et[y] 表示
y
y
y 的最佳预测,以时间
t
t
t 可用的信息为条件。
最简单的情况是恒定、非随机股息流的风险中性价格
d
t
=
d
>
0
d_t=d>0
dt=d>0。从上式中删除期望并向前迭代得出,
p
t
=
β
(
d
+
p
t
+
1
)
=
β
(
d
+
β
(
d
+
p
t
+
2
)
)
⋮
=
β
(
d
+
β
d
+
β
2
d
+
⋯
+
β
k
−
2
d
+
β
k
−
1
p
t
+
k
)
\begin{aligned} p_t & =\beta\left(d+p_{t+1}\right) \\ & =\beta\left(d+\beta\left(d+p_{t+2}\right)\right) \\ & \vdots \\ & =\beta\left(d+\beta d+\beta^2 d+\cdots+\beta^{k-2} d+\beta^{k-1} p_{t+k}\right) \end{aligned}
pt=β(d+pt+1)=β(d+β(d+pt+2))⋮=β(d+βd+β2d+⋯+βk−2d+βk−1pt+k)
如果
lim
k
→
+
∞
β
k
−
1
p
t
+
k
=
0
\lim _{k \rightarrow+\infty} \beta^{k-1} p_{t+k}=0
limk→+∞βk−1pt+k=0,该序列收敛为
p
ˉ
:
=
β
d
1
−
β
\bar{p}:=\frac{\beta d}{1-\beta}
pˉ:=1−ββd
这是股息不变情况下的均衡价格。
考虑一个增长的非随机股息过程 d t + 1 = g d t d_{t+1}=g d_t dt+1=gdt,其中 0 < g β < 1 0<g \beta<1 0<gβ<1。虽然当股息随着时间的推移而增长时,价格通常不会保持不变,但价格股息率却可以。
如果我们猜到这一点,将
v
t
=
v
v_t=v
vt=v 代入下式以及我们的其他假设,我们得到
v
=
β
g
(
1
+
v
)
v=\beta g(1+v)
v=βg(1+v)。
v
t
=
E
t
[
m
t
+
1
d
t
+
1
d
t
(
1
+
v
t
+
1
)
]
v_t= E _t\left[m_{t+1} \frac{d_{t+1}}{d_t}\left(1+v_{t+1}\right)\right]
vt=Et[mt+1dtdt+1(1+vt+1)]
由于
β
g
<
1
\beta g<1
βg<1,我们有唯一的正解:
v
=
β
g
1
−
β
g
v=\frac{\beta g}{1-\beta g}
v=1−βgβg
价格为:
p
t
=
β
g
1
−
β
g
d
t
p_t=\frac{\beta g}{1-\beta g} d_t
pt=1−βgβgdt
在这个例子中,如果我们采用
g
=
1
+
κ
g=1+\kappa
g=1+κ 并让
ρ
:
=
1
/
β
−
1
\rho:=1 / \beta-1
ρ:=1/β−1,那么价格就变成
p
t
=
1
+
κ
ρ
−
κ
d
t
p_t=\frac{1+\kappa}{\rho-\kappa} d_t
pt=ρ−κ1+κdt
这就是所谓的戈登公式。
代码实现一个著名的定价模型:
class PricingModel:
def __init__(self, β=0.96, mc=None, γ=2.0, g=np.exp):
self.β, self.γ = β, γ
self.g = g
# A default process for the Markov chain
if mc is None:
self.ρ = 0.9
self.σ = 0.02
self.mc = qe.tauchen(n, self.ρ, self.σ)
else:
self.mc = mc
self.n = self.mc.P.shape[0]
def test_stability(self, Q):
sr = np.max(np.abs(eigvals(Q)))
if not sr < 1 / self.β:
msg = f"Spectral radius condition failed with radius = {sr}"
raise ValueError(msg)
def tree_price(ap):
# Simplify names, set up matrices
β, γ, P, y = ap.β, ap.γ, ap.mc.P, ap.mc.state_values
J = P * ap.g(y)**(1 - γ)
# Make sure that a unique solution exists
ap.test_stability(J)
# Compute v
I = np.identity(ap.n)
Ones = np.ones(ap.n)
v = solve(I - β * J, β * J @ Ones)
return v
这是 v v v 作为 γ \gamma γ 几个值的状态函数的图,具有正相关的马尔可夫过程和 g ( x ) = exp ( x ) g(x)=\exp (x) g(x)=exp(x),
γs = [1.2, 1.4, 1.6, 1.8, 2.0]
ap = AssetPriceModel()
states = ap.mc.state_values
fig, ax = plt.subplots()
for γ in γs:
ap.γ = γ
v = tree_price(ap)
ax.plot(states, v, lw=2, alpha=0.6, label=rf"$\gamma = {γ}$")
ax.set_title('Price-dividend ratio as a function of the state')
ax.set_ylabel("price-dividend ratio")
ax.set_xlabel("state")
ax.legend(loc='upper right')
plt.show()