CTP API开发期货自动交易平台概论
题目比较小众,先介绍一下CTP。
综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平台以"新一代交易所系统"的核心技术为基础,稳定、高速、开放式接口,适合程序化交易软件运用和短线炒单客户使用。
没错,是专门做期货交易用的,关于期货交易的风险,参考下面:
进行期货交易风险相当大,可能发生巨额损失,损失的总额可能超过您存放在期货经纪公司的全部初始保证金以及追加保证金。因此,您必须认真考虑自己的经济能力是否适合进行期货交易。
因为期货保证金制度和价格波动的剧烈变化,很容易让投资者血本无归,其风险比股市要大,新手慎入。
废话就这么多,下面介绍技术。
CTP是基于多线程的,至少有两个线程在工作,一个是程序主线程,另一个是API工作线程。
API底层封装了TCP通讯,通过函数回调来使用API接口。文档手册里的一个示意图。所以开发CTP程序时,要先吃透API的各种回调函数,

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

举个例子,如何创建TraderApi对象,以及注册处理对象。下面的代码和流程图是一一对应的,看文章要仔细噢。
CThostFtdcTraderApi* pUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi();
CtpTraderSpi* pUserSpi = new CtpTraderSpi(pUserApi); //创建API对象
pUserApi->RegisterSpi((CThostFtdcTraderSpi*)pUserSpi); // 注册事件类,该事件类封装了函数回调
pUserApi->SubscribePublicTopic(THOST_TERT_RESTART); // 订阅公有流
pUserApi->SubscribePrivateTopic(THOST_TERT_RESTART); // 订阅私有流
pUserApi->RegisterFront(tradeFront); // 注册交易前置机
pUserApi->Init(); //初始化API
详细解答一下CtpTraderSpi ,他是一个继承自CThostFtdcTraderSpi的类,里面封装了函数回调。CThostFtdcTraderSpi是CTP封装好的,留出接口允许我们重载,就这么简单。
至于CtpTraderSpi里可以重载什么函数,你下载API SDK自己看看,太多了没法完全说明白,而且很多函数也没有用。。。
再给大家介绍一下交易类和行情类的结构体以及其命名特点。


最后,现在股票,权证其实都有自动交易的API。
CTP API开发期货自动交易平台概论的更多相关文章
- CTP API开发之一:CTP API简介
官网下载CTP API 综合交易平台CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的期货交易平台,CTP平 ...
- CTP API 开发之二 :制作CTP java版 API
目前上期技术CTP系统提供的API版本是C++版本 SWIG是一个能将C/C++接口转换为其他语言的工具,目前可以支持Python,Java,R等语言. 本文主要介绍Windows 32/64位平台下 ...
- 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...
- ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
- 淘宝API开发系列---阿里.聚石塔.开放平台的使用
好久没有继续跟进淘宝的API使用了,有很多做相关应用的同行都来咨询,很多都因为自己开发工作比较忙而没有来得及好的处理,前几天,有一个朋友叫帮忙指导如何使用淘宝API,由于原来有一些成熟的例子应用,因此 ...
- Asp.Net Web API开发微信后台
如果说用Asp.Net开发微信后台是非主流,那么Asp.Net Web API的微信后台绝对是不走寻常路. 需要说明的是,本人认为Asp.Net Web API在开发很多不同的请求方法的Restful ...
- Google maps API开发
原文:Google maps API开发 Google maps API开发(一) 最近做一个小东西用到google map,突击了一下,收获不小,把自己学习的一些小例子记录下来吧 一.加载Googl ...
- 循序渐进学.Net Core Web Api开发系列【7】:项目发布到CentOS7
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇讨论如 ...
- 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入
使用react全家桶制作博客后台管理系统 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...
随机推荐
- PAT 1033. To Fill or Not to Fill (贪婪)
PAT-A最后一个问题.最后做出来... 贪婪,通过局部优化全局优化. 1. 该加油站按距离升序排列 2. 记录气体台当前所在index,目前的汽油.开支.在您的整个背部 3. 遍历中有两种情况: 1 ...
- Initialising Memories
The file_name and memory_nameare memory_start and memory_finish are optional, it missed out they def ...
- Android——保存并读取文件
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,仅仅能被应用本身訪问,在该模式下,写入的内容会覆盖原文件的内容,假设想把新写入的内容追加到原文件里.能够使用Contex ...
- Git提交代码的处理流程(转)
Jerry 工作在wchar_support分支.他改变了名称的功能和测试后,他提交他的变化. [jerry@CentOS src]$ git branch master * wchar_suppor ...
- hdu Just a Hook
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 线段树+lazy操作 线段树是从上到下开始建树,树状数组是从下到上建树.... 代码: ...
- js敏感词过滤
var filterWord={ words:"", tblRoot:{}, //敏感词文件 file:"sensitiveWords.txt", //载入敏感 ...
- WPF - Visual调试工具Snoop
原文:WPF - Visual调试工具Snoop Snoop经过很长一段时间,最近更新到支持NET 3.5了,它是一个WPF运行时对Visual UI调试的一个工具,最近我用过它调试修改过一个bug, ...
- Android - JNI加入标准C++文件
JNI加入标准C++文件 本文地址: http://blog.csdn.net/caroline_wendy 其余參考: http://blog.csdn.net/caroline_wendy/art ...
- c#数据库操作大全
原文:c#数据库操作大全 1.提取单条记录 //using System.Data; //using System.Data.SqlClient; using (SqlConnection cn = ...
- 在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持。
原文:在WAMPSERVER下增加多版本的PHP(PHP5.3,PHP5.4,PHP5.5)支持. WAMPServer可以让开发者在Windows系统下快速搭建WAMP环境,它支持多版本的Apach ...