| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 上交所行情文件解析之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 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解析 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:32:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |