CTP柜台在期货领域具有举足轻重的地位,其提供的API以代码风格的规范著称。近期实现了一下对其接口的测试,使用起来还是比较简单清晰的,发现的一个问题就是接口与字段太多了,对使用者的理解增加了不少难度,好在对大多数使用者来说,不需要搞清楚所有的接口和字段。

因为CTP接口的规范性,我这里将其接口抽象成了了几种元素,进一步通过python脚本自动生成了一些代码,以达到对所有回调函数的所有字段进行日志记录的功能。同时对一些关键的接口进行了测试。因为篇幅限制,这里仅列出部分接口的代码实现,如果感兴趣可以移步 GitHub 获取完整代码。

CTP 的SPI类其回调函数主要分为五类,On、OnRsp、OnRspQry、OnErrRtn、OnRtn:

以On开头的回调函数参数通常是一些简单的类型或者无参数;

以OnRsp和OnRspQry开头的回调函数参数,包含 一个Field 结构,加一个固定的 CThostFtdcRspInfoField 结构,还有两个简单的参数 int nRequestID 和 bool bIsLast;

以OnErrRtn开头的回调函数参数,包含 一个Field 结构,加一个固定的 CThostFtdcRspInfoField 结构;

以OnRtn开头的回调函数参数,仅包含 一个Field 结构。

一些元素的抽象如下所示,

<?xml version="1.0" encoding="utf-8"?>
<root><fields><fie

CTP API对接与测试相关推荐

  1. 转:彻底搞定期货穿透式CTP API接入

    中信期货看穿式监管认证操作指南(CTP系统) https://www.citicsf.com/static/download/soft/%E4%B8%AD%E4%BF%A1%E6%9C%9F%E8%B ...

  2. iceberg对接flinksql测试

    Apache Iceberg对接Flinksql测试 最新更新 https://blog.csdn.net/weixin_49218925/article/details/114833693 Apac ...

  3. java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录

    java金蝶星空云金蝶Java 对接 金蝶云星空 接口 对接 金蝶API 对接 金蝶 接口 解决 会话失效 问题 会话已失效,请重新登录 1.准备工作 1.1 接口调用账户 1.2 下载 金蝶星空云 ...

  4. 钉钉开放平台API对接第一讲

    DING日程-API对接: 官方API:https://ding-doc.dingtalk.com/doc#/serverapi2/iqel76 对接评语: 优点:钉钉API对接相对于微信API对接比 ...

  5. OpenOrder解决CTP API的一系列问题说明

    1 如何接入CTP进行交易? OpenOrder提供了策略框架,简单的策略只需要继承strat::Instance类,定义load(初始化策略.订阅行情),onData(处理行情数据)即可.对接CTP ...

  6. 【vn.py】期货穿透式CTP API接入

    文章目录 写在前面 一.申请穿透式接入 二.填表提交AppID 三.拿到AuthCode 四.仿真测试 五.期货公司校验 六.实盘接入 其他 REF 写在前面 由于6月14日当天,所有期货公司的柜台系 ...

  7. 使用CTP API接口交易期货股票期权国债全市场品种

    OpenOrder_CTP CTP接口的二次封装,实现委托状态和成交的严格排序与缓存,还可以省心支持对接CTP之外的其他证券交易柜台,如LTS.QMT.UFT.TradeX等. OpenOrder(C ...

  8. 头条巨量快手广点通等平台APPAPI回传事件注册激活-转化联调-API对接原理代码分析和功能实现

    2022年最新的头条巨量快手广点通等各推广平台APP&API回传事件-转化联调注册激活-API对接原理代码分析和功能实现! 在商户推广管理当中,经常碰到 需要将用户行为数据回传给推广平台.做转 ...

  9. 顺丰快递单号查询接口物流路由跟踪信息快递鸟api对接教程

    目录 1.完成前期准备工作 2.API接口 3.请求参数(Headers) 4.请求参数(Body) 5.返回参数(Return) 6.请求完整报文(示例) 7.成功返回报文(示例) 8.失败返回报文 ...

最新文章

  1. python argparse_Python 命令行之旅:初探 argparse
  2. 160个Crackme026之六段式注册码详解
  3. 为什么Map桶中个数超过8才转为红黑树
  4. 面试:整理面试中常被问到的8种数据结构
  5. codeforces1167 E. Range Deleting(双指针)
  6. matlab amd补丁,Matlab升级 AMD锐龙性能恢复满血:轻松提升60%
  7. Size Balanced Tree
  8. Git LFS的使用
  9. C++_类和对象_C++运算符重载_加号运算符重载_实现两个对象相加_对象和int类型相加_通过成员函数重载+号_全局函数重载+号_以及重载_运算符重载函数实现---C++语言工作笔记055
  10. t–sql pl–sql_SQL Server性能疑难解答的DBA指南–第1部分–问题和性能指标
  11. 表单相关标签之textarea,select
  12. URLDecoder解码异常 URLDecoder: Illegal hex characters in escape (%) pattern - For input string: “xxx“
  13. [转]RUP (From 中科永联)
  14. 多维向量空间中点到线的距离公式
  15. 线程局部存储-pthread_getspecific和pthread_setspecific使用
  16. mysql讲事物写到数据库_CookBook/1-MySQL数据库读写锁示例详解、事务隔离级别示例详解.md at master · Byron4j/CookBook · GitHub...
  17. python保存变量_python | 变量-保存与命名规则
  18. qt设置背景图片注意事项
  19. unwallet奖金制度解析
  20. python起笔落笔__怎样在python里让海龟画图抬笔落笔?

热门文章

  1. java softreference_Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReference...
  2. 用计算机生成或打印机,因为打印机只是输出设备,所以同一台打印机可以根据需要连接在涉密计算机或非涉密计算机上使用 - 作业在线问答...
  3. Apache详解,并发数设置
  4. return函数的用法java_return用法总结
  5. [电脑小白] 重装系统 ——笔记本/台式win7/8/10系统下载网站
  6. MongoEngine自定义Queryset
  7. 【CFW】浏览器[自动]选择是否走代理,桌面软件不走代理
  8. 区块链信用:交易的热力学第二定律
  9. SVN配置及简单操作(HM程序员课程最全笔记)
  10. N个技巧,编写更高效 Dockerfile