当前外汇市场的行情数据引擎(Market Data Engine)的设计有理由基于微观市场设计理论进行再设计和改造。下文我们通过提纲方式逐步分析收敛,再次得出该结论。
提纲:
- 市场信息基础
- 报价行情信息
- 成交行情信息
- 行情数据引擎
- 结论与总结
市场信息基础
市场信息包括报价行情信息、成交行情信息、基准信息等,基准信息在这里不表。报价行情与成交行情是不同的,报价行情承担了交易系统的核心功能——价格发现功能,成交行情则是交易系统核心交易功能完成的反映。价格发现功能是外汇市场微观结构的核心之一,是交易实现的前提。市场的本质是交易,交易就需要有价格。有价格还不行,这个价格还必须确保公平。不活跃的市场即缺乏价格的市场,为了维护市场的报价的连续性,无论是竞价交易还是询价交易,市场做市商有义务向交易系统发起连续的报价。对于有关人民币的外汇交易(从货币对维度分为:人民币外汇市场和外币对市场),超过汇率浮动区间(Trading Band)的报价都将被交易系统拒绝。做市商报价引擎会在开市后(Trading Hour)收到包含中间价以及上下限的交易区间信息,以做为做市商报价引擎的报价信息输入源。
市场成熟的一个重要标准就是分工程度。成熟市场的分工是非常细化的,这就意味着要有清晰的角色定位,不同角色承担了不同的职责和义务。外汇市场主要有做市商、尝试做市商和会员组成。未来应该引入更多有实力、信用良好的非金融机构直接参与。但是复杂的权限设计和不友好的设置界面则会使得用户产生使用上的困惑。
通过产品细化,来满足用户的个性化需求。选择不同产品的用户都是有不同的目的,选择外汇市场衍生品交易的目的主要是为了避险,选择即期的交易目的是为了补充流动性需求。目前银行间外汇市场的产品主要有外汇即期、外汇远期、外汇掉期、货币掉期、外汇期权、外币拆借、贵金属业务。每种大的产品之下又分为若干具体的产品例如:FXSPT GBP/CNY 1M作为一个具体的产品,FXSPT GBP/CNY 1Y作为另一个产品。
通过报价类型分为意向报价、ESP做市商报价和ODM报价。其中意向报价虽不能直接成交,但其设计起到了暗示市场进行交易的作用。银行间即远掉和贵金属外汇市场目前的报价类型有ODM订单撮合报价、意向报价和做市商ESP报价三种,其中意向报价是不能成交的报价,主要为市场提供行情参考,同时作为做市商报价引擎的参考数据输入来源。但是对于做市商来说,数据来源可能不止这一个,还有可能还有路透、彭博等信息商的数据来源。ESP是做市商匿名竞价报价。ODM报价目前只有USD/CNY SPOT T+2一种产品,只有做市商和尝试做市商有权限进行即期撮合交易,可以进行订单匹配成交,或者点击成交。C-SWAP标准化外汇掉期交易中,先下单的一方为报价方。
市场行情.png最后,行情和明细的区别是,行情关注价格,明细关注内容。
报价行情信息
报价行情信息包含最新价、最优价、深度报价等。
最新价:当前时间最优的报价。
最优价:在报价行情业务中,通常需要向全市场参与者提供每个可交易货币对当前市场的最优报买(Bid)和报卖价格(Ask),由于同一时刻有多家机构持续向交易系统报出针对某一货币对的报买价和报卖价(通常不同期限都会报),因此最优报买价是当前市场价格最高的报买价,最优报卖价是当前市场价格最低的报卖价。报价方报出的报买价越高越好,报价方报出的报卖价越低越好,买入价和卖出价的价差越小,对于投资者来说意味着成本越小。
最优价的获取方法举个例子:当前市场只有两个机构对EUR/CNY SPOT报价
A机构对EUR/CNY报出双边报价:7.7077/7.7082
B机构队EUR/CNY报出双边报价:7.7079/7.7083
那么计算获得当前市场EUR/CNY最优价:7.7079/7.7082
对于活跃度较低的市场,采用当前时间的全量数据进行最优价的计算,对于非常活跃的市场,则采用当前时间点的快照数据(性能考量)进行最优价的计算。
最优报买价和最优报卖价的倒挂是被允许的。但是超过系统设定的报价精度的报价将被系统拒绝。
市场深度行情:深度类似密度的概念,市场深度是指市场在承受大额交易时价格不出现大幅波动的能力。市场深度行情就是在不同价格、不同量上提供的报价信息,报价按照最优、次优等价格排序,按照一定的档位(即远掉默认三挡,档位数可以控制)进行展示,目前没有提供报价量参考,可能原因是市场的成交规模比较均匀。
做市商报价,做市商英文名称是Liquidity Provider。做市商制度是成熟金融市场普遍存在的一种报价驱动交易机制,做市商报价是显示报价机构的,做市商报价在交易引擎中主要用于成交。做市商可以选择对所有货币对进行报价,也可以选择对某些货币对进行报价。做市商在市场波动剧烈时,会暂时冻结本方报出的价格,或者通过规则机制冻结报价。
深度行情.png成交行情信息
逐笔成交行情,逐笔成交行情展示当前市场最新的带量的若干笔成交行情信息。
高开低收行情,市场的最高、最低、开盘和收盘汇总行情信息,支持时间跨度调整。
本方成交行情,展示交易机构自身成交的行情,可以以机构为维度、或者机构下的群组为维度(机构用户多且散的情况)或者以交易员自身为维度
行情数据引擎
引擎的主要功能包括流量控制、行情计算、行情快照、行情预热、行情维度等功能。从业务角度看报价行情和成交行情应该分别设计行情数据引擎,因为他们涉及的业务范围是不同的。
报价行情引擎的核心包括以上全部功能,成交行情引擎的核心不包括流量控制。
流量控制主要通过流量控制引擎(报价切片机)实现,控制引擎的核心目的就是解决下游若干系统的性能瓶颈问题。
报价行情设计是核心。对于报价行情来说,有单边报价和双边之分,从业务特性和系统设计角度分析,我们得出如下结论,报价行情存储基于方向进行存储,将报卖报买拆分记录。上游过来的数据中卖价、买价,有的消息只有买,或者买卖都有。但是实际上买卖并非不可拆分,并且买卖也不是必然联系,特别是像成交走势图需要查询历史的报价,所以当初数据库设计成:一条数据只存买或者卖,然后用一个方向字段来区分,报价行情是带机构和报价量的,特此注意。
报价行情事件以日志形式单独存储,报价事件发生之后,根据行情业务规则,如果不需要切片快照处理的行情,则直接转化为行情快照,在生成行情快照之前要对行情进行渲染,行情快照包括报价针对产品的最新价格、最优价格、深度价格。行情的维度主要是档位的控制,所以说从这个意义上档位控制和报价行情应是一体的。考虑到报价行情事件对于若干业务计算的重要作用和时效性要求,应尽量避免报价行情的数据的系统间无意义流转,所以可以采用Actor模型进行行情的计算处理。Actor模型在报价行情中的运用,接下来应该是研究的重点,可参考Reactive分布式并行金融计算平台(邓草原)。
切片机模型.png市场设计是技术运用的目的。当产品非常多的时候,将非常麻烦,所以这里需要从设计角度考虑如何满足用户的个性化需求。例如个性化行情设计,例如特定区间的行情关注。
总结与结论
国务院发展研究中心金融所所长张承惠则指出,中国外汇交易市场的交易量很小、定价功能很弱,在规模与效率上与其经济的体量、人民币的国际地位都不相符。因此,作为完善外汇市场机制的重要工具,当前推出外汇期货的时机已经成熟。交易中心必须有危机意识,加快产品业务创新,包括技术层面的突破和创新。
实际上,在报价展示在交易系统用户终端或者对外发布之前,需要经过多个系统的接力处理才最终展示给用户,每个系统都需要按照特定的规则对数据做对应的清洗操作,所以不要小看这个报价的重要意义。作者深感整个外汇市场系统复杂,知识分散,工作一定时间的业务人员和开发人员仍然可能是盲人摸象,特此整理此篇文章,以明晰问题思路,借鉴软件工程的思路,不断迭代,完善该篇文章。以为优化交易机制,改善市场微观结构提供参考。
参考资料
银行间外汇市场即期撮合业务指引
外汇市场与交易系统
市场微观结构与交易所竞争战略
TS系统应用需求规格说明书
中国外汇交易中心产品指引(外汇市场)
网友评论