Tag: 风险管理

使用遗传算法构建期权对冲策略

奇异期权定价

实际的含权贸易中,往往包含了一些奇异的条件。而在我们持有头寸的时候,往往需要用场内标准的期权来进行对冲,通过这样的方式来减少风险。

例如我们买入一个如下条件的白糖场外期权

看跌期权, 当前价格5700, 执行价格5650, 到期日t 40交易日 波动率 0.0063, 权利金50

通过计算得知,我们的预期利润为:

期望利润: 15.662175 方差: 110.78011080184643 夏普比: 0.3548628627350025

# 蒙特卡洛算法计算期权
def SimulatePrice(P0, std, steps, step_price=1, N=10000):  
    """  
    :param P0:  初始价格  
    :param std:   序列标准差  
    :param steps:   序列步数  
    :return:  
    """    sim_norm_ret = np.random.normal(0, std, (steps, N))  
    sim_price = np.exp(sim_norm_ret.cumsum(0))  
    # # 初始价格1000  
    sim_price = P0 * sim_price  
    sim_price = (sim_price / step_price).round(0) * step_price  
    # 第一行添加初始价格  
    sim_price = np.vstack([P0 * np.ones(N), sim_price])  
    return sim_price
    
s = 0.0063  
P0 = 5700  
strike_price = 5650  
profit = 50  
t = 40  
N = 40000  
# 采用蒙特卡洛方式定价  
sim_price = SimulatePrice(P0, s, 40, N=N)  
last_sim_price = sim_price[-1,:]  
last_sim_profit = np.maximum(0, strike_price-last_sim_price) - profit  
print("期望利润:", last_sim_profit.mean(), "方差:", last_sim_profit.std(), "夏普比:", last_sim_profit.mean()/last_sim_profit.std() * np.sqrt(252/t))
>期望利润: 15.662175 方差: 110.78011080184643 夏普比: 0.3548628627350025

场内期权对冲

虽然买入这样的看涨期权,期望收益是正的,但是方差太大,夏普比过低。

为了转移风险,我们可以在场内卖出一个看跌期权与我们的头寸进行对冲。 但是场内期权与我们头寸 到期日不同,执行价不同,所以我们需要构建一个头寸组合来实现我们的对冲策略。

from scipy.stats import norm  
import matplotlib.pyplot as plt
def CND(X):  
    return norm.cdf(X)  
# 当前期权理论价格  
def PutOptionPriceBSAarry(S, K, std, t, r=0.0):  
    d1 = (np.log(np.divide(S , K)) + (r + (std ** 2) / 2) * t) / (std * np.sqrt(t))  
    d2 = d1 - std * np.sqrt(t)  
    return K * np.exp(-r * t) * CND(-d2) - S * CND(-d1)
index = 1  
hold_position = 1  
position_profit = (put_option_theory_price[index] - put_option_theory_date_price[:,index])  
last_sim_price = sim_price[-1,:]  
last_sim_price.resize((N,1))  
put_option_theory_date_price = PutOptionPriceBSAarry(last_sim_price, strike_price_array, s, all_t-t)  
p = last_sim_profit +position_profit  * hold_position  
plt.figure(figsize=(15, 6))  
plt.subplot(1, 3, 1)  
_ = plt.hist(last_sim_profit)  
plt.subplot(1, 3, 2)  
_ = plt.hist(position_profit)  
plt.subplot(1, 3, 3)  
_ = plt.hist(p)  
print("期望利润:", p.mean(), "方差:", p.std(), "夏普比:", p.mean()/p.std() * np.sqrt(252/t))

奇异期权定价_奇异期权策略构建_场内期权对冲

我们发现,通过构建一定比例的卖出看跌期权,夏普比明显增加!接下来我们自然的想到,如果我们把所有的场内期权都考虑进去,构建一个综合的场内期权组合,能不能尽可能的提升我们的夏普比?

构建场内期权组合遗传算法

当前白糖2501,执行价在5000-7000之间。所以我们有20个目标期权合约,每一个期权我们都可以做多做空10手,所以我们需要构建一个投资组合。这个组合的空间是 20^20 次方,这是一个天文数字,显然遍历算法在这种复杂度面前显得力不从心。因此,我们需要一种更为高效的搜索算法来优化我们的对冲策略。这时,遗传算法便显示出它的优势。

遗传算法是一种模拟自然界生物进化过程的搜索算法,它通过种群、交叉、变异和选择等机制,不断迭代优化,最终找到问题的最优解或近似最优解。在这种背景下,我们将利用遗传算法来构建一个优化的期权对冲策略。

代码

采用Deap库,核心代码如下

invalid_ind = [ind for ind in population if not ind.fitness.valid]  
fitnesses = toolbox.map(toolbox.evaluate, invalid_ind)  
for ind, fit in zip(invalid_ind, fitnesses):  
    ind.fitness.values = fit  
hof = tools.HallOfFame(10, similar=np.array_equal)  
record = stats.compile(population) if stats else {}  
logbook.record(gen=0, nevals=len(invalid_ind), **record)  
print(logbook.stream)  
ngen = 4000  
cxpb = 0.5  
mutpb = 0.4  
# Begin the generational process  
for gen in range(1, ngen + 1):  
    # Select the next generation individuals  
    offspring = toolbox.select(population, len(population))  
    # Vary the pool of individuals  
    offspring = varAnd(offspring, toolbox, cxpb, mutpb)  
    # Evaluate the individuals with an invalid fitness  
    invalid_ind = [ind for ind in offspring if not ind.fitness.valid]  
    fitnesses = toolbox.map(toolbox.evaluate, invalid_ind)  
    for ind, fit in zip(invalid_ind, fitnesses):  
        ind.fitness.values = fit  
    # Update the hall of fame with the generated individuals  
    hof.update(offspring)  
    # Replace the current population by the offspring  
    population[:] = offspring  
    population.extend(hof[:])  
    # Append the current generation statistics to the logbook  
    if gen % 10 == 0:  
        record = stats.compile(population) if stats else {}  
        logbook.record(gen=gen, nevals=len(invalid_ind), **record)  
        print(logbook.stream)

迭代4000次后,我们看到结果一次一次变好:

gen	nevals	avg      	std      	min       	max     
0  	300   	0.0158112	0.0411533	-0.0391251	0.166319
10 	236   	0.0225989	0.0486477	-0.0387088	0.228412
20 	274   	0.0281336	0.0559149	-0.0384535	0.267623
30 	317   	0.030553 	0.0709356	-0.0378094	0.522369
40 	360   	0.0385255	0.0961397	-0.0372828	0.894421
50 	367   	0.0420082	0.0887721	-0.0369026	0.894421
60 	426   	0.0461076	0.0955755	-0.0365466	0.923084

结果展示

param = hof[0]  
option_profit_array = np.dot((put_option_theory_price-put_option_theory_date_price) ,param)  
profit = last_sim_profit + option_profit_array  
_ = plt.hist(profit)  
print("期望利润:", profit.mean(), "方差:", profit.std(), "夏普比:", profit.mean()/profit.std() * np.sqrt(252/t))
> 期望利润: 17.317512936314248 方差: 19.143960222674735 夏普比: 2.2705131014072704

场内期权对冲_奇异期权策略构建_奇异期权定价

最终的夏普比为2.27。

结语

通过上面的组合,我们发现最终可以使用遗传算法模拟的组合来显著的降低风险,增加夏普比例。但是在实际交易过程中还有很多要素需要考虑,比如:

期现价差构建组合资金占用

本文展示了如何利用遗传算法构建一个优化的期权对冲策略,显著提升了夏普比,为含权贸易的风险管理提供了新的思路。在真实的交易场景中,我们不仅要考虑策略的理论效益,更要关注其可行性和实用性。

未来,我们可以进一步研究如何将此模型应用于更多种类的期权和更复杂的交易策略中,以适应不断变化的市场环境。同时,考虑到交易成本、流动性以及模型风险等因素,不断优化策略,以实现风险与收益的最优平衡。

怕回调,也怕踏空,华尔街开始用这种“高级玩法”对冲风险了

在美股屡创新高的背景下,华尔街投资者正转向更复杂的场外期权工具来管理风险。

面对市场自满情绪蔓延以及迷因股(meme stocks)狂热再现,华尔街策略师们开始讨论从高点回调的保护性交易。分析师推荐回顾型看跌期权(Lookback Put Options)和可重设看跌期权(Re-settable Put Options)等奇异期权产品,以应对传统期权在上涨市场中快速失效的问题。

传统对冲策略在牛市中面临挑战

在持续上涨的市场中,传统期权对冲策略面临挑战。

普通的看跌期权会随着指数上涨而迅速变为价外期权,迫使投资者不断调整仓位以维持所需的下行保护水平。

瑞银策略师Kieran Diamond表示,从历史数据看,处于高位的市场更有可能继续上涨而非逆转,这增加了传统看跌期权变得更深度价外的可能性(保护失效)。

回顾型看跌期权(Lookback Put Options)等OTC期权产品则不存在类似问题。

根据规则,回顾型看跌期权的执行价格是基于期权有效期内的最高市场价来设定的,投资者可以“回顾”历史的最高点来确定执行价格。这意味着即使市场继续上涨,期权的执行价格也会随之上调,从而增加期权的有效性。

回顾型期权的价值是隐含波动率的函数,而隐含波动率目前很低。目前标准普尔500指数的持续上涨已将大多数隐含波动率和已实现波动率指标推至数月来的最低水平。

极低的波动率指标使得回顾型看跌期权变得更加有吸引力,投资者可以以相对较低的成本获得比普通期权更高的风险保护。

瑞银统计显示,在过去10年中,当市场处于高点时,如果回顾型期权的执行价格设定为现货价格的95%(即当前市场价格的95%),则回顾型期权的执行价格在期权有效期内会根据市场的波动上调3.4%。

换句话说,如果市场价格上涨了,回顾型期权的执行价格会随之上调(提供保护),而投资者付出的额外成本仅为传统期权的0.4%。

科技股成热门标的

可重设看跌期权_回顾型看跌期权_奇异期权策略构建

分析师们表示,回顾型看跌期权的最佳使用场景是市场先上涨然后暴跌的情况。在这种情形下,相比传统期权,额外回报可能相当可观。

UBS全球波动率策略主管Pete Clarke表示:

今年早些时候现货价格接近高点、波动率跌向低点时,市场对回顾型期权对冲回报出现了一波兴趣。

随着最新一轮上涨和波动率重置,我们再次看到它们被积极报价。

分析师介绍,目前对回顾型期权的兴趣主要来自对冲基金以外的账户,如纯多头资产管理公司和私人银行。

纳斯达克和科技股普遍成为期权的热门标的。ASYM 300创始人Rocky Fishman表示,纳斯达克100指数的10日已实现波动率已降至2021年以来的最低水平:

纳斯达克和科技股普遍成为热门标的,因为那里的波动率被特别压制。

市场环境推动保护性交易需求

随着美联储利率决议、美国就业和GDP数据、关税最后期限以及大型科技股财报季的到来,市场将面临新的考验。

而Cboe波动率指数通常在第三季度从7月低点上升的季节性趋势,以及即将到来的财报季和关税截止日期,都可能推动对冲交易获得更多关注。

本月美股迷因股票野蛮波动的重新出现也可能促使机构投资者寻求保护性交易,而非追逐进一步收益。

在2021年,散户狂热推动的涨势标志着股市的一轮欣快情绪,但这种走势很快消退。

当前市场环境下,投资者既担心错过进一步上涨机会,又担心潜在的回调风险,这种矛盾心理正推动着对更精密风险管理工具的需求。

巧用“奇异期权”中信期货临高县天胶“保险+期货”实现突破

? 中证网讯 (记者 张利静)中国证券报记者从中信期货了解到,在2019年中信期货、中信中证资本参与的临高县天然橡胶保险+期货项目中,巧用奇异期权大幅降低期权成本,推动了我国“保险+期货”实现了新的突破。

据介绍,自2016年我国首次提出稳步扩大“保险+期货”试点以来,“保险+期货”今年已经是第五次被中央一号文件提及,其对农产品市场发展的重要性显而易见。

在上海期货交易所的支持下,中信期货、中信中证资本与临高县政府在2017年与临高县人民政府展开合作,并顺利完成了第一期试点项目,获得了良好的社会反响。2019年的项目在2017年、2018年项目的基础之上,中信期货进一步与临高县人民政府,中国人民财产保险股份有限公司海南省分公司,中国人民财产保险股份有限公司临高支公司保持紧密沟通,进一步覆盖全县贫困胶农。项目总保费265万元,胶农免费投保,中信期货支付全额保费。本次项目总计发生赔付133.69万元。

临高县地处海南省西北部,作为海南省五个国家级贫困县之一的临高县,辖内10个镇、1个农场(加来农场)、2个开发区(金牌港经济开发区、临高角旅游度假开发区),176个村(居)委会、880个自然村,人口51.5万。该县产业结构单一,尤其是天然橡胶种植农户无力面对连年来的橡胶价格下跌,贫困胶农生活面临严峻挑战。

临高县天然橡胶保险期货 奇异期权降低成本 保险期货模式创新_奇异期权策略构建

据中信期货相关负责人介绍,本项目中,综合临高县天然橡胶种植和销售的时间周期特点以及入场保价时期货价格水平等因素,参考保险公司及当地政府意愿,此项目选择分批入场的奇异期权结构(挂钩RU2001合约)作为与投保保单对应的场外期权产品。

成本低廉是奇异期权的一大特征之一。奇异期权的回报取决于各种独特的条款,可以用于满足特性化的对冲和投资需求而大受欢迎。奇异期权的种类较多,大致可以分为路径依赖期权、多因子期权、时间依赖期权以及其他奇异期权四类。每一类奇异期权的收益和风险特性都较为独特,种类繁多的奇异期权能为投资者提供多样化的对冲和投资需求。

保险+期货,是一项创新型的农业风险管理模式。农户购买农产品保险,一旦遭遇市场价格动荡触发价格保险赔付条款,将由保险公司赔付亏损,而保险公司则通过向期货公司风险管理子公司购买场外期权产品转移赔付风险,实现“再保险”,形成风险多方共担的共赢格局。近年来,苹果、天然橡胶、大豆等农产品纷纷被纳入“保险+期货”项目中,“保险+期货”的模式应用也连续几年被写入中央一号文件,有力助推了农产品目标价格改革。