周宏成 张威 姚远 钟利明
(1.大连飞创信息技术有限公司,辽宁 大连 116023;2.大连商品交易所,辽宁 大连 116023)
在交易所的风险管理体系中,保证金是风险控制的核心:一方面,它需要能切实守住交易所的风险底线,保障整个市场的稳定运行;另一方面,它需要在防范风险和保证公平的前提下,让市场更有效率地适应期权等创新业务发展。从系统构成角度,盘中保证金风险控制可分解为保证金模型和盘中风险控制模式两个部分,保证金模型是指期货市场风险评估的方法论,盘中风险控制模式则指控制会员新增持仓风险的技术方案,这两者相辅相成,共同协作完成交易所的保证金风险控制工作。
当前境内交易所普遍使用线性保证金模型评估持仓风险,一方面,由于期权产品的非线性特征与期货产品的风险特征不同,线性保证金模式难以精确的度量期权以及不同产品、不同品种之间的风险,主要通过维持较高保证金的征收比例来维持较高的风险控制能力,它的资金使用效率相对较低,随着期权业务的发展,保证金模型有可能需要风险评估准确性更高的SPAN模型演变;另一方面,由于CME SPAN原本为结算风险测算设计,计算规则较为复杂,性能上无法达到境内交易所的盘中风险控制的应用要求。据此,有必要在深入分析境内外交易所的SPAN保证金模型简化规则的基础上,合理简化业务和创新算法,研究逐笔增量式计算的SPAN简化算法。
目前境内期货交易所实施严格的交易前逐笔风险控制方式,即:委托单在进入交易系统撮合之前逐笔预收资金并累计持仓,成交后更新资金和持仓数据,若发现资金不足或持仓超限时,系统自动拒绝新报入订单。一方面,由于机构投资者对资金使用效率的不懈追求,保证金模型可能会向SPAN保证金演变;另一方面,由于交易前逐笔风险控制方式能够有效控制会员结算风险,利于维护市场稳定运行,交易所作为市场风险控制的最后一道防线,在较长一段时间内可能有必要坚持这种方式。因此,有必要提前分析交易前保持逐笔线性预收方式,成交后采用SPAN保证金模型实收实支,交易前线性预收与交易后精细测算协同完成盘中风险控制。
结合上述要求,本文在SPAN简化方法和盘中风险控制创新模式两个方面进行了较为深入探索,提出了适合国内交易所的保证金模型和风险控制方案,为期货市场改革创新提供决策依据。
1.场内期权业务的发展推动了保证金模型由线性保证金向场景分析型保证金演变
如图1所示,境外成熟交易所的组合保证金模型大致经历了线性模型、场景模型及统计模型这3个阶段。其中线性模型是指按照单个合约价值的一定比例收取保证金,并针对若干交易策略给予一定额度的保证金优惠的方式;场景模型通常采用情景分析方法衡量投资组合在期货价格、波动率、到期时间等多个风险因素同时发生变化的最大损失,能较为准确地衡量风险因素与资产组合的非线性关系;统计模型通常依赖于大规模蒙特卡罗模拟计算。
图1 境外组合保证金模型的发展历程
在场内期权发展早期2,境外交易所普遍使用线性保证金模型。随着期权交易成为越来越多投资者的钟爱,期权与期货相结合构成了复杂的投资策略,准确地计算期权以及期权与期货投资组合的风险日益成为风险管理者面临的课题。SPAN在1988年由CME推出,目前已经成为全球场内期货交易所保证金计算的主流模式,殷晓峰、邓云胜等 (2016)[1]指出截止2015年初,全球82家交易所或清算所中有67家使用SPAN,占比约82%,而在全球前十大交易所或清算所中,有7家正在使用SPAN或基于SPAN改造的系统。统计模型由于巨大的计算量而导致对系统硬件要求很高,目前尚未得到广泛应用,STANS仅OCC清算所在用,EUREX Prisma目前仅用于场外衍生品。
2.境外交易所SPAN保证金的精细程度通常与衍生品市场环境成熟程度相关,周边地区交易所与国际成熟交易所的主要配置差异在于跨期组合层数和跨品种组合层数
SPAN是一个组合保证金计算框架,由六个部分构成:(1)SPAN使用场景分析方法评估投资组合随市场状况的变化而出现的各种亏损程度,取最大的场景损失作为扫描风险。(2)SPAN将期权持仓按照合约DELTA3值转换标的期货持仓,并在同品种期货持仓之间构建跨期组合以计算跨期组合优惠。(3)为了防控实物交割的违约风险,SPAN针对交割月持仓多收一部分保证金。(4)SPAN定义空头期权最小保证金用于防控深度价外期权空头持仓面临极端价格变动风险。(5)SPAN在风险互抵的品种之间构建固定比例的跨品种组合,并给予一定比例的保证金优惠。(6)SPAN将扣除变动风险之后的期权净值用于冲抵一部分保证金。这六个部分通过公式合成,如下:
其中V代表品种变动保证金,M代表账户保证金;上述公式表示SPAN首先在品种级别计算扫描风险、跨期风险、交割月份风险和期权净值;其次在品种组级别构建品种之间的风险互抵关系,并给予相应比例的折扣;最后在账户级别合并期权净值和各个品种的变动风险最终得到账户保证金。
表1 CME SPAN与TAIFEX SPAN、HKEX PRiME的对比
表2 境外交易所的盘中盯市频率统计
SPAN框架规定了这六个部分的内部计算规则和它们之间的合成规则,至于每个部分内部计算的粒度由各交易所自主配置。从对比境外交易所和周边地区交易所的组合保证金配置文件可知,跨期组合粒度和跨品种组合粒度是配置差异最大的两个部分,如表1所示。
在设计保证金业务时,交易所通常需要在市场可接受度、风险控制能力、资金使用效率、系统效率等诸多因素中权衡取舍,保证金的精细程度通常与衍生品市场环境成熟程度相适应,境外成熟交易所更侧重模型的风险控制能力和资金使用效率,而中国台湾期货交易所和香港交易所的期权业务发展的时间较短,在不降低风险控制能力的前提下,侧重于以降低资金使用效率以提高市场可接受程度和系统效率:SPAN通过风险矩阵衡量期货价格、波动率、到期时间等多个风险因素与资产组合损益的非线性关系,简化风险矩阵容易导致降低模型的风险控制能力,而空头期权最小保证金和期权净值的业务规则比较简单,没有简化余地,因而中国台湾期货交易所和香港交易所选择简化跨期组合层次和跨品种组合层次。因为境内场内期权业务由业务试点到业务推广,存在一个较为长期的渐变过程,与此对应保证金模型也会存在一个由线性模型到场景模型,由简单组合到精细组合的过程,中国台湾期货交易所和香港交易所的简化做法为我们提供了良好的参照系。
3.境外交易所大都支持盘中实时盯市(或事件触发)的方式检查会员资金风险,近年来盘中风控总体向趋严方向发展。
境外交易所系统大都在盘中采用盘中盯市(或事件触发)的方式检查会员风险,且盯市功能大都在交易系统外部完成,只有当盘中计算会员保证金超过上一次保证金一定比例或者数量时,交易所才会向会员发出保证金追缴指令。雒春雨,周宏成等 (2014)[2]收集了境外交易所的盘中盯市频率数据,如表2所示。
交易所盘中盯市的主要目的是控制结算会员的市场风险增量,即控制由于结算会员持仓大幅增加或市场价格大幅度变化带来的巨额损失,由于境外交易所的结算会员资质普遍较高,发生违约的可能性较低,传统上使用每日2次的盯市结算方式。近十几年来,在境外市场的交易速度持续提升以及程序化交易得到普遍应用的背景下,交易所不仅面临更高的市场风险,而且面临程序化交易故障可能在瞬间给市场带来巨大破坏力,所以各交易所的盘中盯市频率显著提高。
当前境内交易所的盘中保证金风险控制可用概括为两点:
1.秉承“治未病”宗旨,境内期货交易所实施严格的交易前逐笔风险控制方式
即:委托单在进入撮合系统前逐笔预收资金并累计持仓,成交后更新资金和持仓数据,若资金不足或持仓超限时,系统自动拒绝新报入订单,如图2所示。
图2 国内交易所的系统架构
2.受交易系统运行效率的限制,境内期货交易所均采取相对简单的线性保证金模型
比如大商所的保证金业务可表述如下:(1) 单一期货合约收取结算价值的固定比例作为保证金。(2) 单一空头期权合约采用传统方式计算。(3) 支持构建跨期、跨品种、对锁持仓组合并给予一定比例的优惠。(4) 支持由交易所向市场提供若干期权策略优惠组合指令,供投资者自主申请,并给予相应比例的优惠。
展望未来,在期权业务获得一定程度的发展之后,境内交易所的保证金风险控制有可能出现下述趋势:
1.推动保证金模型由线性保证金模型向SPAN保证金模型演变
一方面,由于期权产品的非线性特征与期货产品的风险特征不同,线性保证金模型难以精确的度量期权以及不同产品、不同品种之间的风险,实际操作过程中常以多收保证金的方式来维持较高的风险控制能力,资金使用效率相对较低;另一方面,大型机构客户的投资组合较为复杂,提高资金使用效率的需求比较迫切,采用SPAN保证金模型,资金成本可大幅度降低,同时也有助于提升市场流动性。殷晓峰、邓云胜等 (2016)[1]指出我国台湾地区仅投资组合较为复杂的大型机构客户会使用SPAN,该部分客户数占全市场客户总数低于10%。相对于策略组合保证金模式,使用SPAN的客户资金效率提高了约35%。
2.由于交易前逐笔风险控制方式能够有效防范资质较低会员的违约风险,利于维护期货市场稳定运行,在较长一段时间内可能有必要坚持这种方式
一方面,由于盘中风险控制的核心是控制日内持仓变化以及持仓变化带来的盈亏风险,而日内持仓变化的频率取决于交易速度,在交易速度得到持续提升和交易故障在瞬间给市场带来巨大风险暴露的概率增大的背景下,坚持交易前逐笔风险控制方式有现实意义。另一方面,境内商品交易所都采用全员结算制度,对会员的资质要求相对较低,会员资质水平参差不齐,交易前逐笔风险控制方式在防范资质较低会员的违约风险、保障期货市场稳定运行起到重要的作用,交易所作为期货市场风险控制的最后一道防线,在较长一段时间内可能有必要坚持这种方式。
从本质上说,设置委托保证金的目的是严控日内“潜在”的持仓盈亏风险,持仓保证金是覆盖“既存”持仓风险,“潜在”的宜覆盖最大可能性,“既存”的宜关注风险评估准确性。可见,交易前委托宜保持逐笔线性预收方式以严控风险,成交后持仓宜采用类SPAN保证金以提高投资者的资金使用效率。进一步分析,这种业务模式能否高效运作取决于简化算法探索和盘中风险控制模式探索这两个方面。
在采用交易前逐笔预收保证金,交易后实时测算并释放多收的保证金模式的情况下,交易所保证金能否及时得到释放取决于计算速度,计算速度越快则释放越及时,风险控制的效果越佳,极限状态就是逐笔计算且逐笔释放。因而,在适当简化参数的基础上,研发支持逐笔增量式计算方法是非常必要的。研发基本理念是在业务层面适度减少组合种类和组合数量,在算法层面等价分解风险项,缓冲中间变量以支持逐笔增量式计算。
1.业务层面适度减少跨期组合层次、跨品种组合种类和组合层次
在业务层面选择适度减少跨期组合层次、跨品种组合种类和组合层次有下面3个方面的原因:(1)从中国台湾期货交易所和香港交易所的实际运行情况来看,较粗粒度的跨期组合和跨品种组合配置更容易被各级市场参与者接受;(2)SPAN的系统效率主要消耗在计算跨期组合费用和跨品种组合费用,跨期组合的性能依赖于组合层次深浅、跨品种组合的性能依赖于组合种类的多寡和组合层次的深浅,因而提高性能的要点在于以粗粒度的组合方式代替细粒度的组合方式,以减少跨期组合和跨品种组合层次。简化方法表述如下:
图3 跨期组合方式缩减
(1)跨期组合选择舍弃较细粒度的蝶式组合和跨月组合,只实现较粗粒度的单(双)层7分组跨期组合,如图3所示。
在合理配置组合参数的情况下,缩减跨期组合和跨品种组合的层次并不会降低模型的风险控制能力,只会降低模型资金使用效率。常规的历史模拟法测算跨期组合参数的方法如图4所示。
图4 跨期组合参数测算
其中At、Bt分别表示A、B合约在t日的结算价,Rt曲线代表AB组合的每日收益曲线,将Rt按照从小到大的顺序排列,取99.2%的分位数对应的值即跨期组合参数。分组(tier)跨期组合就是将同一品种的合约由近到远分成若干组,取最大的合约组合参数作为分组跨期组合参数。假设跨期分组方式如图5所示,则有:AA跨期参数=MAX{AiAj跨期参数},AB跨期参数=MAX{AiBj跨期参数},i、j∈[1,3]。从这个角度来看,分组的粒度越粗(即组数越少、每个组容纳的合约月份越多)、那么跨期组合参数就需要设置的较大一点、资金效率就会相应降低一些,但只要参数是根据上述方法计算出来的,风险控制能力就不会降低。
图5 跨期分组示意图
图6 跨品种组合方式缩减方式
(2)跨品种组合选择只支持品种之间的两两组合,且参数设置时不区分月份,如图6所示。
与跨期组合类似,只要跨品种参数设置合理,跨品种组合粒度由细变粗并不会降低风险控制能力,而只是降低了资金使用效率。
2.在算法层面等价分解风险项,缓冲中间变量以支持逐笔增量式计算
CME SPAN实时算法8可表述为:在收到成交后更新账户的持仓数量,然后在账户最新持仓的基础上计算SPAN保证金。采用这种思路,意味着每一笔成交导致的计算都是账户级别的,执行性能将无法得到切实提高。所以没有使用这种方法,而是采用等价分解风险项9,并在此基础上缓冲更细粒度的中间变量, 使之能支持逐笔计算的方法。下面以扫描风险为例阐述,供大家参考:
如图7所示,SPAN使用包含16个场景的风险矩阵计算扫描风险,每个场景都是由(F+△F,V+△V)10双重因素构成。
图7 SPAN的扫描场景
SPAN在同一个风险矩阵中计算同一个品种的所有期货和期权头寸,即首先计算每个合约在这16种场景情况下的损益,然后按照场景合并所有合约的损益,最后取最大的场景损失作为扫描风险。在计算过程中保持结算参数不做改变的前提下,可以变通地将扫描风险公式等价分解,变成形如公式(3)的方式,并缓冲中间变量Si,每当新的成交到达,使用公式(3)(4)计算出新的扫描风险:
其中R 表示风险项,Si代表已有持仓风险的分解后变量,Ki代表当前成交风险的分解后变量,Si+Ki表示分解后的变量之间采用加法计算,max函数表示各场景风险合成扫描风险的办法。
在采用交易前实用线性预收方式计算委托保证金,交易后采用类SPAN保证金测算持仓风险这种方案的前提下,各潜在模式的关键差异在于成交后SPAN保证金测算的及时程度以及交易前后功能之间的协作方式这两个方面。存在下面两种典型模式:
1.逐笔非线性计算模式
即在保持现有交易前逐笔委托预收、逐笔成交释放的基础上将持仓保证金计算方法改为使用能逐笔增量式计算的简参SPAN算法,如图8所示。
图8 逐笔非线性风险控制模式
2.逐笔延迟释放模式
将资金风险控制模块分解为交易前风险控制和交易后风险测算两个部分,交易前风险控制模块采用逐笔方式预收委托保证金,交易后风险测算模块采用SPAN模型计算持仓保证金,并异步返回保证金差额给交易前风险控制模块,如图9所示。
实施的本模式关键在于延迟释放委托保证金,即在前后两次计算持仓保证金计算的间隔时间内不释放新增成交对应的委托保证金,只能采用SPAN重新计算并征收之后再予以差额返还,如图10所示。
图9 逐笔延迟释放风险控制模式
图10 逐笔延迟释放模式的数据变化过程
通常,盘中风险控制模式的衡量要素分别为风险控制能力、资金使用效率和系统执行性能、实施难度,表3列出了各种盘中风险控制模式的定性对比。
表3 各种盘中风险控制模式的定性对比
从技术层面,保证金模型的可行性验证涉及功能正确性、执行性能、风险可控性、资金使用效率这4个方面:(1)正确性验证:验证组合保证金模型的业务被正确实现,可通过验证在同样的输入情况下是否达成与CME SPAN一致的输出结果来判断SPAN业务是否被正确实现。(2)执行性能验证:可通过压入成交数据并执行计算,根据起止时间计算逐笔算法的吞吐量和处理效率。(3)风险可控性验证:在各种历史场景和极端场景的情况下,通过测量根据组合保证金模型计算出来的保证金值能覆盖住持仓组合的损失的机率。(4)资金使用效率验证:在多种持仓结构的情况下,测量组合保证金模型的保证金优惠比例,优惠比例越高资金使用效率越优。
由于模型风险可控性、资金效率和风险控制模式缺乏验证的环境11,所以我们逐笔对算法的功能正确性和执行性能做了简要验证、并对资金使用效率做了简单估算,如下。
图11 功能正确性验证方法
1.功能正确性验证
在同样的参数配置情况下,构建各种持仓组合并对比原型系统与SPAN的输出结果是否一致来验证功能正确性,如图11所示。
验证的结果是否可信主要取决于测试案例的覆盖是否充分,所以我们从下面3个角度思考并设计测试案例:
(1)以业务路径覆盖为目的手动构建测试场景;
(2)使用随机函数在多个品种的不同合约之间构建测试场景;
(3)使用期权仿真环境闭市时刻的持仓明细数据构建测试场景;
在基于简化参数的情况下,绝大部分测试案例的测试用例的计算结果一致,个别案例由于原型舍入规则处理不够完善导致存在小幅度差异。详细见表4。
2.性能验证
利用脚本随机生成成交数据并加载到内存中,然后从内存中获取的成交数据压入原型系统,根据起止时间计算逐笔算法(不含收发报文等额外工作) 的吞吐量和处理效率。测试硬件环境如表5所示。
表4 功能一致性验证比对结果
表5 测试的硬件环境
在客户量级固定在100万,成交数量固定在3000万笔,在跨品种组合数量变化情况下观测逐笔算法12的吞吐量,性能测算结果如图12所示,其中:90个组合、57个组合、24个组合分别是20个品种分2大组、3大组、6大组的,并在大组内各个品种之间采用两两组合而构成的组合数量。
图12 性能测算结果
3.资金使用效率估算
因资金使用效率数据涉及客户持仓数据,所以目前暂时采用估算法13给出不同持仓结构的账户的保证金优惠程度的演变分析,如图13所示。
图13 估算不同持仓结构账户的保证金优惠比例
其中单边方式是指期权按照delta折算成期货后求单边保证金的方式, 同系列、跨期组合、跨品种组合的估算对冲系数分别为50%、50%、50%;原型系统中的同系列、跨期组合、跨品种组合的估算对冲系数分别为85%、50%、50%,原型系统由于保留了风险矩阵,同系列期权之间的对冲系数较高,随着期权持仓占比的增大,资金使用效率的优势逐渐增大。
可见,在简化跨期组合参数和跨品种组合参数的基础上,逐笔算法功能与SPAN基本一致且性能优异,逐笔算法逻辑的吞吐量在(35~41)万/秒之间,且与线性组合的保证金算法相比,该逐笔算法在资金使用效率方面的存在比较优势,具备一定程度的可实施性。
本文尝试提出“在防范风险和保证公平的前提下,让市场更有效率地适应期权等创新业务发展”的盘中风险控制方案,使得“盘中风险控制能力”和“资金使用效率”不再完全不可兼得,为将来场内期权业务发展提供重要支撑。具体来说,在下面两个方面进行了一定的创新:(1)提出了研发适合国内期货交易所的简参SPAN逐笔算法的方法,基本理念是在业务层面适度减少组合种类和组合数量,在算法层面等价分解业务,缓冲中间变量以支持逐笔增量式计算;(2)设计了交易前逐笔预收、交易后逐笔返还的逐笔非线性风险控制模式和交易前逐笔预收、交易后实时异步返还的逐笔延迟释放风险控制模式,为盘中风险控制提供理论参考。
注释
1.因为目的是测试算法逻辑部分的性能,测试数据事先都已在内存中准备好的,所以算法规则的运算性能不含I/O、网络传输、日志等额外工作。
2.期权发展早期是指从1973年CBOE推出第一支场内期权开始到1988年CME推出SPAN保证金模型的这段时间。
3.SPAN中跨期组合和跨品种组合实际上使用复合DELTA(Composite Delta), 即以预估的次日风险场景预估并加权平均而获得DELTA值。
4.香港交易所使用保证金模型叫做PRiME,计算规则与SPAN类似,我估计可能由于自主版权需要而没有采用“SPAN”作为产品名称。
5.为了使跨期组合的配置更加便利,SPAN也支持按照合约月份的相关性分组(tier),然后在组(tier)与组之间构建跨期组合的方式。 比如:CME的豆粕合约通常划分邻近交割月份(A)、当前作物年度(B)、下一个作物年度(C)这3组,存在AA、AB、AC、BB、BC、CC这六组跨期组合。SPAN通常按照组合优惠程度从大到小的顺序构建跨期组合,优先在多个相邻月份之间构建蝶式组合,然后在部分相关系数较大的合约之间构建两两跨月组合,最后使用分组(tier)组合兜底。
6.期权按照结算方式分为期货式和股票式两类:期货式期权的权利金参与每日结算和差额调整,不存在期权净值;股票式期权的权利金在买卖成交时一次性买方向卖方支付权利金,存在期权净值。中国香港交易所主要采用期货式结算方式,中国台湾期货交易所主要采用股票式结算方式,目前国内大连商品交易所和郑州商品交易所的商品期权都也都采用股票式结算方式。
7.单层组合指所有同品种的所有月份之间的跨期组合费用参数一致;双层组合是指将交割月和临近交割月单独成组,将两个月份与其它月份之间的跨期组合费用参数设置的稍稍高一点。
8.CME SPAN的实时计算功能主要根据对PC-SPAN的运行经验而得到,CME网站上也有比较详细的描述:http://www.cmegroup.com/clearing/risk-management/span-overview.html#spanProductSuite
9.在SPAN中,扫描矩阵、跨期组合风险、跨品种组合优惠、空头期权最小保证金、期权净值等被称做风险项。
10.F表示结算时刻的标的期货价格,△F表示该场景的期货价格变动幅度;V表示结算时刻的波动率,△V表示结算时刻的波动率变化幅度。
11.风险可控性需采用回溯检验极端场景情况下账户损益而获得,资金使用效率则需导入敏感客户持仓以测算保证金优惠比例,数据获取比较困难,工作量也比较大,目前阶段没有做。
12.同注1。
13.优惠比例公式=1-((1-B)+ B×(C×(1-F)+D×(1-G)+E×(1-H))),其中B为组合持仓占总持仓的比例,C为同系列组合占总组合的份额,D为跨期组合占总组合的份额,E为跨品种组合占总组合的份额、F为同系列的对冲系数,G为跨期组合的对冲系数, H为跨品种组合的对冲系数。