题目比较小众,先介绍一下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全家桶制作的博客后台管理系统 概述 该项目是基 ...
随机推荐
-
Bootstrap <;基础二十一>;徽章(Badges)
Bootstrap 徽章(Badges).徽章与标签相似,主要的区别在于徽章的边角更加圆滑. 徽章(Badges)主要用于突出显示新的或未读的项.如需使用徽章,只需要把 <span class= ...
-
android studio ADB not responding.
打开cmd 输入 netstat -aon|findstr "5037" 找到谁在占用5037端口 记住他的pid. 例如pid为 2028 输入 taskkill ...
-
C++文件操作详解(ifstream、ofstream、fstream)
C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ...
-
[置顶] linux下让php支持mysql——寻找消失的mysql
问题 最近我都在忙一个课件录制系统.这两天发现其中服务器端的一个更新数据库的php脚本运行有问题,一些本应该是系统自带函数却无法运行.于是我展开了调查... 服务器端是centos系统,其中ph ...
-
日交易41.9亿,B2B的魅力为何不输于B2C、C2C?
在最近两年的电子商务版图中,B2C和C2C可谓大放异彩,相比之下,B2B却显得颇为“低调”,当然,低调并不代表没有影响力,只不过,相比B2C和C2C面向数亿网民而言,B2B只针对企业和商家服务 ...
-
Numpy库的下载及安装(吐血总结)
Python很火,我也下了个来耍耍一阵子.可是渐渐地,我已经不满足于它的基本库了,我把目光转到了Numpy~~~~~ 然而想法总是比现实容易,因为我之前下的是Python3.3.x,所有没有自带pip ...
-
GitHub Desktop 如何创建本地仓库,上传代码,删除仓库
1.创建本地仓库 2.打开本地仓库,将要上传的文件放到本地仓库. 3.ctrl+p push仓库或者菜单栏Repository下push也可以用右上角的publish respository 4.左边 ...
-
Google Bazel简介
最近跑一个代码,需要用到Bazel. Bazel
-
UNIX高级环境编程(4)Files And Directories - umask、chmod、文件系统组织结构和链接
本篇主要介绍文件和文件系统中常用的一些函数,文件系统的组织结构和硬链接.符号链接. 通过对这些知识的了解,可以对Linux文件系统有更为全面的了解. 1 umask函数 之前我们已经了解了每个文件 ...
-
浅谈CPU、内存、硬盘之间的关系
计算机,大家都知道的,就是我们日常用的电脑,不管台式的还是笔记本都是计算机.那么这个看着很复杂的机器由哪些组成的呢,今天就简单的来了解一下. 先放图: 图上展示的就是计算机的基本组成啦. 首先是输入设 ...