孙 伟
(上海期货交易所,上海 200122)
期货市场通过交易保证金制度来防范履约风险。过高的交易保证金会增加交易双方的交易成本,降低市场的活跃度。由于价格波动造成的盈亏在组合交易中会有不同程度的抵消,国际上主要的期货市场都通过特定的组合保证金算法来减免组合交易的保证金,比如芝加哥商业交易所的SPAN系统和美国期权清算公司的 TIMS系统,但这些算法都比较复杂,运算开销大,只能在清算时使用,交易过程中主要依靠信用保证,这在信用体系不够成熟的发展中国家的期货市场就失去了推广基础。由于在交易过程中完全通过保证金来防范履约风险,保证金算法的设计必须满足两个要求,一是运算效率足够高,不能造成交易堵塞;二是收取的保证金必须足以覆盖当日预期内价格波动带来的风险,同时当价格波动超出预期时还可通过撤销交易订单和了结期货合约持仓来释放保证金。下文提出的大边保证金算法既能很好地满足这两个要求,同时又能大幅降低组合保证金额度,在发展中国家的期货市场有着广泛的借鉴意义。
大宗商品和金融工具价格的大幅波动给生产者和消费者的日常经营活动带来了巨大交易风险。期货交易作为一种标准化集中式的远期交易,为供需双方提供了高效的套期保值渠道,为风险偏好者提供了投资收益,同时实现了社会生活中具有代表性的大宗商品和主要金融工具的价格发现功能。高效率的保值渠道、合理的风险收益、准确公正的价格发现,都依赖于市场活跃程度即市场流动性。除了交易标的物本身的特性之外,对市场流动性影响最大的就是交易成本和风险控制。降低交易成本和保证风险控制是一对孪生兄弟,相互制约又相互促进,只有做到适当的平衡,才能提高市场流动性。
为了确保合约履约,期货市场引入了交易保证金制度,交易双方按照持仓合约价值缴纳一定比率的保证金,以保证期货标的物在到期交收阶段,即使约定执行价格与市场实际价格偏离时,交易双方仍能履约。对交易双方而言,只要缴纳的保证金足以弥补价格偏离所导致的亏损,理论上就不会存在履约风险。保证金制度是期货市场风险管理最根本、最重要的制度,起到控制市场风险的作用。
绝大多数期货交易所实行当日无负债结算制度,释放长期价格波动累积的履约风险,保证金只需覆盖下一日或几日价格波动可能造成的亏损即可。如果行情剧烈波动导致交易一方保证金不足,其需要在规定的时间内补足保证金,否则交易所可以按照交易规则对其持仓实行强行平仓,以平仓释放的保证金来补足[1]。
交易风险既包括基础商品价格发生偏离时带来的风险,也包括由相关关联资产价格发生变动、汇率波动、国际市场价格产生波动等因素所引发的风险。保证金机制的安全就是通过保证金控制住交易风险。
交易效率主要包括两个方面:一是交易资金的使用效率,大宗商品交易的保证金数额巨大,是期货交易成本的主要组成部分;二是机制的运行效率,指机制的复杂程度、保证金算法的难易程度,以及在实时交易中达成的难易度,特别是当交易放大时,会极大提高运行机制复杂程度,影响效率。
影响安全和效率的多个因素间需要相互平衡。几乎所有的期货交易所都致力于在保证交易安全的前提下提升交易效率,这是交易所的核心竞争力所在。既能做到控制风险又能降低交易成本是每个期货市场不断追求的目标。
保证金机制依赖于市场的信用程度。市场的信用程度指市场运作过程中市场参与各方对运作规则和约定的主动遵守情况。市场信用程度主要受市场发展程度、市场参与者情况、社会诚信体系及相关法律法规影响。相比发达国家,我国期货市场起步较晚,市场参与者分布分散,专业机构参与度不够,社会诚信体系不够完善,相关法律法规也不够健全,目前还属于低信用市场。
市场信用程度的高低直接影响市场的运作方式。低信用市场的风险控制方案刚性高,缺乏弹性,交易双方缺乏信用保障,要靠贯穿事前、事中、事后的风险管控措施来管理违约。具体到保证金制度上,我国期货市场保证金设置原则为在可接受置信水平下的市场风险必须被保证金足额覆盖,且必须覆盖期货合约的委托交易、持有等全过程。交易之前需要验证并冻结保证金,任何一个环节的保证金控制不到位,都有可能导致违约的出现。
市场的效率提升方法聚焦在合理降低交易保证金,提高交易者的资金利用率方面,最主要的方法就是向交易者收取组合保证金。
单个期货合约的保证金率由该合约的波动性决定,可以用风险价值VaR来度量,即在正常市场条件和给定的置信水平下,根据以往该合约的价格波动情况推算出在未来特定时期内该合约价值的最大可能损失。保证金应大于 VaR,才可以控制指定时期内的市场风险。如果单个合约的波动性既定,风险偏好一定的情况下(也就是置信水平给定),那么保证金率也基本确定,难有降低空间。但是在进行多种期货合约组合交易时,由于合约间存在相关性,行情波动带来的盈亏会对冲抵消,从而降低了组合交易的风险。因此可以针对组合交易中各投资工具的相关性和投资方向,分析组合交易的整体风险情况,计算组合保证金,降低实收保证金。
国际上针对投资组合保证金计算主要采用TIMS、STANS和SPAN这三种算法模型[2][3]。它们都能很好的做到通过产品组内和产品组间的风险对冲大幅降低交易双方的组合保证金额度。但在低信用市场,由于必须在交易前冻结足额保证金后才能进行交易,这三种算法模型都遇到了难以解决的问题,无法得到应用。存在的问题主要有以下几个方面:
(1)会员提交委托订单时,由于委托订单成交数量不确定,并随着交易时间变化,造成组合持仓结构存在太多的可能性,而这三种算法都比较复杂,计算开销很大,难以在交易之前计算出各种可能的保证金。
(2)持仓组合的各种可能性,降低了组合保证金算法效率和运行机制的效率。
(3)当不能依赖信用保障时,在交易过程中任意时刻都必须有足额的保证金才可以下达交易订单,而这三种算法不能保证某个会员减少持仓后(双向持仓结构中的平仓交易)其保证金额度不会增加,使得该会员可能无法通过平仓交易来释放保证金。这也导致我国期货市场实行的强行平仓制度不能充分发挥其实质作用。
我国期货市场是发展中国家的阶段性市场,没有复杂的衍生品,投资组合相对也比较简单。在这种情况下,经过反复论证,设计出能够很好地克服上述问题的大边保证金算法,即分别计算多空双向持仓的交易保证金金额,先收取金额较大的那个方向的保证金,金额较小方向的保证金按系数折抵部分保证金后收取。在保证事前控制风险的前提下提高交易者的资金使用效率。
为了便于大边保证金算法模型描述,定义符号如下:
MT 总保证金
ML多头保证金
MS 空头保证金
MNL 净多头保证金,当 ML>MS,MNL=ML-MS,否则MNL=0
MNS 净空头保证金,当 MS>ML,MNS=MS-ML,否则MNS=0
NLS 净多头保证金合计
NSS 净空头保证金合计
下标p表示产品,c表示合约,g表示组合,pi表示i产品,ci表示i合约,例如:
MTp产品的总保证金
MSc合约的空头保证金
MTg组合的总保证金
MTpii产品的总保证金
MScii合约的空头保证金
λ 产品或合约间相反方向保证金收取的折抵系数,由产品或合约的相关性决定,取值范围为[0,1],例如:
λpiji,j产品间的折抵系数
λciji,j合约间的折抵系数
以产品保证金计算为例(假设该产品包含n个合约),分为以下两步:
(1)计算合约保证金
同一合约相关系数λcii为1,上式简化为:
(2)计算产品保证金
产品的净多头保证金等于产品内所有合约的净多头保证金之和记为NLSp,产品的净空头保证金等于产品内所有合约的净空头保证金之和记为NSSp:
如果NSSp≥NLSp则产品的大边保证金为:
否则
当同一产品内各合约行情高度相关时,λCij可取1,即上期所现行的单向大边法,上式简化为:
如果NSSp≥NLSp则产品大边保证金为:
否则
由于需要在交易过程中计算保证金,大边保证金算法必须高效,交易过程中保证金计算分下委托订单、委托订单成交、委托订单撤销三种情况,下面以下委托订单为例来说明算法的实现。下开仓委托订单时,增加冻结保证金;下平仓委托订单时,冻结保证金不变,可具体分为以下几个步骤:
(1)计算当前持仓产品大边保证金,记为Mp;
(2)计算新增本委托订单后产品所有开仓委托(除去平仓)订单全部成交情况下,形成新的持仓结构时的大边保证金,记为Mt;
(3)那么新增本委托订单后所有委托订单需要冻结的全部资金为Mo=Mt-Mp;
(4)交易系统在下本委托订单后需新增的冻结资金为Mo减去之前冻结的资金,持仓保证金不变。
交易系统在计算上述保证金值时,为了提高计算效率,需要计算和缓存一些中间值,利用储存的中间值来减少查找与统计,检索算法也做了一些专门的优化,例如采用hash索引来提高检索效率,以避免遍历客户持仓、报单簿、成交表等记录数大的表。以 λCij取 1时的优化为例(国内期货市场同产品内合约间折扣系数的推荐取值,上海期货交易所的单向大边法就等同于折扣系数取值为1的大边保证金算法),优化后某客户某产品保证金计算流程图如图1所示。
这个算法模型在上海期货交易所NGES2.0环境中[4],运行在PC服务器上(双2.5G主频处理器,144G内存),交易引擎单线程撮合,采用了高性能的内存数据库技术和低延时的程序设计,撮合过程包括权限检查、持仓计算检查、资金计算检查,买卖双方交易匹配等,实测保证金计算对交易引擎整体撮合时间的影响在1%以内,基本上没有降低交易系统的总体性能。
上海期货交易所对2008年5个样本会员的历史数据进行了实证研究和测试[5][6]。下图是原保证金算法(即大边保证金算法中当λ取0时,不考虑组合交易保证金折抵,期货合约按照买卖持仓量分别收取交易保证金算法)和单向大边法的保证金金额对比。图中可以看出,单向大边算法比较原算法平均降低保证金18%(铝)到35%(天胶),同时仍然完全覆盖交易风险。
图1 下委托订单流程图
图2 保证金方案比较图(图中单位为千元)
进一步推广到产品组合保证金(假设该产品组合包含n个产品):
产品内各月合约的净多头保证金之和若大于净空头保证金之和,则该产品的净多头和净空头保证金为:
产品内各月合约的净空头保证金之和若大于净多头保证金之和,则该产品的净多头和净空头保证金为:
产品组合的净多头保证金等于组合内所有产品的净多头保证金之和记为NLSg,产品组合的净空头保证金等于组合内所有产品的净空头保证金之和记为 NSSg:
如果NSSg≥NLSg则产品组合的大边保证金为:
否则
如果进一步考虑产品间不同月份合约的折抵情况,则需要给出不同产品不同月份合约两两之间的折抵系数,虽然折抵比较准确,但折抵系数配置会比较复杂。
初级阶段的期货市场,信用体系相对不够健全,足额的事前保证金措施可以有效地防范交易风险,但是要求交易双方缴纳更多的交易保证金。大边保证金算法实现了在保障风险控制的前提下降低了交易保证金额度,极大地提升了市场效率,同时具有可操作性,对期货交易所及其会员的计算机系统冲击很小,在市场事前严格验资的情况下,资金利用效率不低于国际主流保证金算法。实践证明,其同品种各合约间折抵系数取1时的单向大边法就是个适用性非常好的算法,目前已被上海期货交易所、中国金融期货交易所等所运用,在其他发展中国家的期货和远期交易中也有实际使用价值。
[1] 上海期货交易所. 《章程、交易规则》. 2015.
[2] 上海期货交易所. 《SPAN系统试用评估报告》. 2004.
[3] 马重. 《TIMS、STANS和SPAN三种保证金模式的对比研究》. 期货日报. 2008.
[4] 上海期货信息技术有限公司. 《NGES2. 0交易系统建设方案》. 2013.
[5] 上海期货信息技术有限公司. 《NGESIII结算系统建设方案》. 2009.
[6] 上海期货交易所. 《单向大边法保证金方案》. 2013.