市场数据系统(MDS, Market Data System)设计总结二三点

市场数据系统 (MDS , Market Data System) 为金融机构,大型企业提供实时资讯、行情、报价等金融信息服务,覆盖股票,债券,外汇,衍生品,产权,大宗商品等所有金融证券和商品类别,连接世界上所有主要的交易所和市场,作为金融证券行业最重要的信息渠道 。在国外这种服务的主要提供商是路透和彭博,国内也有若干做这类产品服务的公司,但规模都较小。

     市场数据系统在应用架构上,都分前中后台。后台服务负责市场行情数据的接入计算,中台负责向用户终端传递数据,前台指在用户方的终端应用,从中台接收到数据后,在界面上展示数据。之前一段时间的工作和这类产品相关,有些经验体会在此记录,呵呵怕记性不好以后忘记了。市场数据系统设计内容太多,这里只记录几点。

 

1.      关于数据源

做后台实现时要接入各个交易所的行情数据来做处理。这些数据源一般都是 TCP+ 数据协议方式的接口,但具体细节差别很大,良莠不齐。好的数据源数据完整又便于处理,差的数据源会使数据的处理麻烦且可能有较大的误差。总结一下好的数据源的特征。

a.      两路的连接。一路长连接推送行情信息和交易所状态信息,一路短连接用于数据补录和查询交易所状态信息。

b.      有明确的交易所开闭市,休市状态消息。

c.      最高价,最低价,成交量,成交金额都是该时刻到开市时刻这个时间段内的最高价,最低价,成交量,成交金额。这样就不会因为中间丢失行情数据导致行情报价信息的缺失或者错误。

d.      在开市前公布所有品种的最近静态信息,在当天是否停盘。很多数据源都无法区别某个品种是停盘还是当天无交易,在计算技术指标时这两种情况是需要区分的。

e.      数据源行情数据里需要带时间,数据的推送均匀持续,这样能够使之后的 K 线和技术指标计算最精确,误差最小。

f.       只推送发生变化的行情数据,减少网络数据量和之后的处理。

有些数据源没有这些特征,就在后台这一层对这些数据源进行再包装,使得每个市场的行情数据变得规范,方便之后按统一的策略来计算处理。

 

2.      后台的数据服务

后台接入交易所的原始行情数据,做一定的计算和处理,再发布给中台。后台服务首先是个集成的作用,各个交易所不同语法语义的数据在后台转换为统一的数据。其次后台数据服务有一定的数据筛选和组合能力。从数据源接收的行情数据是按交易所来划分的,一个连接对应一个市场的数据。但中台需要的数据可能要求更细的分类粒度,可以按板块订阅数据,可以订阅多个交易所若干个股票的数据,可以订阅同一个公司在不同交易所的股票数据。所以后台服务发布的数据是很细粒度的,每条数据带有市场,分类,品种名信息,后台服务的订阅接收端可以灵活地按既定的规则来筛选和组合这些数据。

a.      后台的数据服务是一对多的发布订阅模式。每个服务接一个市场的数据,将数据分割到单个品种的最细粒度,然后发布到中台。各个中台服务可以按照一定的产品设计灵活地订阅自己需要的数据。

b.      后台数据是按最细到单个品种的粒度发布的,数据带有市场,业务分类,品种名等信息,订阅端可以根据这些信息选择接收需要的数据。

c.      后台与中台的连接使用推送方式,数据可以在第一时间推到中台。

c.  后台与中台的连接要求具备最好的实时性,能够快速传输海量数据。

 

3.      中台和前台的连接

中前台的连接可以使用长连接,也可以使用短连接。

a.      长连接可以实现数据的推送,实时性好。缺点是长连接开销大,一个中台服务支持的长连接有限。使用长连接的用户属于高级别用户。

b.      短连接可以支持更多的用户,但用户只能按请求应答的方式来获取数据,实时性就差很多了。

附注,这种文章可能有共鸣有兴趣的读者很少,但都是做设计开发的切实体会,希望和有相同工作经历的人多交流。 MDS 相关的东西很多,在这里抛砖引玉。:)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值