CTP-API开发系列之四:接口对接准备

CTP-API开发系列之四:接口对接准备

  • CTP-API开发系列之四:接口对接准备
    • CTP-API文件清单
    • CTP-API通用规则
      • 命名规则
      • Spi与Api
    • CTP-API通讯模式
    • 开发语言选择

CTP-API开发系列之四:接口对接准备

CTP-API文件清单

文件名说明
ThostFtdcTraderApi.h交易接口,C++头文件,包括 CThostFtdcTraderSpi类和CThostFtdcTraderApi类
ThostFtdcMdApi.h行情接口,C++头文件,包括CThostFtdcMdSpi类和 CThostFtdcMdApi类
ThostFtdcUserApiDataType.h定义了接口使用的业务数据类型
ThostFtdcUserApiStruct.h定义了接口使用的业务数据结构
thosttraderapi_se.libwindows系统下交易接口静态库
thosttraderapi_se.dllwindows系统下交易接口动态库
thosttraderapi_se.solinux系统下交易接口动态库
thostmduserapi_se.libwindows系统下行情接口静态库
thostmduserapi_se.dllwindows系统下行情接口动态库
thostmduserapi_se.solinux系统下行情接口动态库
error.xml包括所有接口可能的错误提示信息
error.dtd

CTP-API通用规则

命名规则

在这里插入图片描述

Spi与Api

Spi (如 CThostFtdcTraderSpi),包含有所有的响应和回报函数,用于接收综合交易平台发送或交易所发送
综合交易平台转发的信息。开发者需要继承该接口类,并实现其中相应的虚函数。
Api (如 CThostFtdcTraderApi),包含主动发起请求和订阅的接口函数,开发者直接调用即可。

CTP-API通讯模式

CTP-API是建立在TCP协议之上FTD协议与柜台系统进行通讯,柜台系统服务投资者的交易业务处理以及与各个交易所之间的通信。

FTD协议涉及的通讯模式共有三种:

  • 对话通讯模式: 对话数据流和查询数据流
    • 由客户端主动发起的通讯请求,该请求被交易系统端接收和处理,并向客户端返回响应。例如登录请求与响应接口ReqUserLogin/OnRspUserLogin、请求查询账户资金与响应接口ReqQryTradingAccount/OnRspQryTradingAccount等。
  • 私有通讯模式:私有数据流
    • 交易系统端主动向某个特定的客户端发送信息。例如报单回报接口 OnRtnOrder、成交通知接口 OnRtnTrade、执行宣告通知接口OnRtnExecOrder、期权自对冲通知接口 OnRtnOptionSelfClose等 。
  • 广播通讯模式:公共数据流
    • 交易系统端主动向所有连接到系统上的客户端都发出相同的信息。如行情通知接口 OnRtnDepthMarketData、合约状态推送接口 OnRtnInstrumentStatus等。
      在这里插入图片描述

开发语言选择

  • 【官方】首选c/c++
    • 优点:官方接口使用的语言,文件清单可以直接使用
    • 缺点:c/c++语言入门有一定的门槛
  • 【官方】java、Object-C
    • 2022-12-12 官方网站首次提供支持移动端(Android、ios)的接口,这两种语言也可以直接对接开发
  • 【非官方】 python
    • 官网没有提供python语言的接口,需根据官方提供文件清单进行二次封装,比如swig;当然也能搜到别人封装好的python版本
    • 后续做策略开发,回测系统,使用python语言开发效率会高一些
    • 其他语言也是一样,需要自行进行二次封装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/270641.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端:组件化微前端:iframe嵌入式微前端: 优点缺点 动态加载/懒加载微前端:微应用容器化方案: 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

kafka消费端消息去重方案

背景 我们在日常工作中,消费kafka消息是一个最常见的操作,不过由于kafka队列中经常包含重复的消息,并且消息量巨大,所以我们消费端总是需要先把消息进行去重后在消费,以减少消费端的压力,那么日常中我们一…

Android视角看鸿蒙第一课(工程目录)

Android视角看鸿蒙第一课(工程目录) 导读 鸿蒙马上就来了,这个工作很有可能落到Android开发的头上,既是机遇也是挑战,希望能跟上时代的浪潮,迫不得已开始学习鸿蒙开发,顺带分享记录下 我的学…

四、神经网络语言模型(NNLM)

神经网络(Neural Network,NN)主要由输入层、隐藏层、输出层构成,输入层的的节点数等于待处理数据中输入变量的个数(每一个变量代表了一个特征),输出层的节点数等于与每个输入变量关联的输出的数…

docker mysql主从复制

新建主服务器容器实例3301 mysql 主 3301 docker run -p 3301:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -v /home/mysql/mysql-files:/var/lib/…

微信小程序开发学习笔记《18》uni-app框架-网络请求与轮播图

微信小程序开发学习笔记《18》uni-app框架-网络请求 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、下载网络请求包 这个包是以前黑马程序员老师写的一个包,跟着课程学习&#x…

【仿真总结】基于matlab的传递函数计算与绘图

前言 在DC-DC电路控制算法中,PID控制是最常见且实用的,但实现前提有二,一是需要手算电路传递函数,二是需要将实际电路元件数值代入计算,第一步无法避免,但是在进行第二步时,存在大量基础、细致的…

Qt入门(一)Qt概述

Qt是什么? Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库,还包括诸多配套的开发工具如QtCreater,GUI Designer。Qt本身是由C开发的,但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术,最重要的是…

蓝桥杯-Set

目录 HashSet类常用方法 1 add(Object obj)方法 2 size() 方法 3 remove(Object obj)方法 4 contains()方法 5 clear() 方法 例题实战 set 一个不允许出现重复的元素,并且无序的集合,主要有HashSet实现类。 在判断重复元素的时候,Set集…

基于Python实现银行卡识别

在本文中将介绍如何使用Python和深度学习技术来实现银行卡识别功能。银行卡识别是一个在金融、安全等领域具有重要应用的问题,将使用深度学习模型来实现银行卡图像的识别和分类。 目录 引言数据集准备预处理和特征提取模型选择与训练模型评估与性能优化部署与应用 引…

第三百八十六回

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Snackbar Widget相关的内容,本章回中将介绍TimePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的TimePickerDialog是一种弹出窗口,只不过窗口的内容固定显示…

[Redis]——数据一致性,先操作数据库,还是先更新缓存?

目录 一、操作缓存和数据库时有三个问题需要考虑: 1.删除缓存还是更新缓存? 2.如何保证缓存与数据库的操作同时成功或失效 3.先操作缓存还是先操作数据库(多线程并发问题) 二、 缓存更新的最佳策略 一、操作缓存和数据库时有…

heic怎么转换成jpg?3个方法帮你一键批量转换

heic怎么转换成jpg?在日常生活中,将HEIC转换为JPG可以为我们带来诸多便利。JPG格式作为一种广泛被接受的图片格式,不仅兼容性更强,还能在各种设备和平台上顺畅显示。这意味着,无论是上传到社交媒体,还是发送…

观其大略之HybridCLR学习笔记

问题背景 1 现有热更方案的开发效率、性能没有到达极限,还有提升的空间 2 ios多平台政策导致热更新受限问题,ios禁止jit。根据我查找的资料,ios的代码段启动的时候就确定了,不能增加新的代码段。IOS封了内存(或者堆&…

MySQL基础-----SQL语句之DDL数据定义语句

目录 前言 开启登录数据库 一、数据库操作 1.查询所有数据库 2.切换使用数据库 3.查询当前使用的数据库 4.创建数据库 创建一个hello数据库, 使用数据库默认的字符集。 创建一个itheima数据库,并且指定字符集 5.删除数据库 二、表操作 1.查询当前数据库所有…

html样式排版

<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…

可调恒定电流稳压器NSI50150ADT4G车规级LED驱动器 提供专业的汽车级照明解决方案

NSI50150ADT4G产品概述&#xff1a; NSI50150ADT4G可调恒定电流稳压器 (CCR) &#xff0c;是一款简单、经济和耐用的器件&#xff0c;适用于为 LED 中的调节电流提供成本高效的方案&#xff08;与恒定电流二极管 CCD 类似&#xff09;。该 (CCR) 基于自偏置晶体管 (SBT) 技术&…

thinkphp学习12-数据库的时间查询

传统方式 可以使用>、<、>、<来筛选匹配时间的数据&#xff1b; public function index() {$res Db::name(user)->where(create_time, >, 2018-1-1)->select();dump($res); }可以使用 between 关键字来设置时间的区间&#xff1b; public function in…

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复&#xff0c;初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图&#xff1a; 1.isFucntion is not function&#xff0c;是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…

vue3+ts项目创建 使用npm create vue@latest

npm create vuelatest相关创建代码&#xff1a;