博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CTP API开发之一:CTP API简介
阅读量:6368 次
发布时间:2019-06-23

本文共 1679 字,大约阅读时间需要 5 分钟。

官网下载

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

API接口文件清单:

整个开发包有2个核心头文件包括4个核心接口

CThostFtdcMdApi接口和CThostFtdcTraderApi两个头文件,一个处理行情,一个处理交易

(1)处理行情的CThostFtdcMdApi接口有两个类,分别是CThostFtdcMdApi和CThostFtdcMdSpi,以Api结尾的是用来下命令的,以Spi结尾的是用来响应命令的回调。
(2)处理交易的CThostFtdcTraderApi接口也有两个类,分别是CThostFtdcTraderApi和CThostFtdcTraderSpi,  通过CThostFtdcTraderApi向CTP发送操作请求,通过CThostFtdcTraderSpi接收CTP的操作响应。

API命名规则:

 

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

API底层封装了TCP通讯,通过函数回调来使用API接口。

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

交易接口初始化步骤:

// 初始化交易线程    cout << "初始化交易..." << endl;    g_pTradeUserApi = CThostFtdcTraderApi::CreateFtdcTraderApi(); // 创建交易实例    CtpTradeSpi *pTradeSpi = new CtpTradeSpi;               // 创建交易回调实例    g_pTradeUserApi->RegisterSpi(pTradeSpi);                      // 注册事件类    g_pTradeUserApi->SubscribePublicTopic(THOST_TERT_RESTART);    // 订阅公共流    g_pTradeUserApi->SubscribePrivateTopic(THOST_TERT_RESTART);   // 订阅私有流    g_pTradeUserApi->RegisterFront(gTradeFrontAddr);              // 设置交易前置地址    g_pTradeUserApi->Init();                                      // 连接运行

行情接口初始化步骤:

// 初始化行情线程    cout << "初始化行情..." << endl;    g_pMdUserApi = CThostFtdcMdApi::CreateFtdcMdApi();   // 创建行情实例    CThostFtdcMdSpi *pMdUserSpi = new CtpMdSpi;       // 创建行情回调实例    g_pMdUserApi->RegisterSpi(pMdUserSpi);               // 注册事件类    g_pMdUserApi->RegisterFront(gMdFrontAddr);           // 设置行情前置地址    g_pMdUserApi->Init();                                // 连接运行

初始化过程:

 

报单时序图:

 

转载于:https://www.cnblogs.com/anyun/p/9266568.html

你可能感兴趣的文章
HTML DOM 教程Part1
查看>>
GBDT的基本原理
查看>>
MySQL修改root密码的多种方法(转)
查看>>
MongoDB 基础命令——数据库表的增删改查——遍历操作表中的记录
查看>>
.NET Core 跨平台发布(dotnet publish)
查看>>
Activity入门(一)
查看>>
CentOS下如何从vi编辑器插入模式退出到命令模式
查看>>
Mysql索引的类型
查看>>
Eclipse debug模式 总是进入processWorkerExit
查看>>
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
[每天五分钟,备战架构师-1]操作系统的类型和结构
查看>>
springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解...
查看>>
关于Boolean类型做为同步锁异常问题
查看>>
TestLink运行环境:Redhat5+Apache2.2.17+php-5.3.5+MySQL5.5.9-1
查看>>
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>