目录
1. 期权保证金
1.1 计算逻辑
1.2 代码复现
1.3 实际案例
2. 期权盈亏
2.1 价格走势
2.2 计算公式
2.2.1 卖出期权
2.2.2 买入期权
免责声明:本文由作者参考相关资料,并结合自身实践和思考独立完成,对全文内容的准确性、完整性或可靠性不作任何保证。同时,文中提及的数据仅作为举例使用,不构成推荐;文中所有观点均不构成任何投资建议。请读者仔细阅读本声明,若读者阅读此文章,默认知晓此声明。
1. 期权保证金
1.1 计算逻辑
期权保证金只针对于卖方,买方只需要支付相应的权利金。
假设:
期权的价值为value,value = 期权结算价*合约乘数
期货的保证金为FM,FM= 期货结算价×合约乘数×保证金比例
期权的类型为type:type为1表示看涨,为-1表示看跌
期权的虚值额为diff:diff =(期货结算价-期货行权价)*type*合约乘数
进一步:
对于平值和实值期权:
其保证金为:option_margin = value + FM
对于虚值期权:
保证金1为:option_margin_one = value + FM -diff*0.5
保证金2为:option_margin_two = value + FM /2
最终的保证金为:option_margin =max(option_margin_one, option_margin_two)
从公式上较为明显的看出:
1. 虚值期权的保证金比平值和虚值期权的保证金低,尤其是深度虚值期权。
2. 整体来说,期权保证金的阈值大概是期货保证金的0.5到1.5倍,其中0.75倍相对最为常见。
1.2 代码复现
复现的代码如下:
def get_option_margin(multiple, future_settle, option_settle, exercise_price,
futures_margin_rate, option_direction):
'''
multiple = 100 # 合约乘数
future_settle = 640 # 期货结算价
option_settle = 46 # 期权结算价
exercise_price = 600 # 行权价
futures_margin_rate = 0.16 # 期货保证金比例
option_direction = 'call' # 期权类型
'''
# 计算期货的保证金
futures_margin = future_settle * multiple * futures_margin_rate
# 计算期权的价值
option_value = option_settle * multiple
# 计算期权的价值类型,看涨对应1,看跌对应-1
option_type = 1 if option_direction == 'call' else -1
# 判断期权的价值状态(实值,虚值,平值);1表示实值和平值,0表示虚值
option_status = 1 if (future_settle - exercise_price) * option_type >= 0 else 0
# 计算期权的保证金
if option_status == 1:
# 平值和实值期权
option_margin = option_value + futures_margin
else:
# 虚值期权
option_margin_one = option_value + futures_margin - option_type * (
exercise_price - future_settle) * multiple / 2
option_margin_two = option_value + futures_margin / 2
option_margin = max(option_margin_one, option_margin_two)
return option_margin
1.3 实际案例
选择搜取到的一个实际案例,作为代码逻辑的验证:
构建相应的数值,通过循环构建相应代码:
if __name__ == '__main__':
exercise_price_list = [600, 640, 660, 840]
option_settle_list = [46, 20, 12, 1]
for num in range(len(exercise_price_list)):
multiple = 100 # 合约乘数
future_settle = 640 # 期货结算价
option_settle = option_settle_list[num] # 期权结算价
exercise_price = exercise_price_list[num] # 行权价
futures_margin_rate = 0.16 # 期货保证金比例
option_direction = 'call'
option_margin = get_option_margin(multiple, future_settle, option_settle,
exercise_price,futures_margin_rate, option_direction)
print('行权价为%s,期权结算价为%s,期权方向为%s,期权保证金为%s' % (
exercise_price, option_settle, option_direction, option_margin))
对应代码的结果为:
经过检验,代码的计算逻辑通过。
2. 期权盈亏
此处更多介绍平仓盈亏(到期日前平仓),不涉及到行权盈亏(行权盈亏较为少见)。
2.1 价格走势
期权价格和股价等类似,对于价格的走势而言,其实不需要去区分看涨期权还是看跌期权,因为,对于看涨期权而言,标的的价格上涨,相应的期权价格也会上涨;对于看跌期权而言,标的价格上涨,相应的期权价格会对应下跌。这里做一个举例:
以上使用铜期货,铜看涨期权和看跌期权自6月初以来对应的价格走势(选用收盘价作为基准)。从走势上可以比较明显的看出三者的关系:看涨期权与期货的走势一致,看跌期权的相反。
2.2 计算公式
本质上,期权投机交易和股票期货一样,都是去赚取价差。不同的是资金收取的模式,对卖方而言,开仓时候就能获取到相应的收入(期权费),当天就会计入盈利;对买方而言,开仓时候就会有相应的亏损(期权费),当天就会计入亏损。对于每天清算后,若仍有持仓的情况下,应该使用期权的结算价来计算盈亏,为了数据获取的方便和直观(结算价和实际的盘面存在较大的差异),后文举例时使用收盘价作为举例,同时不考虑手续费。
2.2.1 卖出期权
首先收到权利金,后续平常时按照平仓价格对应支出相应的金额。
持有/平仓盈亏 = 权利金-期权市值
权利金 = 开仓价格*乘数*交易数量
期权市值:
1. 平仓的情况下:= 平仓价格*乘数*交易数量
2. 持仓的情况下: = 收盘价格*乘数*交易数量
总结来说,对于卖出期权而言,最大的盈利为权利金(即当期权的价格为0时),另外其保证金随着期货结算价的变动而变动。
2.2.2 买入期权
首先收到权利金,后续平常时按照平仓价格对应获取收益。后文主要以买入看涨期权作为举例。
持有/平仓盈亏 = 期权市值 - 权利金
权利金收支 = 开仓价格*乘数*交易数量
期权市值:
1. 平仓的情况下:=平仓价格*乘数*交易数量
2. 持仓的情况下: = 收盘价格*乘数*交易数量
总结来说,对于卖出期权而言,最大的亏损为权利金(即当期权的价值为0时),另外无需缴纳保证金。
由于整体的计算是比较简单的,excel的表格就可以直接实现,因此就不再使用代码进行复现。
本期分享到此结束,有何问题欢迎随时交流。
免责声明:本文由作者参考相关资料,并结合自身实践和思考独立完成,对全文内容的准确性、完整性或可靠性不作任何保证。同时,文中提及的数据仅作为举例使用,不构成推荐;文中所有观点均不构成任何投资建议。请读者仔细阅读本声明,若读者阅读此文章,默认知晓此声明。