题目比较小众,先介绍一下CTP。

综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以"新一代交易所系统"的核心技术为基础,稳定、高速、开放式接口,适合程序化交易软件运用和短线炒单客户使用。

没错,是专门做期货交易用的,关于期货交易的风险,参考下面:

进行期货交易风险相当大,可能发生巨额损失,损失的总额可能超过您存放在期货经纪公司的全部初始保证金以及追加保证金。因此,您必须认真考虑自己的经济能力是否适合进行期货交易。

因为期货保证金制度和价格波动的剧烈变化,很容易让投资者血本无归,其风险比股市要大,新手慎入。

废话就这么多,下面介绍技术。

CTP是基于多线程的,至少有两个线程在工作,一个是程序主线程,另一个是API工作线程。

API底层封装了TCP通讯,通过函数回调来使用API接口。文档手册里的一个示意图。所以开发CTP程序时,要先吃透API的各种回调函数,

CTP的API封装分为两大部分,一个是TraderApi(thosttraderapi.dll)负责交易部分,另一个是MdUserApi(thostmduserapi.dll)负责

举个例子,如何创建TraderApi对象,以及注册处理对象。下面的代码和流程图是一一对应的,看文章要仔细噢。

  1. CThostFtdcTraderApi* pUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi();
  2.  
  3. CtpTraderSpi* pUserSpi = new CtpTraderSpi(pUserApi); //创建API对象
  4.  
  5. pUserApi->RegisterSpi((CThostFtdcTraderSpi*)pUserSpi); // 注册事件类,该事件类封装了函数回调
  6.  
  7. pUserApi->SubscribePublicTopic(THOST_TERT_RESTART); // 订阅公有流
  8.  
  9. pUserApi->SubscribePrivateTopic(THOST_TERT_RESTART); // 订阅私有流
  10.  
  11. pUserApi->RegisterFront(tradeFront); // 注册交易前置机
  12.  
  13. pUserApi->Init(); //初始化API

详细解答一下CtpTraderSpi ,他是一个继承自CThostFtdcTraderSpi的类,里面封装了函数回调。CThostFtdcTraderSpi是CTP封装好的,留出接口允许我们重载,就这么简单。

至于CtpTraderSpi里可以重载什么函数,你下载API SDK自己看看,太多了没法完全说明白,而且很多函数也没有用。。。

再给大家介绍一下交易类和行情类的结构体以及其命名特点。

上期API下载主页

最后,现在股票,权证其实都有自动交易的API。

CTP API开发期货自动交易平台概论的更多相关文章

  1. CTP API开发之一:CTP API简介

    官网下载CTP API 综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平 ...

  2. CTP API 开发之二 :制作CTP java版 API

    目前上期技术CTP系统提供的API版本是C++版本 SWIG是一个能将C/C++接口转换为其他语言的工具,目前可以支持Python,Java,R等语言. 本文主要介绍Windows 32/64位平台下 ...

  3. 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计

    ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...

  4. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  5. 淘宝API开发系列---阿里.聚石塔.开放平台的使用

    好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...

  6. Asp.Net Web API开发微信后台

    如果说用Asp.Net开发微信后台是非主流,那么Asp.Net Web API的微信后台绝对是不走寻常路. 需要说明的是,本人认为Asp.Net Web API在开发很多不同的请求方法的Restful ...

  7. Google maps API开发

    原文:Google maps API开发 Google maps API开发(一) 最近做一个小东西用到google map,突击了一下,收获不小,把自己学习的一些小例子记录下来吧 一.加载Googl ...

  8. 循序渐进学.Net Core Web Api开发系列【7】:项目发布到CentOS7

    系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇讨论如 ...

  9. 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入

    使用react全家桶制作博客后台管理系统   前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...

随机推荐

  1. JavaWeb框架的基石

    JavaWeb框架的基石(一) 初学JavaWeb开发,请远离各种框架,从Servlet开始.         Web框架是开发者在使用某种语言编写Web应用服务端是关于架构的最佳实践.很多Web框架 ...

  2. NSIS:在线下载并安装程序

    原文 NSIS:在线下载并安装程序 看到有同学留言说需要这方面的代码,所以贴出以下代码供参考(非完整脚本).需要用NSISdl插件. Section -.NET Framework    NSISdl ...

  3. svn常见错误汇总

    comment中的换行.把换行去掉就可以了

  4. atitit.提升稳定性---hibernate 添加重试retry 机制解决数据库连接关闭

    atitit.提升稳定性---hibernate 添加重试retry 机制解决数据库连接关闭 1. 流程总结 retry(5times).invoke(xxx).test().rest().$() t ...

  5. ListView单选的实现总结(转)

    今天在智能停车场项目中需要实现PullToRefreshListView的单选功能,考虑到分页,刷新等,以前的实现方式是采用自己维护一个集合保存选中位置的选中状态,但这个方式比较繁琐,今天采用了lis ...

  6. Python3.2官方文件翻译-工具列表和十进制浮点计算

    8.7 列表工具 许多数据结构需要通过内置列表类型来满足.但,有时候在不同的性能取舍需要选择一个实现. Array模块能提供一个像列表的array对象,它只能存储同类数据而且更加简洁. 接下来样例展示 ...

  7. Ubuntu Server 14.04 LTS(64bit)已安装 weblogic Server 12c(12.1.3) Zip Distribution

    这里说的对Ubuntu Server 14.04 LTS(64bit)已安装weblogic Server 12c(12.1.3) Zip Distribution遇到的问题.至于Windows什么好 ...

  8. linux-ubuntu关闭防火墙

    SYNOPSIS iptables [-t table] {-A|-C|-D} chain rule-specification ip6tables [-t table] {-A|-C|-D} cha ...

  9. nginx基础入门

    nginx常常被用来处理静态资源如css.js.图片.html等,也被用作反向代理server.邮件server,也时常拿来做负载均衡.它的优势主要体如今对静态资源的处理上,这次抽出了点时间整理了一些 ...

  10. input的width和padding-left同时存在时IE兼容问题

    总的来说,text-indent不影响元素的最终宽度但是有兼容性问题,padding-left在中国主流浏览器IE低版本下影响最终宽度,但在chrome和firefox下不影响宽度,但是可以通过CSS ...