CTP程序化交易入门系列之四:行情订阅常见问题解答

2023-11-14

前言

这一章总结了大家订阅行情最常问的一些问题的相关解答,希望能有帮助。如有不对的地方,欢迎指正。后期会在这里更新迭代,欢迎到这底下提问!

更新时间:20201112

1 获取行情的地址在哪里可以查到?

simnow发的即是实时行情,官网上可以看到该行情地址。

期货公司行情地址可咨询期货公司,或者到对应公司官网下载个快期,点击测速就可以看到。主要期货公司的行情地址可以在公众号(微信搜索:QuantRoad2019)后台回复 “地址” 得到。

多提一点,行情订阅不需要密码,但是ReqUserLogin还是要调用的,如下就可以:

CThostFtdcReqUserLoginField reqUserLogin = {0};
m_pUserMdApi->ReqUserLogin(&reqUserLogin, nRequestID++);

2 怎么知道有哪些合约正在交易(有行情)?

行情API里面很坑的一点是没有查询合约的功能。虽然二代行情里面加了ReqQryMulticastInstrument接口,但也仅是查询组播合约,需要咨询期货公司是否连接到相关交易所组播行情。所以有三种做法获取合约号:

1)通过交易API登录调用函数ReqQryInstrument查询;

2)爬交易所网站获得可交易合约;

3)交易所可交易合约有规则,例如上期白银为当前月开始的下个月的连续12个合约,当前为8月,那即是从ag1909到ag2008,找出这些规则生成合约编码即可。

3 API调用init后为啥没有任何反应?

和demo运行没有任何反应或者没有OnFrontConnected回调问题类似。

1)先检查网络链路是否畅通,可以telnet一下行情前置地址,是否通畅。

2)再检查API版本是否正确,连生产或者simnow现必须是6.3.15版本api,版本不正确将没有回调。

提醒:simnow正常地址是交易时间使用,7*24小时地址是非交易时段可以使用。

4 为什么登陆上了订阅显示成功但没有行情?/Simnow订阅期权合约没有行情?

首先确保是否订阅成功。CTP坑的是无论你订阅什么合约id,都会返回你"CTP:No Error",但只有你填对了合约编码才有相应行情。所以:

1)检查编码是否正确。这里坑的是各交易所对命名格式并不统一,

期货合约如下:前面字母代表品种名,后面数字代表合约到期日。

上期/能源所 小写+4个数字(rb1909代表rb品种,19年9月份到期)
中金所 大写+4个数字
郑商所 大写+3个数字(TA001代表TA品种,20年01月份到期)
大商所 小写+4个数字

期权合约如下:标的期货合约+看涨/看跌+行权价

上期所 小写+四个数字+C(或者P)+行权价,如cu1912C43000
大商所 小写+四个数字+ -C-(或者-P-)+ 行权价,如c2001-C-1800
郑商所 大写+三个数字+C(或者P)+行权价,如CF001C11200
中金所 大写+四个数字+ -C-(或者-P-)+ 行权价,如IO1908-C-2100

组合合约如下:

郑商所跨期

SPD 第一腿&第二腿 例如: SPD TA009&TA011

郑商所跨品种

IPS 第一腿&第二腿 例如: IPS CF009&CY009

大商所跨期

SP 第一腿&第二腿 例如: SP m2009&m2101

大商所跨品种

SPC 第一腿&第二腿 例如: SPC a2009&m2009

2)检查你订阅的行情是否过期。如果现在是19年8月份,那你订阅的是rb1905这种5月份到期的合约那肯定是没有行情的。

3)检查是否订阅的合约是冷门合约,冷门合约行情跳动比较少。可以打开相应客户端看下,找主力合约订阅。

4)目前Simnow不支持期权及组合报单,也没有相关行情。想要获取请参照1直接从生产上获取。

5 CTP提供的是实时tick数据吗?

CTP提供的是实时tick数据,但不是真正的tick数据。tick数据一般是指市场上的逐笔数据,例如一笔委托会产生一笔行情,一笔成交也会产生一笔行情。目前国内期货交易所还不支持推送这种逐笔的数据,只推送切片(快照)数据。切片数据是指将一定时间内的逐笔数据统一成一个快照发出,一般是1秒2笔。但郑商所有点特殊,可能是1s多笔,就不展开来讲了。

6 TradingDay和ActionDay有什么区别?

在CTP的设计里,TradingDay用来表示交易日,ActionDay表示当前实际日期。期货交易分为日夜盘,这两个日期在日盘的时候是一致的,但在夜盘就有了区别,是因为当天夜盘是属于第二天这个交易日。例如20190830(周五)晚上21点开始交易,交易日TradingDay是20190902(周一),但实际日期ActionDay是20190830。

这是设计的初衷,但事实上夜盘各交易所这两个日期很混乱。我们以20190830晚上夜盘交易举例:

  tradingday  actionday
上期/能源 20190902 20190830
大商所 20190902 20190902
郑商所 20190830 20190830

总结就是,大商所夜盘两个日期都是tradingday,郑商所日夜盘都是当天日期。

7 可以通过CTP API获得K线,现手等数据吗?

没法直接获得k线数据,需要根据ctp推送的行情数据自己合成。如何合成,参考上篇文章。同样无法获得现手增仓等数据,需要自己计算,后面会讲。

8 CTP支持股票/股票期权行情么?

一般提及CTP是指CTP期货柜台,只提供国内五大期货交易所期货行情。但CTP也有股票及股票期权柜台,这些柜台是与期货柜台独立的。也就是说,期货,股票,股票期权在上期技术是三套系统。目前股票系统已经停止维护了,股票期权系统仍然有维护,客户不多,具体哪些期货公司上线了这套系统,需要自行咨询上期技术或者期货公司。

9 可以通过CTP API获得历史行情吗?

不可以,CTP只提供实时行情。获取历史行情,目前免费的可以从天勤获取,仅提供所有期货合约。收费的可以和作者联系沟通(联系方式见置顶文章),提供国内股票,期货及美国股票及期货相关所有历史数据。

10 CTP提供level2行情吗?

level2行情是指深度行情,不同于level1只有1档,level2有多档。但除上期和能源外,一般交易所多档行情是收费行情,所以深度行情需要咨询相应期货公司。

目前上期和能源的level2行情对期货公司是免费的,但各个期货公司用哪家系统转发,要不要收费就要看他们自己了。所以最好去咨询期货公司,可以多咨询几家。至于在有些客户端上为啥能看到五档行情,因为那些客户端是接了自己公司的行情服务器,不一定是连CTP收的。

11 非交易时段收到行情是怎么回事?

日盘盘前可能会收到行情,是因为CTP日盘起动时会重演夜盘的流水,所以有可能会将夜盘的行情再推送一遍。日盘结束后也会收到行情,这是交易所结算完成发出的行情,这里面的结算价字段是当日结算价,一般推送时间在3点~3点半。建议按照交易时间过滤掉这些非盘中行情,以免影响交易逻辑。

12 组合合约行情如何获得?

CTP是不会去计算组合合约的行情的,只是转发交易所行情,所以要看交易所推不推。事实上直接以组合合约号订阅行情的话,郑商所和大商所都会推,但比实际情况下少不少。所以建议订阅各个单腿合约的行情,计算价差自己得到组合行情。

13 如何获取当前切片内的成交量?

Volume字段是累计成交量,这里是指这个交易日内的累计成交量。如需要这个切片内的成交量,需要用这个切片的该字段值,减去上个切片相应值,差额即是这个切片内成交量。

14 UpdateMillisec毫秒时间戳字段有效吗?

上期/能源/中金三个交易所会出现0和500两种值,大商所值是切片时真实毫秒时间,郑州该值都是0。

15 为什么有的字段值特别大?

行情中常看到有数值是1.7976931348623157e+308,这是double类型的上限值,在CTP内部是表示无效的。例如盘中的时候,本次结算价字段SettlementPrice即为无效值。

16 行情均价AveragePrice字段有什么坑?

AveragePrice这个字段除郑商所可以直接拿过来用之外,其它四大交易所要除以合约乘数,才是真正的均价。至于合约乘数是什么百度吧,可以通过用交易API查询合约获得,或者去交易所网站上查询获得。

17 CTP上可以查到什么是主力合约吗?

查不到,自己根据持仓量和成交量筛选,注意换月时逻辑。

18 行情里面的Exchange ID字段为空?

是的,发过来就是空值,需要自己维护,可以从交易接口查询合约ReqQryInstrument得到。

19 行情中UpdateTime和UpdateMillisec字段不是每500毫秒一次连续的,是缺数据吗?

首先,不连续不代表就是缺失数据,行情如果没有更新就不会回调OnRtnDepthMarketData函数,这个时间自然不是连续的。其次,通常来说,在simnow同时在线用户多,卡顿的情况下有可能缺失数据,但是在生产上不大可能。请参考第1问,不能说的更直接了,能连生产数据为啥还要连simnow呢?不过也不排除生产上会丢数据,不放心的话可以同时接入几路生产地址互相比对。

20 期货合约是每500ms都推送行情吗?为何同一时期主力和非主力合约一个交易日tick数量相差巨大?

以下图2020年11月份rb为例,主力rb2101和非主力rb2105的tick数量两个交易日相差将近8000个。这其实和19问相似,因为CTP只有行情有更新时才推送,否则不推送,所以主力合约会多不少。行情更新是指行情回调接口中相关字段有所变化。

往期推荐

● CTP程序化交易入门系列之一:准备

● CTP程序化交易入门系列之二:API基本架构及初始化

● CTP程序化交易入门系列之三:获取实时行情及K线合成

 

下节预告:

交易所行情知多少?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTP程序化交易入门系列之四:行情订阅常见问题解答 的相关文章

  • 万得Wind量化与东方财富Choice量化接口使用

    接口需要付费 这里接口的付费和配置就不展开了 wind相对容易配置 直接用软件就可以点击并配置 东财请参考 Mac使用Python接入东方财富量化接口Choice 调试与获取数据 但有一点需要注意 wind使用量化接口的时候wind终端需要
  • 量化策略——准备1 系列简介

    文章目录 系列简介 系列重点 避坑 系列简介 量化策略 xxxx 是博主近期新开的一个系列 主要有以下四个方面的内容 量化选股 选择大概率赚钱的好股票 量化择时 选择低买高卖的好时机 量化套利 利用不同市场 品种 价格共识等 进行价差套利
  • 股票期货盈亏比的计算,胜率与盈亏比的关系

    胜率 目标周期内盈利的交易次数占总交易次数的比例 盈亏比 平均盈利金额与平均亏损金额的比值 比如 盈利次数 70 盈利总金额 7000 亏损次数 30 亏损总金额 7500 那么盈亏比 7000 70 7500 30 0 4 它可以这样理解
  • 领鹿谷资讯:量化的收益,让你意想不到

    从事这行业久了 总是会被问及到的众多问题 也都是千篇一律的 比如 我该怎么做 学什么 怎样才能盈利 你们是用什么方法 可以带着我做吗 为什么我总选不对品种 方向 是不是你们能预测行情 你们有什么消息 能不能下次也告诉我 其实每一个阶段的投资
  • 转:彻底搞定期货穿透式CTP API接入

    中信期货看穿式监管认证操作指南 CTP系统 https www citicsf com static download soft E4 B8 AD E4 BF A1 E6 9C 9F E8 B4 A7 E7 9C 8B E7 A9 BF E
  • 期货量化交易程序CTP入门指南 一

    周末综合征 周末爬山 跑步导致周一上班困的啥都不想做 正好趁这个时间写一下前两周做的一个期货网格化工具 算是给后面要入门的兄弟尽点微薄之力 虽然网上的资料已经足够多 我本对期货一无所知 仅知道 期货 二字而已 但受朋友之托开发一款网格化工具
  • 解决Backtrader中self.broker.get_value()值为nan与问题解析

    解决方法 删除数据源中close为空的行 或者更极端一点 删除存在空值的行 主要查看数据源是否存在缺失值 如果使用Backtrader的默认逻辑 计算value会对应收盘价 收盘价不能有缺失值 如果使用开盘价购买 则开盘价不能有缺失值 问题
  • 分布式高频量化交易系统架构讲解(企业版,期货ctp,股票xtp,数字货币,附全部源码)(值得收藏)

    目录 1 量化交易系统简介 1 1行情数据 1 2交易策略 1 3交易 2 分布式高频量化交易系统 2 1 架构图 2 1 1量化交易系统教程地址 2 1 2量化交易系统教程中讲解的期货ctp知识点 2 2 交易系统功能介绍 2 3 账户系
  • Backtrader获得当前持仓详情——持仓数量与持仓的名称

    Backtrader通过Position得到持仓的情况 Position官方文档 https www backtrader com docu position 在策略中 使用self broker positions获取全部的仓位情况 包括
  • ZeroQuant与SmoothQuant量化总结

    ref ZeroQuant Efficient and Affordable Post Training Quantization for Large Scale Transformers SmoothQuant Accurate and
  • Python股票历史数据预处理(一)

    Python股票历史数据预处理 一 在进行量化投资交易编程时 我们需要股票历史数据作为分析依据 下面介绍如何通过Python获取股票历史数据并且将结果存为DataFrame格式 处理后的股票历史数据下载链接为 http download c
  • 恒生ufx接口转变成CTP接口

    由于当初自己的程序是对接ctp接口 里面大量使用了ctp的东西 但最近又要对接恒生的系统 想着不改整个程序 把ufx接口封装成ctp的接口形式 这样上层的业务逻辑都不用改了 已实现的主要功能 ReqUserLogin ReqOrderIns
  • CTP: 为什么报网络原因发送失败,但连接却成功?

    碰到一个很妖的问题 最后请教一位高手把问题定位到 md is logining ptr 0x7f0318027d80 init gt init lt get api version v6 5 1 20200908 10 25 08 get
  • Backtrader量化&回测11——策略信号Indicator

    对于程序来讲 该有的代码一行都不会少 但是把代码分块就可以很直观的阅读或修改代码 使用Indicator可以将策略的信号从策略类Strategy中脱离出来 方便策略进行协调与控制 文章目录 策略信号 示例代码 策略信号 官网中对于Indic
  • CTP的交易指令类型

    在入场进行期货交易的时候 我们会向期货交易所放送订单 除了最基本的多空方向以及价格之外 订单还有不同的执行时机 触发条件 和执行方式 不清楚不同交易订单的特性 很容易造成本来可以避免的交易损失 我花点时间捋一遍CTP系统支持的不同种类的交易
  • 神经网络量化

    前言 神经网络在图像 语音识别等领域使用越来越广泛 大部分实时性要求不高的服务都可以部署在云上 然而还是有不少模型需要在计算能力有限的可移动设备上快速运行 如人脸解锁 拍照视频的实时处理等 一般训练的模型采用的都是32位浮点数 考虑到大部分
  • 风险平价组合(risk parity)理论与实践

    本文介绍了风险平价组合的理论与实践 后续文章将对risk parity组合进行更深入探讨以及引入预期收益后的资产配置实战策略 感兴趣的朋友可以直接前往BigQuant人工智能量化投资平台克隆代码进行复现 前言 资产配置是个很广泛的话题 在投
  • pytorch FX模型静态量化

    文章目录 前言 一 pytorch静态量化 手动版 踩坑 二 使用FX量化 1 版本 2 代码如下 总结 前言 以前面文章写到的mobilenet图像分类为例 本文主要记录一下pytorchh训练后静态量化的过程 一 pytorch静态量化
  • Youtube ASX Portfolio的视频笔记 What is a Quant? - Financial Quantitative Analyst

    What is a Quant Financial Quantitative Analyst YouTube youtube 上搜 option pricing 很多讲解 Stochastic Calculus的 In this video
  • python量化 双均线策略(金叉死叉)

    小策略 策略逻辑是在金叉时候买进 死叉时候卖出 所谓金叉死叉是两条均线的交叉 当短期均线上穿长期均线为金叉 反之为死叉 1 jqdata 网页端执行 下面是策略代码及结构 导入函数库 from jqdata import 初始化函数 def

随机推荐

  • poi解析Excel文件版本问题

    poi解析Excel文件时有两种格式 HSSFWorkbook格式用来解析Excel2003 xls 的文件 XSSFWorkbook格式用来解析Excel2007 xlsx 的文件 如果用HSSFWorkbook解析Excel2007 x
  • 分析Python招聘数据,可视化展示招聘信息详情

    前言 一 数据来源分析 1 明确需求 明确采集网站以及数据内容 数据 职位信息 网址 https we 51job com pc search keyword python searchType 3 sortType 0 metro 2 抓
  • 亚信实习第一周

    自从上周五 怀着激动 忐忑的心情来到亚信报到之后 截止到今天 正好上了一周班 对这一周做了什么 进行一下回顾 周一 因为第一天上班 所以起了个大早 来到公司时才八点多一点 九点才上班 由于是第一天上班 就是看了看公司现在做的项目是什么 总体
  • 运行python报错ImportError: Unable to import required dependencies: numpy

    真是气死了 之前在VsCode上用jupyter写python好好的 过了一段时间没写python 今天再一打开运行python代码就出错了 一开始是报的这个错 Error loading preloads Could not find r
  • 串口中断怎么触发两次_“中断”-嵌入式的灵魂

    最近个人情绪不是很好 断了好几天 今天试着恢复每日一更 今天给大家讲一下 中断 一个让我刚开始接触单片机头疼的概念 我相信也是很多初学者头疼的地方 之所以头疼只是因为他太过于抽象 本章我用形象的举例来给大家讲出来 注意 本章节我用Ardui
  • 如何使用nodejs快速搭建本地服务器

    1 首先要安装好node js 2 以下有安装包下载的链接 这里的安装包是 msi 如果要其他的 可以到菜鸟教程上去找 32 位安装包下载地址 https nodejs org dist v4 4 3 node v4 4 3 x86 msi
  • 【Ubuntu】vscode配置PCL库/vscode无法导入PCL库

    问题 PCL库是ROS框架自带的点云处理库 可以通过find package PCL REQUIRED 在CMakeLists txt中导入 但是vscode却无法识别 出现问题如下 注意 本文解决方案仅限Ubuntu 解决方案 打开工程路
  • 如何调用股票交易软件api接口?

    随着人们的生活水平越来越高 人们可以通过公司的股票交易软件api接口来查询股票 也可以用股票交易软件api接口来了解股市 采用正规的界面可以确保数据的准确性 及时的根据股价的涨跌幅度做出一些选择 所以公司所用的股票交易软件api接口非常重要
  • 2019年蓝桥杯省赛-数的分解

    题目 题目链接 题解 DFS 一定看清要求 3 个 不同 正整数 正整数中不能包括2和4 满足加法交换律的算式属于一种情况 代码 include
  • ArtDialog简单使用示例

    像dojo一样 artdialog也是在网上无意间搜出来的 可惜后来发现它和dojo冲突 最后都是用的dojo的dialog 没办法只有忍痛割爱了 今天花了些时间把http code google com p artdialog downl
  • Linux配置每次重启会自动挂载的共享文件夹

    1 前言 配置共享文件可以实现Window与Ubuntu文件共享 2 添加共享文件夹 打开虚拟机设置 选项 gt 共享文件夹 gt 总是启用 gt 添加 gt 选择文件夹 gt 确定 3 访问共享文件夹 在Ubuntu中访问该共享文件的路径
  • java怎么读取数据_java怎么读取数据

    java怎么读取数据 1 从控制台读取数据 使用Scanner类来读取控制台的输入 推荐教程 java教程 public static void main String args Scanner in new Scanner System
  • Matlab工作区介绍

    Matlab工作区介绍 Matlab工作区 Matlab Workspace 是Matlab软件中的一个重要概念 它是一个存储在内存中的临时存储区域 用于存储和管理当前会话中的变量和数据 在工作区中 可以创建 修改和操作变量 进行数据分析和
  • qt 获取文件夹中文件名

    bool TerminalCommand command cleancache QString path QDir dir path QFileInfoList f list dir entryInfoList dir setFilter
  • 2023年最新React面试题

    以下是一些常见的React面试题 包括代码详解 这些问题涵盖了React的基础知识和常见的开发场景 请注意 这些问题的答案可能有多种方式 下面给出的是其中一种解决方案 1 什么是React React是一个用于构建用户界面的JavaScri
  • LeetCode 22. 括号生成 Generate Parentheses(C语言)

    题目描述 给出 n 代表生成括号的对数 请你写出一个函数 使其能够生成所有可能的并且有效的括号组合 例如 给出 n 3 生成结果为 题目解答 方法1 回溯算法 for循环 递归 记录当前用的左括号数目bef及未成对的左括号数目single
  • (UE4 4.20 )UE4的GC(垃圾回收)编程规范

    UObject系统的GC UPROPERTY 引用 当我们在一个UObject类声明各种继承UObject的 变量时 得加UPROPERTY 这个可以让UE4帮我们自动管理UObject的垃圾回收 UPROPERTY不仅仅用于反射变量到编辑
  • C++智能指针-shared_ptr/weak_ptr

    熟悉了unique ptr 后 其实我们发现unique ptr 这种排他型的内存管理并不能适应所有情况 有很大的局限 如果需要多个指针变量共享怎么办 如果有一种方式 可以记录引用特定内存对象的智能指针数量 当复制或拷贝时 引用计数加1 当
  • jQuery一级菜单和二级菜单

    1 先做一级菜单 第一步设置body 把大概样子写出来 2 第二步 1 用css设置通配符 3 第二步 2 设置ul标签基础样式 4 第二步 3 设置类样式 5 设置jquery内容的第一步先引入jQuery文件 6 第二步设置一个函数在里
  • CTP程序化交易入门系列之四:行情订阅常见问题解答

    前言 这一章总结了大家订阅行情最常问的一些问题的相关解答 希望能有帮助 如有不对的地方 欢迎指正 后期会在这里更新迭代 欢迎到这底下提问 更新时间 20201112 1 获取行情的地址在哪里可以查到 simnow发的即是实时行情 官网上可以