期权专题12:期权保证金和期权盈亏

目录

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的表格就可以直接实现,因此就不再使用代码进行复现。

本期分享到此结束,有何问题欢迎随时交流。

免责声明:本文由作者参考相关资料,并结合自身实践和思考独立完成,对全文内容的准确性、完整性或可靠性不作任何保证。同时,文中提及的数据仅作为举例使用,不构成推荐;文中所有观点均不构成任何投资建议。请读者仔细阅读本声明,若读者阅读此文章,默认知晓此声明。

相关推荐

  1. 证券期权业务知识

    2024-07-14 04:04:01       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 04:04:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 04:04:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 04:04:01       62 阅读
  4. Python语言-面向对象

    2024-07-14 04:04:01       72 阅读

热门阅读

  1. 【C++编程】类的静态 static 成员 & 常 const 函数

    2024-07-14 04:04:01       19 阅读
  2. Python自定义可切片的类

    2024-07-14 04:04:01       21 阅读
  3. 力扣题解(最长的斐波那契子序列的长度)

    2024-07-14 04:04:01       25 阅读
  4. Mojo: 轻量级Perl框架的魔力

    2024-07-14 04:04:01       23 阅读
  5. 最长上升子序列(最长递增子序列,LIS)

    2024-07-14 04:04:01       22 阅读
  6. 【docker镜像如何在不同的架构上运行】

    2024-07-14 04:04:01       20 阅读
  7. 第九十五周周报

    2024-07-14 04:04:01       15 阅读
  8. Python input NameError: name ‘xxx‘ is not defined.

    2024-07-14 04:04:01       19 阅读
  9. 【数据结构】二叉树

    2024-07-14 04:04:01       22 阅读