核新同花顺数据结构.doc_第1页
核新同花顺数据结构.doc_第2页
核新同花顺数据结构.doc_第3页
核新同花顺数据结构.doc_第4页
核新同花顺数据结构.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

核新同花顺数据结构(一):总览同花顺采用了简易的数据库组织方式。在同花顺的发布文件包中包括了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字节数据指示,其有效长度 = 列长度 * 记录条数。 附录同花顺的数据文件读取器和支持类库在 /projects/ociathena/ 项目下的对应分类。股票软件同花顺的日数据格式 收股市封涨停的消息鼓舞,应别人邀请研究了一下貌似很火的同花顺股票软件的日数据结构,是52个字节的struct,包含开盘价,最高价,最低价,收盘价,成交量,成交额度,外盘,内盘。btw,股票我是个门外汉,命名不专业在所难免.我用的是同花顺v4.40.90版 结构如下:struct stockunsigned short open; /开盘unsigned short b; /填充unsigned short high; /最高unsigned short d; /填充unsigned short low; /最低unsigned short f; /填充unsigned short avg; /均价unsigned short h; /填充unsigned int volume ;/成交量unsigned int amount ; /成交额度unsigned int outside; /外盘unsigned int inside; /内盘;盘后乾隆、分析家的数据是没有加密的 乾隆是每个股票一个文件 分析家是索引数据块的结构 自己慢慢分析吧,很简单的 网络传输的实时行情是加密的,其实也算不上加密,只是把实时传送数据压缩了一下,降低带宽占用而已 压缩方法是保密的_ 通达信的历史分时数据都是在内存中的,本地不保留 具体的数据结构,我也忘记了,我都是用现成的类来读写数据 索引中,记录了各支股票开始的文件地址 下面是数据块中一条记录的结构 时间、开、高、低、收、成交量、成交额 time open close low high vol amount 除了时间是time_t,其它都是float/thread-63-6/table-257996-1273.html同花顺分钟数据格式 字号:小|大a10jqka发纸条 头衔:游客小浪 等级: 发帖总数:4 阅读:160回复:1发表于2009-09-04 20:20:14最近几日,帮一位做金融产品的友,用自行开发的软件解析出了,同花顺交易记录中的分钟历史数据格式。在与他的交谈中得知:目前同花顺分钟历史数据格式官方尚未对外公布,而与此同时,又有相当多的金融产品又要依存于这些历史数据。我就想,既然我这位朋友有这方面的需求,那我相信,还会有人有类似的需求。所以,若谁(无论是公司还是个人)有此项需求,我想我都能给予一定帮助。借用武侠小说中的语句:宝刀(同花顺分钟历史数据)在大侠手中,才是宝刀;在常人(像我这样的金融门外汉)手中,只不过锋利点而已。期待大侠的出现。QQ:576130598 同花顺数据格式上一篇 / 下一篇 2008-10-28 11:23:05 查看( 89 ) / 评论( 0 ) / 评分( 0 / 0 ) 同花顺软件从开发技术上是走在最前头的,他的数据格式也用到无符号整型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个字节未使用跳过部分包含数值,涨幅,振幅,总成交金额,换手率。详细编程:/same/archive/2007/05/18/752062.html 0 0 0 (请您对文章做出评价)posted on 2007-05-27 15:48 郭胜群 阅读(4975) 评论(12) 编辑 收藏 网摘 所属分类: 金融学 评论: #1楼John未注册用户 Posted 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 Worksheet Dim x, j, k, n, m, mm, kk, kkk As Integer Dim txt, tCode As String Set sht = ThisWorkbook.ActiveSheet Set stream = CreateObject(adodb.stream) tCode = ThisWorkbook.ActiveSheet.Cells(1, 1) stream.Mode = 3 stream.Type = 1 stream.Open stream.LoadFromFile (C:Program Files大福星系统DATASHASEDAY & tCode & .day) txt = stream.read m = 0 j = 1 k = 1 n = 1 kk = 1 Do While j 10 Then k = 1 kk = kk + 1 End If If k = 1 Then mm = CStr(m) sht.Cells(kk + 1, k) = Left(mm, 4) + - + Mid(mm, 5, 2) + - + Right(mm, 2) End If If k = 2 Or k = 3 Or k = 4 Or k = 5 Then sht.Cells(kk + 1, k) = m / 1000 If k = 6 Then sht.Cells(kk + 1, k) = m / 10 If k = 7 Then sht.Cells(kk + 1, k) = m k = k + 1 i = i + 1 m = 0 End If j = j + 1 Loop End Sub 小月您好:你的办法非常好用,我试过了,真是高手。日线数据也可在分析家交易系统中点右键复制到Excel。我想请你帮忙,将分析家交易系统中的分笔数据转换成Excel格式,(我只在分析家交易系统中发现有此数据文件,在sh和目录下的*.prp文件),再此先表示感谢! 回复引用 #10楼步少未注册用户 Posted 2008-03-20 10:15 Sub 提取同花顺的日数据() Dim sht As Worksheet Dim a, b, c, n As Integer Dim m, x As Long Dim txt, fdir, tCode As String Set sht = ThisWorkbook.ActiveSheet Set stream = CreateObject(adodb.stream) tCode = ThisWorkbook.ActiveSheet.Cells(1, 1) stream.Mode = 3 stream.Type = 1 stream.Open 弹出目录选择对话框时,请选到同花顺的history目录 Set FD = Application.FileDialog(4) With FD .AllowMultiSelect = False .Show End With If FD.SelectedItems.Count 0 Then fdir = FD.SelectedItems(1) txt = fdir + shaseday & tCode & .day If dir(txt) = Then txt = fdir + sznseday & tCode & .day If dir(txt) = Then MsgBox (没有找到此票数据!) Exit Sub End If End If stream.LoadFromFile (txt) txt = stream.read m = 0 n = (2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论