当前位置: > 期货>正文

CTP API期权与期货的区别小结 期权跟期货区别

2023-08-25 20:03:52 互联网 未知 期货

使用CTP期货期权和股票期权的API接口,不止可以交易期货,还可以交易沪铜、豆粕等商品期权和沪深300等金融期权。这里小小地总结一下CTP中期权与期货的区别之处,希望可以帮助到要用CTP API对接期权交易的同学。

注:CTP的API分成股票期权和期货期权这两个不同的版本,分别对应于交易证券交易所的股票/ETF基金的期权,以及期货交易所的期货期权(含商品期权和金融期权),二者的接口基本一样,区别不大,下文中也不对这两个版本进行区分。

二者合约属性不同

查询合约得到的期权合约数据中, 产品类型(ProductClass)的值是THOST_FTDC_PC_Options(期货期权)或THOST_FTDC_PC_SpotOption(现货期权), 同时期权相关的字段有: 基础商品代码(UnderlyingInstrID, 即标的物代码), 合约基础商品乘数(UnderlyingMultiple), 执行价(StrikePrice), 期权类型(OptionsType, 即看涨还是看跌). 

TIPS: 中金所的沪深300股指期权(IO),虽然标的物是沪深300指数,并不是期货合约,但它仍属于期货期权类型。上交所和深交所的股票期权,由于标的物存在分红除息的情况,因此合约乘数和合约名称等可能会在合约生命周期中发生变化。

期权的合约代码命名规则是:

标的期货合约 + 看涨/看跌类型 + 执行价

各交易所的合约代码如下:

上期所:小写品种+四位数字(表示交割月,下同)+ C(或P)+ 行权价, 如 cu2101C43000,表示标的物是2023年1月交割的沪铜期货合约且执行价为43000元的看涨期权合约。

大商所和广期所:小写品种+四位数字+ -C-(或-P-)+ 行权价, 如 c2105-C-1800

郑商所:大写品种+三位数字+ C(或P)+ 行权价, 如 CF105C11200

中金所:大写品种+四位数字+ -C(或-P-)+ 行权价, 如 IO2012-C-2100

上交所和深交所:八位数字,如 10004686

代码中,C表示看涨期权(Call),P表示看跌期权(Put)。

二者查询和交易的接口不同

期权有一些专有的查询和交易的接口:

查询保证金(交易成本):

ReqQryOptionInstrTradeCost(请求查询期权交易成本)

OnRspQryOptionInstrTradeCost(请求查询期权交易成本响应)

查询手续费:

ReqQryOptionInstrCommRate(请求查询期权合约手续费)

OnRspQryOptionInstrCommRate(请求查询期权合约手续费响应)

自对冲相关:

ReqOptionSelfCloseInsert(期权自对冲录入请求)

OnRtnOptionSelfClose(期权自对冲通知)

OnRspOptionSelfCloseInsert(期权自对冲录入请求响应)

OnErrRtnOptionSelfCloseInsert(期权自对冲录入错误回报)

ReqOptionSelfCloseAction(期权自对冲操作请求)

OnRspOptionSelfCloseAction(期权自对冲操作请求响应)

OnErrRtnOptionSelfCloseAction(期权自对冲操作错误回报)

ReqQryOptionSelfClose(请求查询期权自对冲)

OnRspQryOptionSelfClose(请求查询期权自对冲响应)

行权(CTP中叫"执行宣告") 相关:

ReqExecOrderInsert(执行宣告录入请求)

OnRtnExecOrder(执行宣告通知)

OnRspExecOrderInsert(执行宣告录入请求响应)

OnErrRtnExecOrderInsert(执行宣告录入错误回报)

ReqExecOrderAction(执行宣告操作请求)

OnRspExecOrderAction(执行宣告操作请求响应)

OnErrRtnExecOrderAction(执行宣告操作错误回报)

ReqQryExecOrder(请求查询执行宣告)

OnRspQryExecOrder(请求查询执行宣告响应)

注:CTP中无法查询到期权的希腊字母值,包括 Delta、 Gamma、 Theta、Vega 和 Rho等,CTP的行情中也不会推送这些希腊字母值。

二者资金指标数据不同

此处涉及期权的一个概念,即权利金(期权费),不了解的同学先去补一补课。

期货的盈亏主要来自于持仓盈亏,平仓盈亏和手续费。

与期货不同,期权的持仓盈亏和平仓盈亏都是0,也即是说 持仓盈亏不受行情变化的影响,期权的盈亏主要体现在权利金收支上面:

权利金收支 = 权利金收入 - 权利金支出

期权和期货的资金指标数据区别

随着期权成交, 会产生权利金的收入和支出: 

买入成交,需支出权利金,因此导致 "权利金收支"的值减少;

卖出成交,会收入权利金,因此导致 "权利金收支"的值增加。

"权利金收支"增加或减少的数量,等于此次成交的成交额,即 成交数量 * 成交价格 * 期权合约乘数。

TIPS:"权利金收支"与这笔成交的开平方向和合约的执行价及看涨看跌类型都无关哦~

在CTP中,"权利金收支"分别在两部分数据中躺在,等着我们使用:第一个是持仓(汇总)中具有这个持仓的"权利金收支";第二个是账户资金中具有整个账户的"权利金收支",与逐日平仓盈亏和逐日持仓盈亏类似,账户资金中的"权利金收支"是各个持仓(汇总)的权利金收支的和。

通过查询账户持仓和查询资金账户,分别可以获取持仓(汇总)和资金的情况,对应的函数分别是 ReqQryInvestorPosition 和 ReqQryTradingAccount,响应函数分别是 OnRspQryInvestorPosition 和 OnRspQryTradingAccount,响应的核心数据结构分别是 CThostFtdcInvestorPositionField 和 CThostFtdcTradingAccountField。

"权利金收支"在这两个数据结构中对应的字段都是 资金差额(CashIn)。

与逐日平仓盈亏和逐日持仓盈亏类似,"权利金收支"它表示的当天这个交易日的权利金收支的值,每天结算后"权利金收支"会清零。并且,"权利金收支"会计入账户权益(Balance)的计算之中,也会在结算单上展示出来,如下图所示:

图1 某仿真系统的结算单

没有成交的买入挂单,会冻结一部分权利金,即持仓和资金数据结构中的冻结的资金(FrozenCash)。计算账户可用资金(Available)时,需要将这部分冻结的权利金计算在内,即:

可用资金(Available) = 权益(Balance) - 当前保证金总额(CurrMargin) - 冻结的保证金(FrozenMargin) - 冻结的手续费(FrozenCommission) - 冻结的权利金(FrozenCash)

与期货有所不同的是,期权买方(多头)在付完权利金以后只有权利没有义务,因而只有期权卖方(空头)才需要支付保证金,期权保证金收取主要需要考虑到期权权利金,期权标的的保证金以及期权的虚值额等方面。

具体各个交易所期权保证金计算方法如下表所示.

大商所、广期所、郑商所:

郑商所、大商所期权卖方交易保证金的收取标准为以下二者的最大值:

(1)权利金+期货保证金-期权虚值额的一半;

(2)权利金+期货保证金的一半。

看涨期权虚值额=Max((期权合约行权价格-标的合约结算价)×合约乘数,0)

看跌期权虚值额=Max((标的合约结算价-期权合约行权价格)×合约乘数,0)

郑商所组合持仓的交易保证金按照以下规定收取:

(1)买入价差组合持仓,不收取交易保证金。

(2)卖出价差组合持仓按两个行权价格之差和期权空头部位保证金二者中较小者收取交易保证金。

(3)卖出跨式或宽跨式组合,交易保证金收取标准为:卖出看涨期权和卖出看跌期权仿真交易保证金较大者加上另一部位权利金。

中金所:

每手看涨期权交易保证金=(股指期权合约当日结算价×合约乘数)+max(标的指数当日收盘价×合约乘数×股指期权合约保证金调整系数-虚值额,最低保障系数×标的指数当日收盘价×合约乘数×股指期权合约保证金调整系数)

每手看跌期权交易保证金=(股指期权合约当日结算价×合约乘数)+max(标的指数当日收盘价×合约乘数×股指期权合约保证金调整系数-虚值额,最低保障系数×股指期权合约行权价格×合约乘数×股指期权合约保证金调整系数)

其中,沪深300股指期权合约保证金调整系数为15%,最低保障系数为0.667。

看涨期权虚值额=Max((期权合约行权价格-标的合约结算价)×合约乘数,0)

看跌期权虚值额=Max((标的合约结算价-期权合约行权价格)×合约乘数,0)

上期所:

上期所保证金计算采用Delta保证金模式:

Delta保证金模式主要从期权和标的期货的Delta相关性角度来考虑,期权合约卖出方单位期权合约的交易保证金为Delta风险值与单位标的期货合约保证金的乘积,再加上期权合约收盘价与结算价的较大值,且不低于期权最小保证金。

期权合约卖方保证金为以下二者的较大值:

(1)(标的期货合约结算价×标的期货合约保证金率×Delta风险值×期权合约持仓量)+(期权合约收盘价与结算价的较大值×期权合约持仓量)

(2)期权最小保证金×期权合约持仓量

Delta风险值是标的期货合约价格发生涨跌停板波动以及波动率发生±k%幅度的变化时,Delta绝对值的最大值,由交易所每日公布。k值和期权最小保证金由交易所另行公告。

上交所:

标的为股票的期权合约,每张合约的初始保证金计算公式为:

认购期权义务仓开仓初始保证金=[合约前结算价+ Max(25%×标的前收盘价-认购期权虚值,10%×标的前收盘价)]×合约单位;

认沽期权义务仓开仓初始保证金=Min{合约前结算价+Max[25%×标的前收盘价-认沽期权虚值,10%×行权价],行权价}×合约单位。

标的为ETF的期权合约,每张合约的初始保证金计算公式为:

认购期权义务仓开仓初始保证金={前结算价+Max(15%×合约标的前收盘价-认购期权虚值,7%×合约标的前收盘价)}*合约单位;

认沽期权义务仓开仓初始保证金=Min{前结算价+Max[15%×合约标的前收盘价-认沽期权虚值,7%×行权价],行权价}*合约单位;

认购期权虚值=Max(行权价-标的前收盘价,0);

认沽期权虚值=Max(标的前收盘价-行权价,0)。

深交所:

合约标的为股票的,每张合约的开仓保证金的计算 公式为:(一)认购期权义务仓开仓保证金=[合约前结算价+Max (21%×合约标的前收盘价-认购期权虚值,10%×合约标的前收盘 价)]×合约单位。(二)认沽期权义务仓开仓保证金=Min[合约前结算价+Max (19%×合约标的前收盘价-认沽期权虚值,10%×行权价),行权价]× 合约单位。本条中的认购期权虚值=Max(行权价-合约标的前收盘价,0);认沽期权虚值=Max(合约标的前收盘价-行权价,0)。 

合约标的为交易型开放式指数基金的,每张合约的开仓保证金的计算公式为:(一)认购期权义务仓开仓保证金=[合约前结算价+Max (12%×合约标的前收盘价-认购期权虚值,7%×合约标的前收盘 价)]×合约单位。(二)认沽期权义务仓开仓保证金=Min[合约前结算价+Max(12%×合约标的前收盘价-认沽期权虚值,7%×行权价),行权价]× 合约单位。本条中的认购期权虚值=Max(行权价-合约标的前收盘价,0);认沽期权虚值=Max(合约标的前收盘价-行权价,0)。

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。