中国期货市场支持多套交易系统,而CTP是其中使用较为广泛的交易系统,量化投资者有必要对其有所了解。

CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的快速证券交易系统,以“新一代交易所系统”的核心技术为基础,具有稳定、高速的开放式接口。

mark

(1)CTP系统设计

1. 高可用性

通过提高系统的容错、排错以及检错、纠错能力来保证系统的可用性。

对可能的错误,进行容错设计。对关键应用部件,均采用冗余设计,交易系统的所有关键节点都有备份系统,出现故障时可以迅速、平滑地切换系统,不影响系统的运行。交易数据可以实现精确重演,保证系统重要数据的安全性设置并发布运行日志和信息跟踪功能。在设计API接口和人机接口时,对关键的输入信息引入检错、纠错机制。

2. 大规模并发处理能力

期货交易系统对交易的实时性要求很高,客观上要求系统应当具有大规模并发的快速处理能力。一般从系统的体系结构和计算模型、内存组织结构、临时文件的组织结构和数量、软件结构和程序调用关系、系统数据的分布方式及应用的组织结构等方面提升系统的运行效率。

3. 安全性

交易员或投资者的身份应得到有效验证,使得未授权的用户不能进行交易;交易的监控和关键数据的日志记录,使得交易行为不可抵赖以及可日后审计;交易数据的加密,使得交易不会泄密和被监控偷听等。

4. 可扩展性

系统在软件体系结构维持不变的情况下,通过对硬件配置的扩展提升系统性能。同时,系统设计应尽可能灵活,保证以后的扩展性。交易系统内部,应当由相对独立的交易组件组成。

5. 业务规则的隔离

通过对不断扩展的业务进行抽象,形成各种业务规则。对于这些业务规则,应当使相互之间的影响降到最低,在增加新的规则或对原有规则进行调整时,将影响降到最低。

(2)CTP系统架构

mark

上图展示了CTP系统的整体架构情况,各个要素具体说明如下:

投资者终端:实现交易平台TradeApi接口和MdApi接口,为投资者提供报单操作入口及资金持仓等交易信息查询展示界面。

交易员终端:实现交易平台UserApi接口,为交易员提供报单操作入口及该交易员被赋予的相关查询权限。

FTD协议:期货交易数据交换协议(Futures Trading Data Exchange Protocol,简称FTD),包括体系结构、报文格式、数据字典、运作机制等内容。

交易前置:交易前置服务一方面通过TCP连接与交易终端相连,另一方面通过FIB与其它后台服务相连。交易前置主要负责与业务无关的通讯工作,可以分散交易系统的压力、降低交易系统的复杂度、提高安全性。交易前置主要的功能分为三类:链路管理、协议转换和数据路由。

行情前置:行情前置一方面通过TCP连接与交易终端相连,另一方面通过FIB从报盘管理应用订阅所有行情数据,转发给有订阅某合约行情数据的交易终端。

FIB信息总线:FIB(期货交易信息总线)是交易系统的通讯底层构件,为上层应用提供了数据包的封装、请求/应答通讯模式、发布/订阅通讯模式等接口。

仲裁服务:仲裁服务的主要作用是指导排队服务的状态切换。

排队服务:排队服务主要任务是将交易请求串行化,发布交易序列,做为交易核心处理数据的来源。

交易引擎:交易引擎主要负责基于投资者的持仓、报单、成交以及出入金情况进行实时的资金和仓位计算,做到事前风险控制,同时对报单进行校验、驱动交易所报盘接口工作以及发布实时交易结果到FIB。

交易查询:内置了与交易引擎完全相同的内存数据库结构以及业务规则的实现,基于对投资者实时结算的结果更新内存数据库,通过FIB提供交易终端通过交易前置服务发起的相关交易数据查询服务。

dbmt:与管理后台实时交互,将需要上下场的业务数据通过交易前置送达到交易核心进行处理。

Tmdb:通过FIB订阅交易核心的处理结果,将报单、成交、收盘时行情、交易终端密码修改信息以及结算单确认信息等实时回写到物理数据库中供结算时使用。

交易初始化:交易初始化服务的主要功能分为两大部分,一是根据数据库的内容,生成交易核心所需的初始化数据,另一个是向系统发出交易准备指令,使交易系统开始新一轮(trading session)的交易。

报盘管理:通过TCP连接对交易和行情报盘进行管理,屏蔽掉了交易核心直接处理报盘接口程序与交易所前置之间复杂的通讯情况,简化了交易核心的处理逻辑。

报盘:实现了交易所的交易和行情API接口,通过交易所提供的远程交易席位进行报单和收取报单、成交回报,以及获取交易所发布行情的通道。

风控系统:旁路交易系统排队机发布的交易序列以及交易核心发布的交易结果,对交易数据进行实时监控,同时提供风险试算和风险账户强平功能。

业务数据库:为结算系统、交易系统、风控系统提供物理数据存储和数据来源。

管理平台:提供期货公司各种业务操作入口。

监控系统:旁路了交易系统部分交易数据用以应用数据监控,同时兼顾了交易系统物理部件的容量性能等监测。