CTP平台之API

article/2025/9/9 3:08:32

CTP平台

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

下图是目前综合交易平台提供的程序化交易方案的部署图:

用户的程序化交易终端可以使用专线接入综合交易平台。为进一步提高接入速度,也可将程序化交易终端托管在上期技术机房。

综合交易平台提供开放的API(基于C++)及相关文档,并免费提供其他成熟的交易终端,以方便程序化交易终端的开发测试。

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();                                // 连接运行

初始化过程:

报单时序图:

推荐阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.股票期货经典的量化交易策略都在这里了!(源码)

3.期货/股票数据大全查询(历史/实时/Tick/财务等)

4.三分钟弄明白为什么贝叶斯是量化工作者最常用的工具

5.学习Python有哪些书籍?这里有一份书单送给你

6.江湖中常说的“网格交易法”到底是什么?

7.10种经典的日内交易策略模型思路

8.干货 | 量化选股策略模型大全

9.量化金融经典理论、重要模型、发展简史大全


http://chatgpt.dhexx.cn/article/Gp1bwgTR.shtml

相关文章

vnpy: 在Ubuntu系统上编译vn.py CTP接口

一、本人按照以下过程在docker容器里使用python3.7编译成功了&#xff0c;具体容器编译环境&#xff08;python&#xff0c;gcc&#xff09;如下图&#xff1a; 为以后sopt编译做准备吧 以下为参考&#xff1a;https://zhuanlan.zhihu.com/p/83732424 交易接口支持 目前2.0版…

讲 透Object.prototype.toString.call()

Object.prototype.toString.call() 这个方法是用来判断数据类型的&#xff0c;主要用到的知识点是原型&#xff0c;原型链&#xff0c;toString(),call toString 每个对象都有一个 toString() 方法&#xff0c;当该对象被表示为一个文本值时&#xff0c;或者一个对象以预期的…

DeepSort 解读

1 摘要 DeepSort是在Sort目标追踪基础上的改进。引入了在行人重识别数据集上离线训练的深度学习模型&#xff0c;在实时目标追踪过程中&#xff0c;提取目标的表观特征进行最近邻匹配&#xff0c;可以改善有遮挡情况下的目标追踪效果。同时&#xff0c;也减少了目标ID跳变的问…

总结SPOT系列卫星发射情况

SPOT系列卫星是法国空间研究中心自1978年开始立项研制的对地观测卫星系统&#xff0c;自1986年成功发射SPOT 1卫星以来&#xff0c;该系列卫星获得了大量全球卫星观测影像数据&#xff0c;应用于测图、土地利用等诸多领域。目前共发射SPOT 1-7共7颗卫星&#xff0c;其发射时间及…

hive 修改cluster by算法_疯狂Hive之DML操作(四)

DML操作 Load 在将数据加载到表中时&#xff0c;Hive不会进行任何转换。加载操作是将数据文件移动到与Hive表对应的位置的纯复制、移动操作。 语法结构&#xff1a; load data [local] inpath ‘filepath’ [overwrite] into table tablename [partition(par2val1,par2val2....…

RT-Thread Studio学习(十一)IIC

RT-Thread Studio学习&#xff08;十一&#xff09;IIC 一、简介二、新建RT-Thread项目并使用外部时钟三、设置AT24Cxx的驱动框架四、驱动代码移植五、测试六、总结 一、简介 本文将基于STM32F407ZGT芯片介绍如何在RT-Thread Studio开发环境下访问AT24C256模块。 操作系统&am…

从根上理解操作系统(二)

目录 进程 1、进程到底是什么 2、怎么知道时间片用完的 3、进程切换 4、进程初始化 5、任务堆栈 6、系统调用 进程 程序是一个可执行文件&#xff0c;而进程是一个执行中的程序实例&#xff0c;所以可以认为 进程 进程资源 执行序列 利用分时技术&#xff0c;在操作系统…

【ubuntu18.04】meson 安装 及python升级python3.9

发现openh264 支持meson 发现openh264 支持meson 写的也太简单了完全不知道openh264 到底怎么搞meson看起来支持windows和ubuntu先安装python3 参考大神: 注意:meson安装前必须确认是否已经安装python3.5及以上版本;因为meson依赖于python3和ninja 1 安装python3和ninja:su…

KEAZ128 时钟配置

本文介绍如何用KEAZ128评估版&#xff08;FRDM-KEAZ128Q80&#xff09;配置为40MHz core freqency/20MHz bus frequency。 1.了解器件时钟特性 参见NXP KEA128 DS&#xff08;S9KEA128P80M48SF0.pdf )&#xff0c;可以知道这个MCU最高支持48MHz core frequency. 从KEA128 RM&…

《软件工程》整理

目录 Scrum开发 概念 scrum开发流程 Scrum开发 需求获取&#xff08;拆分&#xff09; DevOps Server的CMMI模型对需求的层级划分&#xff0c;Epic&#xff08;长篇故事&#xff09;、Feature&#xff08;特性&#xff09;、Requirement&#xff08;需求&#xff09;其中&am…

RTKLIB源码调试.trace文件解析.stat文件解析

.trace文件是调试文件&#xff0c;帮助用户在程序、输入数据时&#xff0c;进行分析的一个很好的提示&#xff01; .trace文件的生成、trace文件内容的生成&#xff0c;均在execses中&#xff01; 以单点定位为例&#xff0c;大体流程为&#xff1a; 生成.trace文件&#xf…

sopt:一个简单的python最优化库

sopt:一个简单的python最优化库引言 最近有些朋友总来问我有关遗传算法的东西&#xff0c;我是在大学搞数学建模的时候接触过一些最优化和进化算法方面的东西&#xff0c;以前也写过几篇博客记录过,比如遗传算法的C语言实现(一):以非线性函数求极值为例和C语言实现粒子群算法(P…

python古诗词生成_Python一日一练02----诗词生成器

要求 编写一段程序&#xff0c;可以自动生成小诗。 格式如下 源码 import random import sys articles ["the", "a", "another", "her", "his"] subjects ["cat", "dog", "horse", "m…

LSTM古诗词生成

Le LSTM古诗词生成 一、简介 基于LSTM的古诗词生成&#xff0c;设计神经网络模型&#xff0c;使模型学习数据是6291首古诗&#xff0c;没有专门的验证数据和测试数据&#xff0c;感觉不会预测正确。边学习边生成古诗&#xff0c;从生成的古诗来看学习的效果。 涉及到的模块有Py…

宋词自动生成

利用宋词语料库&#xff0c;通过单双词的组合与模板的匹配&#xff0c;实现指定词牌宋词的生成 import random import tkinter as tk import re from tkinter import messageboxlist []class Window:# 界面设计def __init__(self, root):label1 tk.Label(root, text输入词牌…

基于Python的宋词生成器

资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85631523 1. 背景 我有两个爱好&#xff0c;一个是传统文化&#xff0c;另一个是高新技术。 传统文化&#xff0c;我喜欢唐诗宋词、笔墨丹青&#xff0c;高新技术我则从事前沿的IT编程&#xff0c;喜…

基于java的古诗词生成管理系统

10161-古诗词生成管理系统 开发工具 eclipse tomact mysql jdk 功能详情&#xff1a; 古诗搜索、古诗问答、机器回复、古诗管理&#xff08;添加古诗、古诗分类、古诗标签、古诗列表&#xff09;、用户管理

田字格字帖生成器、孩子取名系列工具

大家好&#xff0c;我是小寻&#xff0c;欢迎关注公众号:工具优选&#xff0c;免费领取优质项目源码和常用工具&#xff0c;还可以加入我的交流群! 这是是一款2013年上线的在线小工具集&#xff0c;包括了 13 款中文学习工具&#xff0c;有田字格字帖、拼音田字格、古诗词字帖…

有趣的深度学习——使用TensorFlow 2.0 + RNN 实现一个古体诗生成器

一、前言 很早之前&#xff0c;我曾经写过一个古体诗生成器&#xff08;详情可以戳TensorFlow练手项目二&#xff1a;基于循环神经网络(RNN)的古诗生成器&#xff09;&#xff0c;那个时候用的还是Python 2.7和TensorFlow 1.4。 随着框架的迭代&#xff0c;API 的变更&#x…

现在还可以一键自动生成古诗词,你知道吗?

人类在漫长的历史长河中&#xff0c;一直在探索着各种各样的美好&#xff0c;不断地追求着更高的境界。而如今&#xff0c;随着科技的不断发展&#xff0c;人工智能已经成为了我们得力的伙伴之一&#xff0c;为我们带来了更多的便利和可能性。尤其是在艺术和文化领域&#xff0…