CTP 客户端 技术相关 简介 一

版权声明:凡原创系列文章,均笔者的辛勤于中,如转载,请文章顶部注明来源。谢谢配合 https://blog.csdn.net/smilejiasmile/article/details/78206690

一 、简述

     综合交易平台(Comprehensive Transaction Platform, CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成 。它采用分布式架构,也是基于全内存的交易系统 。

  • 交易系统主要负责订单处理、行情转发及银期转账业务。
  • 结算系统负责交易管理、帐户管理、经纪人管理、资金管理、费率设置、日终结算、信息查询以及报表管理等。
  • 风控系统则主要在盘中进行高速的实时试算,以及时揭示并控制风险。  

    1、1   FTD 通讯协议

       期货交易数据交换协议(Futures Trading Data Exchange Protocol, FTD),适用于期货交易系统与其下端交易客户端之间进行交易所需的数据交换和通讯 。

   1、2   FTD 通讯模式

            

        FTD 协议中的所有通讯都是基于某种通讯模式进行的。通讯模式用来说明通讯双方协同工作的方式 。FTD 协议涉及到的通讯模式最为常用的有三种模式:

  • 对话通讯模式是由客户端主动发起的通讯请求。该请求被交易系统端接收和处理,并向客户端返回响应。例如查询合约。这种通讯模式与普通的 Client/Server 模式相同。

                           

  • 私有通讯模式是指交易系统端主动向某个特定的客户端发送信息 。例如报单回报 。

                           

  • 广播通讯模式是指交易系统端主动向所有连接到系统上的客户端都发出相同的信息。如行情 。

                               

注: CTP 系统中对话模式下被返回的消息成为响应 。而私有模式和广播模式下被返回的消息被称为回报 。

1、2   数据流 

        FTD 协议中需要区分的两个重要概念就是通讯模式和数据流。数据流表示的是一个单向或双向的,连续的,没有重复和遗漏的数据报文的序列。通讯模式则是一个数据流进行互动的工作模式。每个数据流应该对应一个通讯模式,但是一个通讯模式下可能有多个数据流。

        一种实现方式可以为每种通讯模式构造一种数据流,例如产生了对话流,私有流和广播流。也可以为一个通讯模式建立多种数据流,例如在对话通讯模式下建立两个流:查询流和交易流。广播模式下建立两个流:通知流和行情流。FTD 只规定各个报文在哪个通讯模式下工作,但是不规定数据流的划分。

    不同的管理原则 :  不同的通讯模式有着不同的数据流管理原则。

  • 在对话模式下,一个数据流是一个连接的过程,在这个连接内将保障各个信息的完整性和有序性。但是,当连接断开后,重新连接将开始一个新的数据流,这个数据流和原来的数据流没有直接的关系。如果客户端在提交了一个请求之后,未收到该请求的响应之前断开了连接,则再次连接后,该请求的响应并不会被新的数据流接收。
  • 而对于私有模式和广播模式,一个数据流对应一个交易日内的完成某项功能的所有连接。除非强制指定,否则客户端会在重新连接之后,默认的从上次断开连接的地方继续接收下去,而不是从头开始。

        

1、3  两种数据交换模式       

    1.3.1   请求/应答模式

        

       客户端程序(Client)产生一个请求,发向服务端程序(Server),服务端程序收到后进行处理,并把结果返回给发出请求的客户端程序 。

                     

1.3.2   发布/订阅模式

        发布/订阅模式是一种异步消息传输模式。发布者发布消息到主题,订阅者从主题订阅消息。发布者与订阅者保持相对独立,不需要接触即可保证消息的传送 。一个 FIB 应用即可作为发布者,也可作为订阅者 。

                          

1、4   CTP 系统架构

                                                       

  • 交易前置:交易前置服务一方面通过 TCP 协议与交易终端连接,另一方面通过 FIB 总线与其他后台连接。交易前置的功能有三个:链路管理,协议转换和数据路由。
  • FIB 信息总线:期货交易信息总线,是交易系统的通讯底层构件,为上层应用提供了数据包的封装,请求/应答通讯模式,以及发布/订阅通讯模式。
  • 仲裁服务:指导排队服务的状态切换。
  • 排队服务:排队服务负责将交易请求序列化,发布交易序列,作为交易核心(tKernel)处理数据的来源。
  • 交易核心:交易核心负责基于投资者的持仓,报单,成交以及出入金情况进行实时的资金和仓位计算的工作,做到事前风控。同时对所有的报单进行校验,驱动交易所报盘接口,及发布实时交易结果到 FIB 总线上 。
  • DBMT:与业务数据库进行实时交互,将需要上下场的业务数据通过交易前置送到交易核心进行处理。
  • TMDB:向 FIB 总线订阅交易核心的处理结果,将相关的业务数据实时回写到物理数据库中供结算使用。
  • 交易初始化:交易初始化主要承担两大职能: 1,根据数据库的数据生成交易核心所需的初始化数据; 2,向
  • 系统发出交易准备指令,使交易系统开始新一轮的交易(trading session)。
  • 报盘:实现了交易所的行情和交易 API 接口,通过交易所提供的远程交易席位报单,收取报单,成交回报,以及获取行情等。
  • 银期管理:用于管理银期转账接口。
  • 清算银行接口(银期接口) :实现了各银行的银期转账接口,为交易系统与银行系统提供数据交互通道。

以下内容无关,仅当云盘存图 : 

二、个人微信收款码(如果此文章对你有帮助,您可以扫描下列二维码,以鼓励我继续出优质文章) 

猜你喜欢

转载自blog.csdn.net/smilejiasmile/article/details/78206690