本文开始先说说CTP给开发者提供了什么。CTP提供给开发者的文件一共有4个头文件 ThostFtdcTraderApi.h,ThostFtdcMdApi.h,

ThostFtdcUserApiStruct.h,ThostFtdcUserApiDataType.h

2个dll:thosttraderapi.dll,thostmduserapi.dll

(动态链接库,如果是静态库则是thosttraderapi.lib,thostmduserapi.lib)。
   其中ThostFtdcTraderApi.h定义了交易请求接口CThostFtdcUserApi和交易事件处理接口

CThostFtdcUserSpi;
   ThostFtdcMdApi.h定义了行情请求接口CThostFtdcMdApi,行情事件处理接口CThostFtdcMdSpi;
   ThostFtdcUserApiStruct.h定义了接口方法中用到的数据结构。
   ThostFtdcUserApiDataType.h定义了数据结构中用到数据类型,枚举描述。

开发者通过CThostFtdcUserApi就可以完成交易接口的初始化,登入,确认结算结果,查询合约,查询资金,查询持仓,报单,撤单等业务操作;通过CThostFtdcUserSpi获取相应回报
   开发者也可以通过CThostFtdcMdApi完成行情接口的初始化,登入,订阅,收行情等业务;通过CThostFtdcMdSpi获取相应的行情业务操作的回报。
  上文提到了基于CTP的程序化交易系统开发最好要有四个线程:
1.完成初始化及退出操作的主线程;
2.行情接受和处理线程;
3.新行情数据监听和处理线程;
4.订单管理线程
现在先讨论一下主线程的初始化工作。初始化工作包括交易接口和行情接口两部分,对于交易接口的初始化,程序必须完成如下步骤:
1, 产生一个CThostFtdcTraderApi实例
2, 产生一个事件处理的实例
3, 注册一个事件处理的实例
4, 订阅私有流
5, 订阅公共流
6, 设置交易托管服务的地址。
初始化过程的时序图如下:

接下来就是行情接收和处理线程,行情的接收是通过CThostFtdcMdApi::SubscribeMarketData()完成对行情的订阅,通过CThostFtdcMdSpi::OnRtnDepthMarketData()完成对于行情数据的接收。此线程的工作主要要完成如下三个方面:
1.行情数据的存储:由于SubscribeMarketData()可以对多个合约行情进行订阅,所以在接收到数据后的处理首先要考虑对不同合约的数据分别以合适的方式(这里合适的方式是指存取,遍历,查询,增删等操作最为稳定快速的算法)存储。
2.行情数据的补齐:这是一个相当重要的问题。当tick数据为空的时候,必须以合适的方式补齐(因为缺失的数据对后来的统计指标计算有较大的影响,所以数据补齐是相当考究的)。
3.最新行情数据到来时向数据监听线程发出信号
  在下一文中我将讨论一下剩余的数据监听和处理线程和订单管理线程。

如何用CTP接口开发自己的交易系统?(二)相关推荐

  1. CTP接口开发案例(内附源码)

    CTP接口开发(内附源码) 提示:在看本博客之前建议先阅读上期所官方的开发文档(SimNow官网中去下载CTP接口文件),然后在SimNow官网注册模拟账号. 提示:股票CTP接口和期货CTP接口类似 ...

  2. linux运行国信股票,国信期货CTP交易API接口开发服务

    国信期货CTP交易API接口开发服务是一款国信期货CTP_API接口开发,适用于客户自行开发交易软件接入CTP呕吐,支持windows.Linux.IOS,对于未及时登录及断线造成的行情数据丢失,CT ...

  3. CTP交易接口开发所遇问题总结

    一.CTP的API分为行情API和交易API介绍: 其中行情API提供两类接口,用户通过CThostFtdcMdApi发送请求,通过CThostFtdcMdSpi收到接口的相应回报. 交易API同样也 ...

  4. 自学CTP客户端开发记录001

    CTP客户端开发指南 1. CTP 1.1 介绍 1.2 FTD 通讯协议 1.2.1 通讯模式 1.2.2 数据流 1.3 两种数据交换模式 1.3.1 请求应答模式 1.3.2 发布订阅模式 1. ...

  5. C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)

    对于量化交易来说,量化策略和技术系统缺一不可,为了知其所以然,本文实现了一个C++连接CTP接口进行仿真交易的demo,从接收行情.下订单.数据处理到添加策略.挂载运行交易等多个环节来看一下量化交易的 ...

  6. 量化交易ctp接口是什么以及有什么用?

    量化交易ctp接口是什么以及有什么用?自综合交易平台以来(CTP)的API自开放以来,越来越多的人开始编写自己的程序化交易系统,CTP接口文件对编程很重要.本文主要介绍CTP接口.综合交易平台(Com ...

  7. 教你如何用node.js开发微信公众号(一)

    内容简介 本文章简单介绍了如何用node.js开发微信公众号.主要内容包括微信公众平台的配置,signature的验证,以及用node.js去处理用户主动发起的行为. 准备工作 开发前需要安装好nod ...

  8. java系统接口开发_模拟用户管理系统java接口开发与测试实战

    一.接口开发 1.引入依赖 1 2 org.springframework.boot 3 spring-boot-starter-parent 4 1.5.3.RELEASE 5 6 7 org.sp ...

  9. CTP交易软件开发----上车前准备

    上车前准备 第一.工具 1.开发工具:上期技术CTP接口使用的是C++语言开发的,所以我在Windows下面开发使用的工具是VS2013+Visual Assistant,而在Linux平台下,我是直 ...

最新文章

  1. 【kissfft】使用kiss_fft做FFT与iFFT
  2. C#线程、前后台线程
  3. springcloud-06-feign的使用
  4. 最小生成树板子-AcWing 858. Prim算法求最小生成树
  5. CPU缓存一致性协议MESI
  6. 如何使用websocket实现前后端通信
  7. word2vec应用场景_介绍Word2Vec和Glove这两种最流行的词嵌入方法背后的直觉
  8. 496. 下一个更大元素 I/503. 下一个更大元素 II/739. 每日温度
  9. 【开发环境专题一】Maven环境搭建
  10. python中for循环运行不起_python中for循环不能正常工作
  11. SQL SERVER 数据库修复方法 (数据库变为 “可疑“)
  12. matlab数字图像处理实验一:图像的读取显示存储、平移镜像放大缩小及旋转
  13. 软件测试经典案例佣金问题,佣金等价划分和测试用例设计.PPT
  14. python矩阵连乘_动态规划之矩阵连乘问题Python实现方法
  15. CHD-5.3.6集群安装
  16. vue支付项目-APP支付宝支付功能
  17. 静坐常思己过,闲谈莫论人非。
  18. Kafka Topic分区手动迁移:kafka-reassign-partitions
  19. 计算机中mu的作用是什么,计算机上M+ M- MU GT等分别代表意思.doc
  20. 一个屌丝程序员的青春(三六六)

热门文章

  1. layui 如何动态加载局部页面_python爬虫入门实战(四)!爬取动态加载的页面!
  2. guacamole 纯web rdp预研:web应用程序部分
  3. python面向对象程序设计
  4. 基于bat+jad.exe实现jar包批量反编译
  5. 每日词根——es/ed(吃)
  6. 心通达OA 实现APP扫码登录过程
  7. 嵊泗花鸟岛图片切换【走光效果】
  8. 我的文档被删除了怎么恢复啊
  9. 使用插桩技术解决慢查询测试问题
  10. OSChina 周二乱弹 ——这个女鬼感觉眉清目秀