文档详情

核新同花顺数据结构

m****
实名认证
店铺
DOCX
26.40KB
约11页
文档ID:202352201
核新同花顺数据结构_第1页
1/11

核新同花顺数据结构(一):总览 同花顺采用了简易的数据库组织方式在同花顺的发布文件包中包括了 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 字节数据指示, 其有效长度 = 列长度 * 记录条数附录同花顺的数据文件读取器和支持类库在 项目下的对应分类股票软件同花顺的日数据格式收股市封涨停的消息鼓舞,应别人邀请研究了一下貌似很火的‘同花顺股票软件'的日数据结构,是52 个字节 的struct,包含开盘价,最高价,最低价,收盘价,成交量,成交额度,外盘,内盘°btw,股票我是个门外汉, 命名不专业在所难免•我用的是同花顺v4.40.90版struet stockunsignedshortopen; //开盘};unsignedunsignedunsignedunsignedunsignedunsignedunsignedunsignedunsignedunsignedunsignedshortshortshortshortshortshortshortintintintintb; //填充high; //最高d; //填充low; //最低f; //填充avg; //均价h; //填充volume ;//成交量amount ; //成交额度out side; //外盘inside; //内盘盘后乾隆、分析家的数据是没有加密的乾隆是每个股票一个文件分析家是索引+数据块的结构自己慢慢分析吧,很简单的网络传输的实时行情是加密的,其实也算不上加密,只是把实时传送数据压缩了一下,降低带宽占用而已压缩方法是保密的人—人通达信的历史分时数据都是在内存中的,本地不保留具体的数据结构,我也忘记了,我都是用现成的类来读写数据索引中,记录了各支股票开始的文件地址下面是数据块中一条记录的结构时间、开、高、低、收、成交量、成交额time open close low high vol amount除了时间是time_t,其它都是float字号:小|大同花顺分钟数据格式a10jqka [发纸条]头衔:游客小浪等级: 发帖总数:4阅读: 160 回复: 1 发表于 2009-09-04 20:20:14y最近几日,帮一位做金融产品的弍'丁友,用自行开发的软件解析出了,同花顺交易记录中的 分钟历史数据格式。

在与他的交谈中得知:目前同花顺分钟历史数据格式官方尚未对外公布,而 与此同时,又有相当多的金融产品又要依存于这些历史数据我就想,既然我这位朋友有这方面 的需求,那我相信,还会有人有类似的需求所以,若谁(无论是公司还是个人)有此项需求, 我想我都能给予一定帮助借用武侠小说中的语句:宝刀(同花顺分钟历史数据)在大侠手中, 才是宝刀;在常人(像我这样的金融门外汉)手中,只不过锋利点而已期待大侠的出现576130598同花顺数据格式上一篇 / 下一篇 2008-10-28 11:23:05查看(89 ) /评论(0 ) /评分(04 0J同花顺软件从开发技术上是走在最前头的,他的数据格式也用到无符号整型32位为主,日数据格式为64个字节的文件头,另外每48个字节为一天纪录日期 32 位 4 个字节开盘 32位无符号整型 4个字节最高 32位无符号整型 4个字节最低 32位无符号整型 4个字节收盘32位无符号整型4个字节跳过 32位 4个字节成交量 32位4个字节跳过 20 个字节以上跳过部分只有最后4个字节未使用跳过部分包含数值,涨幅,振幅,总成交金额,换手率同花顺数据格式同花顺软件从开发技术上是走在最前头的,他的数据格式也用到无符号整型32 位为主,日数据格式为64个字节的文件头,另外每48个字节为一天纪录日期 32位 4个字节开盘 32位无符号整型 4个字节最高 32位无符号整型 4个字节最低 32位无符号整型 4个字节收盘 32位无符号整型 4个字节跳过 32 位 4 个字节成交量 32 位 4 个字节 跳过 20 个字节 以上跳过部分只有最后 4 个字节未使用 跳过部分包含数值,涨幅,振幅,总成交金额,换手率。

详细编程:h tt p:// tml00(请您对文章做出评价)posted on 2007-05-27 15:48郭胜群阅读(4975)评论(12) 编辑收藏网摘 所属分类:金融学评论:• #1 楼 John[未注册用户]Pos ted @ 2007-06-22 03:12请问你知不知道同花顺其他文件的格式?如分时(分笔)成交以前我也 破解过不少,但最新版本的格式却分析不出来谢谢! 回复 引用• #2 楼 千寻[未注册用户]Posted @ 2007-07-21 00:30我也跟楼上的一样,希望知道其它文件的格式能否帮忙分析一下?谢 谢! 回复引用• #3 楼 VB 爱好者[未注册用户]Posted @ 2007-07-24 21:00学习回复引用• #4 楼 xizy [未注册用户]Posted @ 2007-08-09 00:33我用 C 语言读出来怎么只有日期是正确的,别的字段都不正确呢??很郁闷回复引用• #5 楼 jinh[未注册用户]Posted @ 2007-10-07 22:04谢谢博主.同花顺最有特点的是她的复盘数据(即成交明细数据),估计格式和她的 分时数据差不多,博主能不能分析一下?谢谢! 回复引用• #6 楼 Jhon[未注册用户]Posted @ 2007-10-08 08:23谢谢博主.最有特点的复盘数据是及时雨的成交明细数据和买卖盘数据,能达到每分 钟的分时买卖盘再现,博主能不能分析一下?谢谢回复泄• #7 楼 keen[未注册用户]Posted @ 2007-10-17 21:21我现在得到的方法很笨的,我用钱龙旗舰2007自带的转EXCEL功能手工转,不过我做了个按键精灵(我就可以休息了),每天花 3 小时左右将所有成交转出来,太累了,尤其是期间电脑不能做别的事回复引用• #8 楼 ccitt [未注册用户]Posted @ 2007-10-29 17:51需要一个数据格式转换软件,您能帮我开发吗,有偿的。

回复引用• #9 楼 renwl[未注册用户]Posted @ 2007-12-03 17:31您好:郭老师?看到了您的博客,浏览了您关于证券数据结构的文章,非常欣赏为此, 今天我刚刚在网上做了注册其实我的本意是想求助您为了进一步分析 的需要,我很想获得EXCEL格式的指数及个股的日线数据在网上搜寻再 三,找到一篇文章(见附件),期望能够使用一个什么“工具”把我使用 的“同花顺”的数据转换为EXCEL格式的数据,但文章附的VBA程序没有 在同花顺下进行测试,我自己试了一下,转换后大部分数据有错误,我本 人的软件修为十分有限,为此,想请您帮助我一下,不知您能否帮我修改 一下程序!谢谢!附件:股票数据转换成Excel格式2007-03-21 17:52:16一直想把股票的日线数据转换成Excel格式,这样做一些分析或者判断的 时候可以在Excel中进行在网上找了很多,没找到好用的软件,这两天 研究了一下day文件的格式,就用VBA做个简单的转换吧随便打开一个新工作薄,将下面的代码放到代码区,在一个表的A1位置 输入股票代码,然后招待宏convert,就可将数据读到当前工作表中,各 列依次为:日期、开盘价、最高价、最低价、收盘价、成交额、成交量。

注:下述代码现仅适用沪市,如是深市,则需要将下面文件路的shase 换成sznse,本代码仅在大福星下测试过,对其他软件的数据没测试Sub convert()Dim sht As WorksheetDim x, j, k, n, m, mm, kk, kkk As IntegerDim txt, tCode As StringSet sht = ThisWorkbook.ActiveSheetSet stream = CreateObject("adodb.stream") tCode = ThisWorkbook.ActiveSheet.Cells(1, 1) stream.Mode = 3stream.Type = 1stream.Openst ream.LoadFromFile ("C:\Program Files、大福星系统\DATA\SHASE\DAY\" & tCode & ".day")txt = stream.readm = 0j = 1k = 1n = 1kk = 1Do While j <= 2 * Len(txt) i = j - 4 * Int(j / 4) x = AscB(MidB(txt, j, 1))Ifi=1Thenm =m+xIfi=2Thenm =m+x*256Ifi=3Thenm =m+x*256*256Ifi=0Thenm =m+x*256*256 * 256Ifi=0ThenIfk>10 Thenk = 1 kk = kk + 1 End IfIf k = 1 Thenmm = CStr(m)sht.Cells(kk + 1, k) = Left(mm, 4) + "-" + Mid(mm, 5, 2) + "-" + Right(mm, 2)End IfIf k = 2 Or k = 3 Or k = 4 Or k = 5 Then sht.Cells(kk + 1, k) = m / 1000If k = 6 Then sht.Cells(kk + 1, k) = m / 10If k = 7 Then sht.Cells(kk + 1, k) = m k = k + 1i = i + 1 m = 0End If j = j + 1LoopEnd Sub小月您好:你的办法非常好用,我试过了,真是高手。

日线数据也可在分 析家交易系统中点右键复制到Excel我想请你帮忙,将分析家交易系统 中的分笔数据转换成Excel格式,(我只在分析家交易系统中发现有此数 据文件,在sh\和\目录下的*.prp文件),再此先表示感谢!回复引用#10 楼 步少[未注册用户]Posted @ 2008-03-20 10:15Sub提取同花顺的日数据()Dim sht As WorksheetDim a, b, c, n As IntegerDim m, x As LongDim txt, fdir, tCode As StringSet sht = ThisWorkbook.ActiveSheetSet stream = CreateObject("adodb.stream")tCode = ThisWorkbook.ActiveSheet.Cells(1, 1)stream.Mode = 3stream.Type = 1stream.Open'弹出目录选择对话框时,请选到同花顺的history目录~~Set FD = Application. FileDialog(4) With FD.AllowMultiSelect = False.ShowEnd WithIf FD.SelectedItems.Count > 0 Then fdir = FD.SelectedItems(1)txt = fdir + "\shase\day\" & tCode & ".day"If dir(txt) = "" Thentxt = fdir + "\sznse\day\" & tCode & ".day"If dir( txt)二"“ ThenMsgBox (〃没有找到此票数据!")Exit SubEnd IfEnd Ifstream.LoadFromFile (txt)txt = stream.readm = 0n = (2 * Len(txt) - 64) / 48For a = 0 To n - 1For b = 1 To 7For c = 1 To 4x = AscB(MidB(txt, 48 * a + 4 * (b - 1) + c + 64, 1))If c = 1 Then m = m + xIf c = 2 Then m = m + x * 256If c = 3 Then m = m + x * 256 * 256If c = 4 Then If b = 1 Then m = m + x * 256 * 256 * 256 Else m =m + (x And 15) * 256 * 256 * 256Next cIf b = 1 ThenCells(a + 2, b).Value = Left(m, 4) + "-" + Mid(m, 5, 2) + "-" + Right(m, 2)ElseIf b = 6 Or b = 7 Then Cells(a + 2, b).Value = m / 10 Else Cells(a + 2, b).Value = m / 1000End If m = 0 Next bNext aEnd Sub根据上面的那段代码修改了一下用在同花顺上 回复引用#11楼 人工智能[未注册用户]Pos ted @ 2008-07-26 21:53发现同花顺的mn5文件格式为:文件头56字节,数据内容为40字节一段,但这个40字节怎样构成?还 在研究中 谁来帮帮我。

通达信的LC5文件已经解开了,但通达信的5分钟数据只能下载最近一个 月,为求历史数据,只好从同花顺上想点办法,谁有更好的得到5分钟历 史数据的方法。

下载提示
相关文档
正为您匹配相似的精品文档