组合期权在四种基本期权的基础上,进行组合,构建出对应的策略。我们先回顾一下基本期权的定价代码。
def option_price(type, dir, S, K = None, cost = None):'''获取期权的价值,权利金默认为50Parameters----------type:期权类型,put表示看跌,call表示看涨,str格式dir:交易方向,buy表示买入, sell表示卖出,str格式S:标的价格,int格式K:执行价格,int格式,可不填,默认值为2000cost:权利金,int格式,可不填,默认值为50Returns-------单一价格S对应的期权价值'''if K == None:K = 2000if cost == None:cost = 50if type == 'call':if dir == 'buy':price = max((S-K),0) - costelif dir == 'sell':price = cost - max((S-K),0)elif type == 'put':if dir == 'buy':price = max((K-S), 0) - costelif dir == 'sell':price = cost - max((K-S), 0)return price
备兑期权
适用情形:计划长期持有某标的,但是判断未来短时间内将会震荡或者小幅度的上涨,可通过备兑期权的模式增厚持有收益。
策略构建:持有标的+卖出看涨期权(获得期权费用以增厚收益)
举例:持有某标的,成本价为1900,认为未来短时间未来短时间内将会震荡或者小幅度的上涨,;因此选择卖出行权价位2000,权利金为50的看涨期权。(设标的价格为s)
公式:return = 持有标的+卖出看涨期权
=s-1900-max((s-2000),0)+50
代码复现:
def get_cover_option_price(basic_P):# 计算备兑期权# basic_P:股票成本价s_list = [x for x in range(1800,2100)]price_list = []basic_price = []for s in s_list:basic_price.append(s-basic_P)price = option_price('call', 'sell',s)price_list.append(price)out_df = pd.DataFrame({'标的价格':s_list, '卖出看涨' :price_list,'持有标的':basic_price})out_df['备兑期权'] = out_df['卖出看涨'] + out_df['持有标的']out_df.to_excel('备兑期权.xlsx', index=False)return out_dfif __name__ == '__main__':get_cover_option_price(1900)
根据上述结果,作出到期损益图:
因此,采用备兑期权后,标的的实际持仓成本为1850(原持仓成本-权利金)。
本期分享结束,有问题欢迎交流。