编辑: glay | 2019-07-06 |
当收到交易系统通过行情流发布的行情数据时, CFfexFtdcMduserSpi 的回调 函数会被调用.回调函数的参数为通知的具体内容. 中国金融期货交易所技术文档 行情客户端应用程序接口 版权所有?中国金融期货交易所 第1页,共36 页第4章 运行模式 4.1 工作流程 行情接收系统和交易系统的交互过程分为
2 个阶段: 初始化阶段和功能调用 阶段. 4.1.1 初始化阶段 在初始化阶段,行情接收系统的程序必须完成如下步骤(具体代码请参考开 发实例) : 顺序 行情接收系统
1 产生一个 CFfexFtdcMduserApi 实例
2 产生一个事件处理的实例
3 注册一个事件处理的实例
4 订阅行情流
5 设置行情服务 NameServer 的网络地址.
1 6 初始化
1 为了保持与上一版的兼容性,API 仍然提供了注册行情服务的接口,但交易所建议不 要使用这些接口,这些接口将在下一版本中取消.有关 NameServer 的说明参见
0 前置机列 表. 4.1.2 功能调用阶段 在功能调用阶段,会员系统可以任意调用行情接收系统中的请求方法,如ReqUserLogin、ReqOrderInsert 等,同时提供回调函数以响应回报信息.注意事 项: 1. API 请求的输入参数不能为 NULL. 2. API 请求的返回参数,
0 表示正确, 其他表示错误, 详细错误编码请查表. 中国金融期货交易所技术文档 行情客户端应用程序接口 版权所有?中国金融期货交易所 第2页,共36 页4.2 工作线程 行情接收系统应用程序至少由两个线程组成,一个是应用程序主线程,一个 是API 工作线程.应用程序与行情前置的通讯是由 API 工作线程驱动的. CFfexFtdcMduserApi 提供的接口是线程安全的, 可以有多个应用程序线程同 时发出请求. CFfexFtdcMduserSpi 提供的接口回调是由 MduserAPI 工作线程驱动, 如果重 载的某个回调函数阻塞,则等于阻塞了 API 工作线程,API 与交易系统的通讯会 停止.因此,在CFfexFtdcMduserSpi 派生类的回调函数中,通常应迅速返回, 可以利用将数据放入缓冲区或通过 Windows 的消息机制来实现. 4.3 与交易所前置系统的连接 MduserAPI 使用建立在 TCP 协议之上的 FTD 协议与交易所的行情前置系统 进行通信.MduserAPI 使用 CFfexFtdcMduserApi:: RegisterFront 方法注册交易所 行情前置系统的网络通讯地址. 交易所拥有多个行情前置系统,用于负载均衡且互为备份,从而提高系统的 性能和可靠性.为保证交易时通信的可靠性, MduserAPI 可以注册多个前置. 中国金融期货交易所技术文档 行情客户端应用程序接口 版权所有?中国金融期货交易所 第3页,共36 页API 在初始化后,会从已注册的前置中随机挑选一个前置,尝试建立网络连接, 如果不成功,则依次逐个尝试其它前置,直到连接成功为止.如果在交易过程中 网络连接出现故障, API 依然使用上述过程,尝试连接其它前置. 中国金融期货交易所将公布至少两台前置机的网络地址, 因此会员系统应该 至少注册两个前置机的网络地址以防止所连交易前置发生故障从而引发单点隐 患.鉴于 FTD 协议的带宽要求比较高,建议会员使用 128K 以上 DDN ........