什么是CTP?——了解上期所CTP快速交易系统

论坛 期权论坛 期权     
真格量化   2019-8-22 09:12   8102   0


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





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


(1)CTP系统设计



1. 高可用性



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

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


2. 大规模并发处理能力



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



3. 安全性



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

4. 可扩展性


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

5. 业务规则的隔离


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


(2)CTP系统架构



上图展示了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接口,通过交易所提供的远程交易席位进行报单和收取报单、成交回报,以及获取交易所发布行情的通道。


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


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


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


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


— — — — — — E N D — — — — — —



真格量化可访问:
https://quant.pobo.net.cn


真格量化微信公众号,长按关注:

遇到了技术问题?欢迎加入真格量化Python技术交流QQ群  726895887






往期文章:
Numpy处理tick级别数据技巧
真正赚钱的期权策略曲线是这样的
多品种历史波动率计算
如何实现全市场自动盯盘
AI是怎样看懂研报的
真格量化策略debug秘籍
真格量化对接实盘交易
常见高频交易策略简介

如何用撤单函数改进套利成交

Deque提高处理队列效率

策略编程选Python还是C++

如何用Python继承机制节约代码量

十大机器学习算法
如何调用策略附件数据

如何使用智能单

如何扫描全市场跨月价差

如何筛选策略最适合的品种

活用订单类型规避频繁撤单风险

真格量化回测撮合机制简介

如何调用外部数据

如何处理回测与实盘差别

如何利用趋势必然终结获利

常见量化策略介绍

期权交易“七宗罪”

波动率交易介绍

推高波动率的因素

波动率的预测之道

趋势交易面临挑战
如何构建知识图谱
机器学习就是现代统计学

AI技术在金融行业的应用

如何避免模型过拟合

低延迟交易介绍

架构设计中的编程范式

交易所视角下的套利指令撮合

距离概念与特征识别

气象风险与天气衍生品

设计量化策略的七个“大坑”

云计算在金融行业的应用

机器学习模型评估方法
真格量化制作期权HV-IV价差
另类数据介绍

TensorFlow中的Tensor是什么?

机器学习的经验之谈

用yfinance调用雅虎财经数据

容器技术如何改进交易系统
Python调用C++
如何选择数据库代理
统计套利揭秘

[h1]一个Call搅动市场?让我们温习一下波动率策略[/h1][h1]如何用真格量化设计持仓排名跟踪策略[/h1][h1]还不理解真格量化API设计?我们不妨参考一下CTP平台[/h1][h1]理解同步、异步、阻塞与非阻塞[/h1][h1]隐波相关系数和偏度——高维风险的守望者[/h1]Delta中性还不够?——看看如何设计Gamma中性期权策略

[h1]Python的多线程和多进程——从一个爬虫任务谈起[/h1]线程与进程的区别
皮尔逊相关系数与历史K线匹配

Python2和Python3的兼容写法
Python代码优化技巧

理解Python的上下文管理器

如何写出更好的Python代码?这是Python软件基金会的建议
评估程序化模型时我们容易忽视的指标

看看如何定位Python程序性能瓶颈

什么是Python的GIL

投资研究中的大数据分析趋势及应用

理解CTP中的回调函数

如何围绕隐含波动率设计期权交易策略                    
看看如何用Python进行英文文本的情感分析
算法交易的分类

Python编码的最佳实践总结

什么是波动率锥?如何用波动率锥设计期权策略?
期权的波动率策略与时间价值收集策略对比

期权用于套期保值和无风险套利

隐含波动率对期权策略的影响

卖出期权交易的风险管理原则和技巧
期权交易中的“大头针”风险
期权做市商策略简介

精细化您的交易——交易成本评估与交易执行策略
海外市场交易执行策略的实践
设计期权套期保值方案时应注意的问题
美式期权、欧式期权比较分析——定价与风险管理
构建您的AI时代武器库——常用的机器学习相关Python库
期权波动率“微笑曲线”之谜
运算任务愈发繁重,如何加速Python程序运行?
证券市场微观结构理论模型是什么

是瞬间成交还是漫长等待?——如何衡量市场流动性
波动率指数及其衍生品介绍

Python的异常处理技巧

Python中的阻塞、异步与协程

"香草"之外的更多选择——几种常见的路径依赖奇异期权
















分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:870
帖子:180
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP