### 综合交易平台API开发简介 #### 一、概述 综合交易平台API开发主要涉及两个方面:交易业务和行情业务。这些API通过TCP或UDP协议实现客户端与综合交易平台之间的通信。 ##### 1.1 交易API (Trader API) 交易API基于TCP协议构建,支持客户端与综合交易平台之间的双向异步通信。其主要功能包括但不限于用户登录、订单管理、账户查询等。 ##### 1.2 行情API (Market Data API) 行情API可以在TCP或UDP协议上运行,主要用于实时获取市场行情信息。它能够提供诸如股票价格、成交量、涨跌幅等关键市场数据。 #### 二、通讯模式 综合交易平台API提供了三种主要的通讯模式: ##### 2.1 对话通讯模式 此模式下,客户端主动发起请求,综合交易平台(Thost)接收到请求并处理后,将一条或多条响应记录返回给客户端。例如用户登录、订单提交、取消订单等操作都属于此类。 ##### 2.2 私有通讯模式 在此模式中,Thost主动向客户端发送相关信息。这类信息通常包含委托回报、成交回报、错误回报等。这些信息对于交易者来说非常重要,因为它可以帮助他们及时了解订单状态及执行情况。 ##### 2.3 广播通讯模式 广播模式下,Thost向所有连接的客户端广播公共信息,如市场行情更新。这种模式适合于实时性要求较高的场景,如高频交易策略。 #### 三、数据流订阅 为了确保客户端能够接收到最新的数据,API提供了三种数据流订阅方式: - **THOST_TERT_RESTART**:从当天第一条记录开始接收数据流。 - **THOST_TERT_RESUME**:接收自上次断开连接之后的所有数据流。 - **THOST_TERT_QUICK**:仅接收本次登录后的数据流。 #### 四、初始化过程 API的初始化过程主要包括几个步骤,例如Trader API 和 Md User API 的初始化。 ##### 4.1 Trader API 初始化 - **初始化**:加载必要的库文件,并创建Trader API实例。 - **登录**:客户端向Thost发送登录请求。 - **确认结算结果**:客户端可以确认结算信息是否已接受。 - **查询合约**:客户端查询可交易的合约列表。 - **查询资金**:查看账户余额及可用资金。 - **查询持仓**:检查当前持有的头寸情况。 - **报单**:提交新的交易订单。 - **接收委托回报**:处理订单执行的反馈信息。 - **撤单**:撤销未成交的订单。 ##### 4.2 Md User API 初始化 - **初始化**:加载所需的库文件并创建Md User API实例。 - **登录**:客户端向Thost发送登录请求。 - **订阅**:选择需要订阅的市场数据。 #### 五、接口文件 综合交易平台API提供了多种接口文件,用于定义API的功能和数据结构。 ##### 5.1 Trader API 接口文件 - **ThostFtdcTraderApi.h**:定义了请求接口`CThostFtdcUserApi`和事件处理接口`CThostFtdcUserSpi`。 - **ThostFtdcUserApiStruct.h**:定义了接口方法中用到的数据结构。 - **ThostFtdcUserApiDataType.h**:定义了数据结构中用到的数据类型和枚举。 - **thosttraderapi.lib**:静态连接库。 - **thosttraderapi.dll**:动态链接库。 ##### 5.2 Md User API 接口文件 - **ThostFtdcMdApi.h**:定义了请求接口`CThostFtdcMdApi`和事件处理接口`CThostFtdcMdSpi`。 - **ThostFtdcUserApiStruct.h** 和 **ThostFtdcUserApiDataType.h**:与Trader API共享相同的文件。 - **thostmdapi.lib**:静态连接库。 - **thostmdapi.dll**:动态链接库。 #### 六、通用规则 综合交易平台API采用了一套标准化的命名规则来提高代码的可读性和一致性。 ##### 6.1 请求指令 - **Req***:代表请求操作,如`ReqUserLogin`。 - **OnRsp***:代表请求操作的响应,如`OnRspUserLogin`。 ##### 6.2 查询指令 - **ReqQry***:用于请求查询操作,如`ReqQryInstrument`。 - **OnRspQry***:用于响应查询操作的结果,如`OnRspQryInstrument`。 ##### 6.3 回报消息 - **OnRtn***:用于接收系统自动发送的消息,如`OnRtnOrder`。 ##### 6.4 错误回报 - **OnErrRtn***:用于接收错误信息,如`OnErrRtnOrderInsert`。 #### 七、示例代码 API提供了示例代码帮助开发者快速上手。 ##### 7.1 Trader API 示例代码 - **初始化**:加载必要的库文件,并创建Trader API实例。 - **登录**:客户端向Thost发送登录请求。 - **确认结算结果**:客户端可以确认结算信息是否已接受。 - **查询合约**:客户端查询可交易的合约列表。 - **查询资金**:查看账户余额及可用资金。 - **查询持仓**:检查当前持有的头寸情况。 - **报单**:提交新的交易订单。 - **接收委托回报**:处理订单执行的反馈信息。 - **撤单**:撤销未成交的订单。 ##### 7.2 Md User API 示例代码 - **初始化**:加载所需的库文件并创建Md User API实例。 - **登录**:客户端向Thost发送登录请求。 - **订阅**:选择需要订阅的市场数据。 综合交易平台API开发涉及的内容广泛且深入,从基本的通讯模式到具体的接口文件和示例代码,每一步都需要仔细理解和掌握。对于想要利用API进行自动化交易或数据分析的应用开发者来说,这些都是非常宝贵的资源。
- 粉丝: 27
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Chrome代理 switchyOmega
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍