量化CheatSheet · 净值化雪球实践(附代码)

作者:嘟嘟的投研CheatSheet,好投学堂专栏作家

题图:嘟嘟的投研CheatSheet微信公众号


为何研究净值化雪球?

首先,策略本身有配置意义。作为“高阶版”的网格交易,雪球通过高抛低吸的方式获取了Gamma收益,本身可以作为高波动的独立策略而存在。

其次,净值化雪球允许我们脱离券商交易台

一方面,“没有中间商赚差价”。券商交易台在对外报价时往往会在理论票息的基础上,打个折扣作为券商的安全垫和利润,净值化则可以吃透这部分折扣。市面上大部分以“滚雪球”命名的私募基金产品,绝大多数便是净值化雪球。

比如75/103 24M/3M结构的中证500雪球,近期券商发售的票息大概在13%-15%;但如果我们自己做净值化雪球,保守按照年化14%的波动率预测,同结构的理论Gamma票息约12.5%,叠加约5%的期指贴水,理论总票息约17.5%,多出来的部分便是券商交易台的销售费用、安全垫以及剩余利润。

另一方面,“万物皆可净值化”。个股、商品甚至Crypto,即便券商没有发行相应品种的雪球,我们依然能通过净值化管理的方式获取票息。像长期看好大饼跟二饼的我,可以通过持有净值化大饼跟二饼雪球来获得额外的票息。

比如与上述结构相同的BTC净值化雪球,按照年化50%的波动率预测,理论票息高达47%。

如何复刻净值化雪球?

第一步,使用蒙特卡洛模拟求解理论票息。

在确定理论票息之前,我们需要先了解雪球是如何定价的。由于雪球属于奇异期权,无法使用传统的BSM公式求解析解,但可用蒙特卡洛模拟估算。

所谓蒙特卡洛模拟法,即先产生N条随机股价路径,用来模拟标的资产在未来的不同行情;然后对每一条路径进行模拟计算,分别在不同的观察时点,判断是否发生敲入或敲出,计算所有路径在雪球到期或敲出时的收益,并按无风险利率贴现最后取平均值,由此得到雪球产品的理论定价。

代码 蒙特卡洛模拟所需参数

# 500雪球理论票息
params=dict(
    underlying='CSI500 ABRC',                   # 合约名称     
    initial_price = 5400,                       # 标的资产期初价格
    start_date = '20240102',                    # 合约起始日
    end_date = '20251231',                      # 合约到期日
    vd_date = None,                             # 估值日
    monitor=['20240430','20240531','20240628',  # 敲出观察日
             '20240731','20240830','20240930',
             '20241031','20241129','20241231',
             '20250127','20250228','20250331',
             '20250430','20250530','20250630',
             '20250731','20250829','20250930',
             '20251031','20251128','20251231'],

    k_out_ratios=[1.03] * 21,                   # 敲出比例,长度需与观察日相同
    k_out_prices=[5400 * 1.03] * 21,            # 敲出价
    k_coupon=0.20,                              # 敲出票息假设
    capital=1,                                  # 名义本金:1百万元
    margin_ratio=1,                             # 保证金率
    k_in_ratio=0.75,                            # 敲入比例
    sigma=0.14,                                 # 标的波动率假设,取近3个月年化
    q=0.063,                                    # 连续股息收益率假设
    r=0.015,                                    # 无风险利率假设,取1Y国债活跃
)

v=simulate(**params)
v

比如我们在30万次模拟、75/103 24M/3M结构、每份100万元、年化波动率假设14%、无风险利率假设1.5%、连续股息率假设6.3%、年化票息假设20%的参数设定下,该雪球产品的理论定价为3.73万元。即投资者需支付3万余元才能获得上述结构票息20%的雪球期权。

不过,现实中投资者购买雪球时不会付出额外的成本,因此我们需要测算当票息设定从此前的20%下降到多少时,该期权的理论价格趋近于0时的理论票息,这个过程需要用到二分法。比如按照此前的参数设定,挂钩500的雪球理论票息为12.7%。

欢迎扫码跳转获取完整代码。鉴于实现过程有一定复杂性,代码提供了详细注释,如仍有疑问欢迎在星球提问。不想弄明白过程的朋友也可直接输入参数得出理论定价。

另外,蒙特卡洛模拟算法的求解较为消耗算力,因此也提供了可用GPU加速的Pytorch代码。

# 计算理论票息
theoretical_coupon = calculate_theoretical_coupon(params)
print(f"Theoretical Coupon Rate: {theoretical_coupon}")

第二步,使用有限差分法动态求解Delta。

完成定价后,接下来就是解决不同时点究竟要持有多少Delta的问题。

从定义出发,Delta是期权价格对标的资产价格的一阶导数,表示期权价格对标的价格变化的敏感性。

然而直接计算涉及复杂的数学推导,在金融模型中这些导数表达式可能非常复杂或者不可解。因此使用数值差分法是一种简单且有效的近似方法。

在差分法的思想下,我们可以把计算Delta的过程看成是简单测量的过程:

  1. 小幅调整标的资产价格:假设当前标的资产价格是S,当我们稍微提高价格时,比如S+ΔS,计算新价格下的期权价格V(S+ΔS)
  2. 计算期权价格变化:我们再把标的资产价格稍微降低一些,比如S-ΔS,计算这个新价格下的期权价格V(S-ΔS)
  3. 求差值:用两个期权价格的差值V(S+ΔS)- V(S-ΔS)表示期权价格随标的资产价格变化的总变化量
  4. 计算变化率:用两个标的资产价格的差值2ΔS表示标的资产价格的总变化量,然后用期权价格变化量初一标的资产价格变化量,得到变化率(近似导数),这便是Delta的近似值
## 求解动态Delta

from tqdm import tqdm
import matplotlib.pyplot as plt
import seaborn as sns
import copy
sns.set_theme()

sigma_lst=[0.14]
payoffs,delta,gamma,vega,rho,theta=dict(),dict(),dict(),dict(),dict(),dict()
for sigma in sigma_lst:
    payoffs[sigma],delta[sigma],gamma[sigma],vega[sigma],rho[sigma],theta[sigma]=dict(),dict(),dict(),dict(),dict(),dict()
    for vd_price in tqdm(np.arange(2700,8100,54)):
        p = dict(sigma=sigma,vd_price=vd_price)
        params.update(p)
        payoffs[sigma][vd_price] = simulate(**params)

for sigma in sigma_lst:
    for vd_price in np.arange(2754,8046,54):
        delta[sigma][vd_price] = (payoffs[sigma][vd_price+54]-payoffs[sigma][vd_price-54])/(108/vd_price)
for sigma in sigma_lst:
    plt.plot(list(delta[sigma].keys()),list(delta[sigma].values()))
plt.legend(sigma_lst)
plt.show()

图表 年化波动率为14%时的Delta变化图

图片

至此,我们便可以通过调整参数,随时根据时间跟价格的变化相应调整Delta。


版权声明:文章版权归原作者所有,部分文章由作者授权本平台发布,若有其他不妥之处的可与小编联系。

免责声明:
您在阅读本内容或附件时,即表明您已事先接受以下“免责声明”之所载条款:
1、本文内容源于作者对于所获取数据的研究分析,本网站对这些信息的准确性和完整性不作任何保证,对由于该等问题产生的一切责任,本网站概不承担;阅读与私募基金相关内容前,请确认您符合私募基金合格投资者条件。
2、文件中所提供的信息尽可能保证可靠、准确和完整,但并不保证报告所述信息的准确性和完整性;亦不能作为投资决策的依据,不能作为道义的、责任的和法律的依据或者凭证。
3、对于本文以及文件中所提供信息所导致的任何直接的或者间接的投资盈亏后果不承担任何责任;本文以及文件发送对象仅限持有相关产品的客户使用,未经授权,请勿对该材料复制或传播。侵删!
4、所有阅读并从本文相关链接中下载文件的行为,均视为当事人无异议接受上述免责条款,并主动放弃所有与本文和文件中所有相关人员的一切追诉权。

0
好投汇
第一时间获取行业新鲜资讯和深度商业分析,请在微信公众账号中搜索「好投汇」,或用手机扫描左方二维码,即可获得好投汇每日精华内容推送和最优搜索体验,并参与编辑活动。

推荐阅读

0
0

评论

你来谈谈?
发表

联系我们

邮箱 :help@haotouxt.com
电话 :0592-5588692
地址 :福建省厦门市湖里区航空商务广场7号楼10F
好投汇微信订阅号
扫一扫
关注好投汇微信订阅号
Copyright © 2017-2024, All Rights Reserved 闽ICP备19018471号-6