在同花顺等软件中有推送全市场的现手、增仓、开平等数据。但根据前面《系列之三》的学习,我们知道API中推送的行情数据结构体CThostFtdcDepthMarketDataField 中并无这些字段。而且CTP平台对接的交易所行情源和这些客户端所对接的行情源基本是一致的,那客户端的这些数据哪来的呢?

其实这些数据都是可以根据CTP API接口自己计算得到,只需要用到CThostFtdcDepthMarketDataField 结构中的Volume,OpenInterest,LastPrice,AskPrice1,BidPrice1这5个字段就可以。

下面就来详细讲讲(全文代码可在公众号后台回复pyctp获取)。

一、 现手和增仓

现手是指当前两个行情切片之间的成交量,增仓是指对应成交量增加的持仓量。现手是大于等于0的,但是增仓却可正可负。

目前CTP行情的推送是500ms一次切片,其中Volume和OpenInterest是累计量,所以根据同一合约的前后两笔行情就可以计算出现手、增仓,如下(表格1):

现手 volume_delta = 后一笔Volume - 前一笔volume
增仓 open_interest_delta = 后一笔OpenInterest - 前一笔OpenInterest 

表格1 现手、增仓计算

二、 开平

有了上面的现手和增仓,我们就能计算出开平(不带方向),如下(表格2):

性质 现手与增仓 含义
双开

现手=增仓>0

多头和空头同时开仓

开仓

现手>增仓>0

主动开仓数量大于平仓数量

平仓

现手> (-增仓) >0

主动平仓数量大于开仓数量

换手

现手>增仓=0

多头互换或者空头互换仓位

双平

现手+增仓=0

多头和空头同时平仓

未知

现手=增仓=0

异常情况,仅为记录

表格2 性质、现手、增仓公式及含义

有了(表格2)后,我们还需要知道价格趋势才能计算出方向,然后才能计算出真正的开平。根据价格比较我们可以计算出当前成交时价格是向上还是向下,如下(表格3):

方向 价格条件
向上

后一笔最新价LastPrice >= 前一笔卖一价AskPrice1

向下

后一笔最新价LastPrice <= 前一笔买一价BidPrice1

向上

后一笔最新价LastPrice >= 后一笔卖一价AskPrice1

向下

后一笔最新价LastPrice <= 后一笔买一价BidPrice1

不变 除上面四种外

表格3 价格方向与条件

现在有了(表格2)和(表格3)后,就可以计算出真正的开平了。表格2中性质有6种,表格3中方向有3种,所以一共有18种开平组合。如下:

性质、方向 开平

换手,向上

多换,红色

换手,向下

空换,绿色

双开,向上

双开,红色

......

......

平仓,向下

多平,绿色

表格4 性质、方向与开平

三、 对手单

先要说明一点,按证监会要求,期货市场数据统计将从2020年1月1日起统一调整为单边计算。下面的计算还是按照目前的双边来说明的。

图1 20191015夜盘数据

这里以上图中第一单为例:

1. 看性质: 空平意味着单子是由空头主动平仓引起的

2. 再价格: 空头买入平仓,成交价格为卖出价,价格向上

3. 看成交: 72手(单边成交36手,意味着空头主动买入平仓36手)

4. 看增仓: -56手(单边减持28手,意味着28手空头买入平仓和28手多头卖出平仓)

5. 所以对手单是28手多头卖平,36-28=8,这8手为空头开仓与空头平仓互换

总结:

买方:36=28+8 ,28是影响仓位的空头买入平仓, 8是不影响仓位的空头买入平仓

卖方:36=28+8 ,28是影响仓位的多头卖出平仓, 8是不影响仓位的空头卖出开仓

总结出公式(1)如下:

设S是对手单中开平方向相同的操作,O是对手单中开平方向相反的操作。

S+O=volume_delta/2

S-O=abs(open_interest_delta )-volume_delta/2

解以上方程得到:

S=abs(open_interest_delta )/2

O=volume_delta/2 - S

在上例中,S=abs(-56)/2 = 28, O=72/2 - 28 =8。所以与空平方向相同的多头卖出平仓28手,方向相反的空头卖出开仓8手。

为了便于对手单的理解,这里再给出一些示例:

图2 对手单计算示例

至此,我们根据上文提及的表格与公式就能计算出现手、增仓等相关数据了。

全部的实现逻辑都可以在公众号后台回复pyctp得到!

往期推荐

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

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

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

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

● CTP 4097错误根源

● Level-1、Level-2、快照数据、Tick数据的区别你都了解吗?

● 什么是穿透式监管,需要投资者做什么?

CTP程序化交易入门系列之五:现手、增仓、开平、对手盘计算相关推荐

  1. CTP程序化交易入门系列之六:报单(一)

    行情(mduserapi)这一块终于介绍的差不多了,下面着重介绍交易(traderapi)相关.再次强调两点: 一.交易和行情是完全独立的,互不干扰: 二.本系列用Python版本讲解,主要考虑到Py ...

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

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

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

    前言: 笔者自毕业后一直从事低延时交易系统开发行业,这些年经历过神奇bug,给客户培训,回答客户千奇百怪的问题.在这个过程中,自身能力得到了很大的提升,但有时在面对一些小白问题时,总是感叹为何没有一系 ...

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

    上节讲了CTP程序化交易的入门工作:下载API,准备账号密码地址等.这节我们来讲API基本架构及初始化. 一. CTP API基本架构  这里为了便于大家理解API的相关函数,我简略地讲一下API的基 ...

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

    前面两篇有了基础知识的准备,这一篇讲通过CTP API获取实时行情,录入csv,实时合成k线.github上开源了录入csv及合成k线代码,后台回复pyctp可获取.先上两张效果图: 图1 csv数据 ...

  6. 【量化】量化交易入门系列6:量化交易学习书籍推荐(二)

    作者:悠悠做神仙 来源: 恒生LIGHT云社区 上一篇 量化交易入门系列5:量化交易学习书籍推荐(一) 我们介绍一些量化交易一些操作和理论性书籍,可能对于刚入门的大家而言,可能有些枯燥.所以这篇文章, ...

  7. 【量化】量化交易入门系列5:量化交易学习书籍推荐(一)

    作者:悠悠做神仙 来源: 恒生LIGHT云社区 量化交易入门系列,给大家介绍了关于量化交易的数据源获取.编程语言推荐.经典的交易策略,那么本篇将介绍一些比较经典的量化交易书籍. 书籍是人类智慧的结晶, ...

  8. 【量化】量化交易入门系列2:经典的量化交易策略(上)

    作者:悠悠做神仙 来源: 恒生LIGHT云社区 上一篇文章 量化交易入门系列1:编程语言与数据源 ,介绍了关于量化交易的基本概念,以及要做量化交易的编程语言选择,和量化交易的一些数据源获取工具.那么, ...

  9. 小白期货CTP程序化交易开发入门(一)--CTP开发基础

    接触CTP也才半年多,一边学习一边摸索,看到各大CTP的QQ群里,也都是在问一些很菜的问题,就简单总结和介绍下,今天主要是基础知识,即CTP程序的基础和开源的Demo版本: CTP交易接口是由:::: ...

  10. MT5 C++ CTP程序化交易国内期货对接 MT5 (Meta Trader5)客户端技术方案(1)

    用C++实现程序化交易系统,采用上期技术CTP接口(期货).(股票)XPT接口:就系统架构而言,还算相比较单纯,但是要全面考虑各方面细节做到精致稳定,还是有一些工程量了:Meta Trader 5客户 ...

最新文章

  1. python怎么发送代码文件_python 通过 socket 发送文件的实例代码
  2. 【IBM Tivoli Identity Manager 学习文档】3 系统部署
  3. MySQL 性能优化技巧
  4. 软件开发人员真的了解SQL索引吗(索引使用原则)
  5. python怎么连接mysql数据库_python如何连接mysql数据库
  6. 您能看出这个生成缩略图的方法有什么问题吗?
  7. django构建网页_通过解决问题的方式学习django,律师如何构建副业
  8. python 安装虚拟环境virtualenv
  9. 「雕爷学编程」Arduino动手做(35)——模拟量声音传感器
  10. 手机qq音乐qmc0文件转mp3_录音添加背景音乐最新教程
  11. CentOS7 安装lua环境
  12. ncurses输入函数:字符+字符串的输入
  13. 正点原子操作过程中芯片总是出错
  14. 免费WiFi初体验——个小白的WiFi旅程
  15. RabbitMQ-理解消息通信-虚拟主机和隔离
  16. 20阶乘matlab,matlab如何调用阶乘函数求阶乘的和
  17. Numpy之数据清洗功能
  18. [es7]es查询实践示例
  19. 2021年高压电工考试及高压电工考试资料
  20. 开启使用SPR Batch 问题记录

热门文章

  1. 【考研经验】2018普通人跨考浙江大学计科的教训和方法论
  2. 未来教育计算机二级题库如何更新,未来教育的计算机二级题库准吗?
  3. 贴片电阻电容封装与尺寸,功率,耐压,温度等的关系
  4. 双目测距相似三角形原理
  5. 快速制作index.html,介绍一个h5快速制作平台鲁班H5
  6. IDEA返回上一步和下一步快捷键无效:Ctrl+Alt+左箭头 Ctrl+Alt+右箭头
  7. 06【五险一金解读】还有你的工资条哦?
  8. eclipse 工具翻译插件安装
  9. 微信头像卡片制作,听说很火?
  10. *(uint32_t *)(PERIPH) == GPIOX)