原文:http://enterprisebeing.spaces.live.com/Blog/cns!1D3811D0695B6887!172.entry

同花顺采用了简易的数据库组织方式。在同花顺的发布文件包中包括了SQLite 3的驱动,但不是很清楚同花顺是如何使用这个驱动的。基本上,对同花顺数据结构的解析不需要这么复杂,同花顺发布文件包中的SQLite文件被核新程序员重新编译过,不过就与SQLite Manager的简单配合使用来看,并不影响对标准数据库文件的读取,当然,也不支持把同花顺数据文件当成标准的数据库文件进行读取。

基本上,同花顺的数据文件可以分为两类,一类是history\下行情数据文件,另一类是finance\下财务数据文件。

在history\下的数据文件,通过子目录名称识别市场代码,通过子目录下的文件名称识别交易标的(包括股票、期货等等)。文件格式采用的是简单格式,每个数据文件分别由:

  • 文件头;
  • 列定义;
  • 内容;

三个部分组成。

在finance\下的数据文件,采用的是单文件容纳所有品种数据的方式,因此采用的是复合格式,每个数据文件分别由:

  • 文件头;
  • 列定义;
  • 填充区域;
  • 复合索引数据块;
  • 内容;

五个部分组成。

文件头

文件头固定为16个字节,包括:

  • byte [6],6 字节长度,固定为 {0x68,0x64,0x31,0x2E, 0x30,0x00},用于识别数据文件类型;
  • dword,4 字节长度,记录“内容”区域的记录条数;
  • word,2 字节长度,记录“内容”区域的开始位置;
  • word,2 字节长度,记录“内容”区域每条记录的字节长度;
  • word,2字节长度,记录“列定义”的列个数;

列定义

列定义固定为4 个字节一组,标示一个列,第4 个字节为列内容的字节长度,由于是使用1 个字节表示,因此数据文件每列的最大长度为255个字节。

填充区域

在finance\目录下的数据文件,采用的是包括索引的复合格式存储。在列定义和符合索引数据块之间存在着一个未使用的填充区域,填充区域的长度总是列定义数量的两倍,即文件头偏移 0x0E 处 WORD 类型 * 2。

就目前所知,这一区域基本上都使用 0x00 填充,可能是保留未来使用。

复合索引数据块

在finance\目录下的数据文件,文件的“内容”区域并不包含记录所隶属的证券品种,而是把此内容放置在一个单独的索引区域。索引区的开始位置 = 0x10 + 0x04 * 列定义数量 + 0x02 * 列定义数量。

复合索引数据块由三个部分组成:

  • word,2 个字节,记录本索引数据区域的字节长度;
  • word,2 个字节,记录本索引数据区域中所包含的索引的条数;
  • byte[],不定长的索引记录,每条索引记录为18个字节长度,因此总长度 = 索引条数 * 0x12;

索引

每条索引的长度为18个字节,格式分别为:

  • byte,1 字节长度,标识证券品种类型,目前已知的包括3 类4 种标示,分别是:0x10,国内证券;0x48和0x50,港股;0x4A,基金。在“权息资料”中,使用0x50标示港股,在“现金流量”中,使用0x48标示港股,不知道是设计的 bug,还是存在其他用意;
  • byte [9],9 字节长度,标识交易品种的符号,目前已知是ASCII格式,从整个文件的多字节字符处理来看,文件的整体字符编码应该是GB2312编码,因此这一部分原始的处理应该是使用GB2312编码通读;
  • word,2 字节长度,标识隶属此交易品种的记录区域中实际上未使用的记录条数,有关的组织方式下面再详细解释;
  • dword,4 字节长度,标识隶属于此交易品种的记录的开始下标,注意是记录在数据文件中从0 开始排列的顺序号,而不是文件的偏移地址,其实际的偏移地址 = “内容”区域的开始地址 + 此开始下标 * 记录的长度;
  • word,2 个字节长度,标识隶属于此交易品种的记录的条数;

    总体来说,存在索引的文件其实际的完整数据由两个部分组成,一个就是索引数据区,另一个就是记录内容数据区。其与索引对应的记录内容数据采取分块的存储模式,即,每一个交易品种总是使用一个固定的、连续的内容数据区存储相对应的数据,因此在实际的数据存储过程中,存在着并未被实际使用的“空余”记录的数据区。

    复合文件通过两个方法来识别有效和无效的记录,首先,索引记录其所使用的数据区总容纳的记录条数和未被使用的、无效的记录条数,两者相减可知被实际使用的记录条数;其次,复合文件的记录总是使用一个类型为Int32的4 字节用于标识时间的列开始,如果这个列的值为<=0,则表明这是无效的数据记录。

内容

数据内容开始的地址偏移在文件头0x0A处的一个word类型的2字节数据指示,其有效长度 = 列长度 * 记录条数。

附录 
同花顺的数据文件读取器和支持类库在 https://sourceforge.net/projects/ociathena/

同花顺的数据格式总览相关推荐

  1. 同花顺的数据格式总览(转帖)

    原文:http://enterprisebeing.spaces.live.com/Blog/cns!1D3811D0695B6887!172.entry 同花顺采用了简易的数据库组织方式.在同花顺的 ...

  2. 关于同花顺日数据格式

    由于有朋友在博客上提出同花顺day数据格式的需求,我这星期天(2005年5月20日)特地也整理出来  同花顺是很多传统软件中比较成熟的先进的,至少他目前用以开发程序的平台跟上了软件开发的前沿,尽管它存 ...

  3. 通达信服务器系统日线,券商网络接口分析方法(已经可以与通达信服务器行情数据连接!)(页 1) - 股软开源综合交......

    大智慧Internet版 5.58.2760 的数据格式 上海日线数据目录: C:\dzh\DATA\SHase\Day 深圳日线数据目录: C:\dzh\DATA\SZnse\Day 每个数据块40 ...

  4. 核新同花顺java开发_核新同花顺数据结构

    核新同花顺数据结构(一):总览 同花顺采用了简易的数据库组织方式.在同花顺的发布文件包中包括了SQLite 3的驱动,但不是很清楚同花顺是如何使用这个驱动的.基本上,对同花顺数据结构的解析不需要这么复 ...

  5. 三维点云语义分割总览

    点云PCL免费知识星球,点云论文速读. 标题:三维点云语义分割总览 作者:吉祥街 欢迎各位加入免费知识星球,获取PDF文档,欢迎转发朋友圈,分享快乐. 希望有更多的小伙伴能够加入我们,一起开启论文阅读 ...

  6. 小O地图EXE版V0.9.5.5 - 功能总览

    小O地图EXE版功能总览 小O地图EXE版主要提供地理数据处理.地图数据搜索.地理分析.地理计算.地图可视化等功能. 以地图任务形式执行,遵循以下步骤: 1.新建任务,设置任务条件及保存路径,任务文件 ...

  7. 用matplotlib高仿同花顺的K线,成交量,MACD,KDJ(一)

    开发环境:python v3.8.2, matplotlib v3.2.1, VSCode 开始学量化2,3周了,python也还是新手,这2天才开始看一下matplotlib的用法,网上搜了一些K线 ...

  8. 核新同花顺数据结构[转]

    核新同花顺数据结构[转] 很想了解一些交易软件的数据存储方式.看到了一篇好文章,Mark 一下. 核新同花顺数据结构(一):总览 同花顺采用了简易的数据库组织方式.在同花顺的发布文件包中包括了SQLi ...

  9. 同花顺选股python开发_量化之路-python绘图-高仿同花顺绘制股票K线图+均线+成交量+MACD+KDJ(附代码)...

    上一期介绍了k线图的简单绘制,可以实现股票趋势的查看分析 本期介绍一种用python matplotlib实现高仿同花顺界面的绘图方法 一.话不多说上效果图(还是以601011宝泰隆为例哈^^) 二. ...

最新文章

  1. qregexp限制数字范围_计算一列数字的平均值
  2. 机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)...
  3. BZOJ 2733 | 洛谷 P3224 [HNOI2012]永无乡
  4. Ubuntu Linux将支持所有树莓派设备
  5. Ajax基石脚本异步并发调用参数传递
  6. db2 本地db 到实例_如何登录到FreeCodeCamp的本地实例
  7. 机房收费系统个人重构版:透过文档谈文档驱动开发
  8. python pandas读取csv_pandas读取csv文件数据的方法及注意点
  9. 【Linux 命令学习第三天】
  10. tshark/wireshark抓包小结
  11. 【渝粤教育】国家开放大学2018年春季 8635-22T老年人中医体质辨识与养 参考试题
  12. 猿创征文|三维重建领域的开发者工具箱
  13. 三只松鼠上半年营收41亿:净利降77% IDG一年套现超12亿
  14. js面向数据编程(DOP)一点分享(转载)
  15. 【论文翻译】nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles
  16. Mybatis的collection和association
  17. 安装PS时提示安装程序检测到计算机重新启动操作可能处于挂起状态,建议您退出安装...
  18. 曝各城市娶妻成本:深圳208万 程序员成为“妻奴”?
  19. 如何快速的合并多个 Excel 工作簿成为一个工作簿?
  20. 淄博高青一中2021高考成绩查询,【淄博市高青县第一中学(高青一中)网站】2021招生|怎么样|排名|高中部|初中部...

热门文章

  1. 鼠标连点器(易语言)
  2. 操作系统-精髓与设计原理(第六版)读书笔记
  3. com.qq.ac.android,腾讯动漫启动直接 crash
  4. Maven 2 + Hibernate 3.2 + MySQL示例(XML映射)
  5. javascript二进制文件处理方案
  6. Linux下可执行文件格式详解
  7. 第三期 C/C++数据结构 栈的基本操作
  8. java 间隔5秒执行一个方法
  9. python 构造函数没用
  10. scrollView加约束