神经网络期权对冲

Github链接:https://github.com/ithakis/Option-Replicating-Portfolio-with-Neural-Networks/blob/main/Value%20of%20portfolio%20using%20BS.ipynb

一、说明

如何使用蒙特卡洛和神经网络对冲期权?该项目分为两个步骤:

  • 准蒙特卡洛(Sobol)的高级蒙特卡洛技术,用于股票的路径模拟。
  • 在我们计算期权在时间 T 的收益后。我们如何创建一个复制的投资组合策略,以在t=0时对期权进行估值。

二、准蒙特卡洛

由于期权值近似平均值的 SE 随我们模拟的路径数量的平方根而减小。我们应该花一些时间使用更先进的技术来减少估计中的方差。这些技术是对立变量、对照变量和分层抽样。您可以查看此内容,以了解有关财务应用中MC中方差减少技术的更多信息。(Pseudo vs Quasi Random Numbers – QuantPy)

使用以下代码段,我们可以生成正态分布变量,以使用几何布朗运动进行S(股票)对数的库存路径模拟

GBM 用于股票的日志

import scipy.stats as stats
from scipy.stats import qmc

def sobol_norm(m, d=1):
    sampler = qmc.Sobol(d, scramble=True)
    x_sobol = sampler.random_base2(m)
    return stats.norm.ppf(x_sobol)

""" Simulate Stock Data """
W       = sobol_norm(n_paths, d=n_time_steps)
S_paths = np.empty((2**n_paths, n_time_steps))
S_paths[:,0] = S
for t in range(1,n_time_steps):
    S_paths[:,t] = (S_paths[:,t-1] * np.exp((r-sigma**2/2)*dt + sigma * np.sqrt(dt)*W[:,t] ).squeeze())

股票价格的蒙特卡罗模拟

现在对于这个例子,使用了欧洲期权,其中它在时间 T 的收益计算为 max(S_T -K, 0)。

三、神经网络

        复制理论用于期权的价值等于股票数量(phi)和债券数量(psi)的情况。由于我们有超过 2 种可能的结果S_t,现在问题已转化为误差的最小化。我们尝试找到值 psi 和 phi,它们将尽可能接近地复制V_t的值。

        使用股票和债券复制期权投资组合

        对于任何以前使用过机器学习的人来说,现在应该发出警报,关于我们如何尝试安装一个函数来执行这项任务。

        我们试图最小化的问题

        (1) 从 t=T-1 开始,此时已知 V_{t+1}

        (2)传递给NN:S_{t+1},B_{t+1},V_{t+1}来拟合。

        (2) Predict V_{t}, 给定 S_{t}, B_{t}

        (3) 使用预测的 V_{t} 作为步骤 1 的输入

        (4) 重复直到计算出 t=0 处的值

3.1 神经网络架构

       S_{t} 通过 NN 架构,该架构输出估计的psi 和 phi 值,然后用 S_{t} 和 B_{t} 点缀以计算 V_{t}。在此示例中,S 形激活远远优于 ReLU。但是,没有执行广泛的超参数调整。

        使用的超参数:

  • “MSE”作为损失函数
  • 亚当与 lr:1e-2
  • 每个拟合时间步长的周期数:10(第一步为 300 个除外)
  • 批量大小:512(大批量大小对于确保每次反向传播的代表性采样非常重要)

        一些有助于减少错误的技巧和提示:

  • 在选项期间多次重复拟合。在此示例中,重复了 5 次。
  • 在第一次执行拟合时具有大量纪元。由于值近似中的误差传播其非常理想,因此允许网络在第一次尝试中尽可能多地学习参数。之后,可以减少周期以节省训练时间。
  • 在所有时间段内执行自举,以估计所有时间步长的平均投资组合价值的平均标准。
Model: "Replicating_Portfolio"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input: S_{t}  (InputLayer)      [(None, 1)]          0                                            
__________________________________________________________________________________________________
Sigmoid_1 (Dense)               (None, 8)            16          input: S_{t} [0][0]              
__________________________________________________________________________________________________
Sigmoid_2 (Dense)               (None, 8)            72          Sigmoid_1[0][0]                  
__________________________________________________________________________________________________
linear (Dense)                  (None, 2)            18          Sigmoid_2[0][0]                  
__________________________________________________________________________________________________
input: S_{t}, B_{t}  (InputLaye [(None, 2)]          0                                            
__________________________________________________________________________________________________
V_t (Dot)                       (None, 1)            0           linear[0][0]                     
                                                                 input: S_{t}, B_{t} [0][0]       
==================================================================================================
Total params: 106
Trainable params: 106
Non-trainable params: 0
__________________________________________________________________________________________________ 

        在下图中,您可以看到股票在 t=0 期间的投资组合价值。值得注意的是,在算法采取的初始向后步骤中,V_{t}(红线)的预测误差较高。如果不同的神经网络架构师或不同的马力进一步最小化误差。该值将更准确地收敛。

实验中使用的参数:

  • S = 100, K = 100, T = 1.0, r = .055, sigma = 0.3, dt = 1/100

由于我们正在评估欧洲期权,我们可以分析计算其价值,等于:

  • 布莱克-斯科尔斯欧洲电话:14.47320
  • 复制投资组合欧元看涨期权:14.49997
  • 复制-P 标准误差 = 0.0508
  • 10,000 个 MC 路径、100 个时间步长和 5 个循环的总执行时间:~14 分钟(M1 上的张量流,启用金属和 GPU)

3.2 对冲参数

“线性”层的层输出可用于匹配需要在时间 t = 0 购买的股票和债券资产

对冲参数 — 时间 t=0 时的股票和债券

使用平均值或期望值,需要在 t=0 时投资的总金额为:

  • 平均 Phi: 0.6238
  • 平均磅/平方英寸: -47.9307

参考资源:

亚历山大·索斯库诺格鲁

·

四、未来工作

        既然已经证明 NN 可用于执行计算具有复制投资组合的期权价值的任务,那么在实践中应用此方法还需要做额外的工作。

  • 构建具有更多资产的复制投资组合
  • 优化 NN 架构和超参数,实现更快的训练/更高的准确性。(使用更快的硬件)
  • 更复杂的模拟模型,由于模拟价格,与估值无关。
  • 异国衍生品

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/133511168
今日推荐