其他分享
首页 > 其他分享> > 上交所行情文件解析之mktdt04

上交所行情文件解析之mktdt04

作者:互联网

一、前言

  先将前面mktdt00、01、02、03归总下:

mktdt00 竞价撮合平台>>>>>

  MDStreamID=MD001  指数行情

  MDStreamID=MD002  股票行情

  MDStreamID=MD003  债券分销行情

  MDStreamID=MD004  基金行情

mktdt01 综合业务平台>>>>>

  MDStreamID=MD101  国债预发行行情

  MDStreamID=MD102  盘后固定价格交易行情

mktdt02 新债券平台>>>>>

  MDStreamID=MD201  债券现券和质押式回购行情

mktdt03 期权平台>>>>>

  MDStreamID=MD301  股票期权行情

 

本次要分析的是mktdt04,港股通行情

 

二、行情文件接口

  mktdt04是港股通行情接口,对应接口文档是《IS117_上海证券交易所港股通市场参与者接口规格说明书》。

  港股通这个接口,比较特别的有两个地方,一是文件编码格式与其他文件不一样,特别是“中文证券简称”字段是UTF-16LE 编码,所以直接打开看是乱码的。二是他除了常规的行情数据MD401还有MD404(VCM)、MD405(CAS)、MD406(POS)三种行情类型。下面按个分析下。

1、文件编码格式

  我使用如下代码分别读取了mktdt00-04的文件编码格式。

 

  结果如下:

  mktdt00->GB2312

  mktdt01->GB2312

  mktdt02->GB2312

  mktdt03->ascii

  mktdt04->Windows-1252

  首先我猜测因为mktdt03内没有中文所以编码格式是ascii,然后mktdt04的编码格式为啥是Windows-1252真的搞不明白,而且其中“中文证券简称”字段是UTF-16LE 编码。

  尝试了几种方式后,我发现应该用二进制读取文件,然后“中文证券简称”之外的其他字段可以用utf-8编码输出,而“中文证券简称”字段需转码为“UTF-16LE”后输出。

  直接上代码,我只读了文件中的第二行来演示:

 

  运行结果:

 

 

2、行情类型说明

  前面提到港股通除了常规的证券行情MD401,还有MD404、MD405、MD406。

  “文件体中,会先列出全部 MD401 的行情数据,再列出全部 MD404 的市调机制(VCM)信息(如适用) ,再列出全部 MD406 的开市竞价交易时段(POS)信息(如适用),最后列出全部 MD405 的收市竞价交易时段(CAS)信息(如适用)”。

  其含义如下:

  MD404(VCM)  市场波动调节机制(Volatility Control Mechanism),即当股票(期货合约)的价格相对于5分钟前的最后交易价变动幅度超过±10%(±5%),市场启动的5分钟冷静期,此时交易将限于制定价格范围内继续进行,正常交易将于其后重启。可以理解为A股的临时停牌措施但允许在限定范围内交易。

  MD405(CAS)  收市竞价交易时段,是国际证券市场上通用的一种容许交易以收市价执行的交易机制。在收市竞价交易时段内,市场参与者可输入买卖盘,配对到最多成交量的价格将会成为收市价,买卖盘也将按此收市价执行。这个有点像国债发行时的竞标机制,大家随意报价,最后选能完成全部交易的最劣价的作为成交价,这样可以确保东西能卖完,还能确保大家都不吃亏。与科创板盘后固定价格交易有点像但科创板是指定了收盘价作为成交价而CAS是通过这个过程来确定收盘价。

  MD406(POS)  开市前时间段,顾名思义就是9:00-9:30开市前30分钟的一个交易时段。拆分来看,9:00-9:15是输入买卖盘时段→9:15-9:20是不可取消时段→9:20-9:22为最长两分钟的随机对盘时段→9:20-9:30是暂停时段。

 

三、行情解析

1、文件头

  参见另一篇mktdt00的解析

  大部分都一样,只有MktStatus市场状态区别比较大。

MktStatus=100    未开市  市场早晨开市前的状态,一般为 9:00 前

MktStatus=1        输入买卖盘(开盘集合竞价时段),竞价盘下单时的状态,一般为 9:00 至 9:15;可报单,可撤单,可改单,但不会成交

MktStatus=101    不可取消(开盘集合竞价时段),暂停订单取消或修改的状态,一般为 9:15 至 9:20;可报,不可撤,不可改,还是不会成交

MktStatus=108    随机对盘(开盘集合竞价时段),9:20 开始后 2 分钟期间随机收盘时的状态,一般为 9:20 至 9:22;可报,不可撤,不可改。

MktStatus=2        对盘(开盘集合竞价时段),竞价盘配对时的状态,一般为 9:20 至 9:22,紧接随机对盘后;这个对盘和随机对盘的概念可能是这样:9.20-9.22属于对盘时间,但是实际做对盘(撮合)操作的时间是随机的,而且在随机对盘时还会收单。开始撮合后即结束随机对盘状态进入对盘状态并一直延续到9点22份,港交所自己翻译的“买卖盘配对”可能更好理解一些。

MktStatus=7       暂停,开盘集合竞价时段结束后,至全市场开市前的状态。此时段暂停任何下单及交易活动,一般为 9:22 至 9:30,紧接对盘后;

MktStatus=3  持续交易,一般 9:30 至 12:00 及 13:00 至 16:00,不含盘中休市时间

MktStatus=102  交易所介入时段,暂停任何下单及交易活动,一般为 12:00 至 12:05 及 16:00 至 16:01

MktStatus=103  收市,中间休市时段,一般为 12:05 至 12:30

MktStatus=104  取消买卖盘,下午开市前订单取消时段,一般为 12:30 至 13:00。我猜测的,这个时段可以撤单但不能交易。有待验证。

MktStatus=105  参考价定价(收盘集合竞价时段),计算及公布参考价时的状态,一般为 16:00 至 16:01

MktStatus=5  输入买卖盘(收盘集合竞价时段),竞价盘下单时的状态,一般为 16:01 至 16:06;也就是16:01会生成收盘时的参考价,从16:01开始就可以报单做收盘集合竞价了

MktStatus=106  不可取消(收盘集合竞价时段),暂停订单取消或修改的状态,一般为 16:06 至 16:08;也即是这段时间不能撤单了。

MktStatus=107  随机收市(收盘集合竞价时段),一般为 16:08 至 16:10

MktStatus=4  对盘(收盘集合竞价时段),一般为 16:08 至 16:10;与早上开盘的对盘类似,是先进入随机收市状态,开始单子撮合时就进入对盘状态。

MktStatus=0  全日收市,全市场处于闭市期间,收盘集合竞价时段结束后的状态,一般为 16: 10 后

 

汇总下,市场状态大致可划分为以下6个阶段:

  1)9:00前,MktStatus=100, 未开市

  2)9:00-9:30,MktStatus=1、101、108、2、7,开盘集合竞价时段

  3)9:30-16:00,MktStatus=3,持续交易(中间还有个午间休市时段)

  4)12:00-13:00,MktStatus=102、103、104,午间休市时段

  5)16:00-16:10,MktStatus=102、105、5、106、107、4,收盘集合竞价时段

  6)16:10后,MktStatus=0,全日收市

 

2、文件尾

  参见另一篇mktdt00的解析

3、文件体

   行情部分根据不同的MDStreamID有不同的结构。

3.1 港股通证券行情

  MDStreamID=MD401

  内容如下:

MDStreamID|SecurityID|Symbol|SymbolEn|TradeVolume|TotalValueTraded|PreClosePx|NominalPrice|HighPrice|LowPrice|TradePrice|BuyPrice1|BuyVolume1|SellPrice1|SellVolume1|SecTradingStatus|Timestamp

  含义如下:

行情数据类型、证券代码、中文证券简称、英文证券简称、成交数量、成交金额、昨日收盘价、按盘价、最高价、最低价、最新价、申买价一、申买量一、申卖价一、申卖量一、证券交易状态、行情时间

  示例:

MD401|00001|长和|CKH HOLDINGS   |         1151338|    65588114.550|     57.900|     57.250|     57.450|     56.550|     57.250|     57.200|        1000|     57.250|       15000|0       |11:56:25.000

  对比说明:

行情数据类型 MD401
证券代码 00001
中文证券简称 长和  原文是UTF-16LE 编码,这个是我转成UTF-8后的
英文证券简称 CKH HOLDINGS
成交数量 1151338
成交金额 65588114.550
昨日收盘价 57.900
按盘价 57.250  参照内盘的最新价,但港交所在没有成交时也会发布估算的最新价(按盘价)
最高价 57.450
最低价 56.550
最新价 57.250  最新成交价
申买价一 57.200
申买量一 1000
申卖价一 57.250
申卖量一 15000
证券交易状态 0
行情时间 11:56:25.000

 

3.2 市场波动调节机制数据

  MDStreamID=MD404

  内容如下:

MDStreamID|SecurityID|Symbol|SymbolEn|VCMStartTime|VCMEndTime|VCMRefPrice|VCMRefPrice|VCMUpperPrice|Timestamp

  含义如下:

行情数据类型、证券代码、中文证券简称、英文证券简称、市调机制开始时间、市调机制结束时间、市调机制参考价、市调机制下限价、市调机制上限价、行情时间

  示例:

没有

  对比说明

 

3.3 收市竞价交易时段

  MDStreamID=MD405

  内容如下:

MDStreamID|SecurityID|Symbol|SymbolEn|CASRefPrice|CASLowerPrice|CASUpperPrice|OrdImbDirection|OrdImbQty|Timestamp

  含义如下:

行情数据类型、证券代码、中文证券简称、英文证券简称、收盘集合竞价时段参考价、收盘集合竞价时段下限价、收盘集合竞价时段上限价、不能配对买卖盘方向、不能配对买卖盘量、行情时间

  示例:

没有

  对比说明

 

3.4 开市前时间段

  MDStreamID=MD406

  内容如下:

MDStreamID|SecurityID|Symbol|SymbolEn|POSRefPrice|POSLowerBidPrice|POSUpperBidPrice|POSLowerAskPrice|POSUpperAskPrice|OrdImbDirection|OrdImbQty|Timestamp

  含义如下:

行情数据类型、证券代码、中文证券简称、英文证券简称、开盘集合竞价时段参考价、开盘集合竞价时段买盘下限价、开盘集合竞价时段买盘上限价、开盘集合竞价时段卖盘下限价、开盘集合竞价时段卖盘上限价、不能配对买卖盘方向、不能配对买卖盘量、行情时间

  示例:

没有

  对比说明

 

其他的如数据长度、校验和参考之前的mktdt00解析

 

标签:00,集合竞价,MDStreamID,16,mktdt04,上交所,时段,解析,MktStatus
来源: https://www.cnblogs.com/cation/p/16506380.html