关于同花顺日数据格式

由于有朋友在博客上提出同花顺day数据格式的需求,我这星期天(2005年5月20日)特地也整理出来
同花顺是很多传统软件中比较成熟的先进的,至少他目前用以开发程序的平台跟上了软件开发的前沿,尽管它存在着一些不稳定,但同花顺绝对是最具有生命力的,所以大家了解他的格式以后运用也有个稳定的数据来源,同花顺的各类数据整理的很工整也全面开放,这里先介绍它的日数据,大家可以先启动同花顺的工具>数据下载,选中打勾日数据,可以设置历史起始和终结点,目前无限制,只是不能在开市下载,可能是避免别人看行情的速度影响,唉这前几年作这类软件的人都快饿死了,目前虽然行情大好,连服务器都不给买多几台,呵呵,大家同病相怜,日数据为48个字节一天,文件头为64个字节n = (fs.Length - 64/ 48 '可得天数,详细代码如下
VB.net 2005
            Case 3 '同花顺
                n = (fs.Length - 64/ 48 '文件头占64个字节
                LoadDayData = n
                
ReDim dr(n)
                
For i = 1 To 8
                    br.ReadInt64() 
'读8次64位内存块以越过文件头
                Next
                
For i = 1 To n
                    
Dim d As Integer = br.ReadInt32()
                    j 
= j + 1
                    dr(j).stockdate 
= DateSerial(d / 10000, (d Mod 10000/ 100, d Mod 100'日期占4个字节
                    dr(j).openor = (br.ReadUInt32 And &HFFFFFFF) / 1000 '用无符号32位整型,目前只发现B0开头,所以只需除以1000,不判断,但最好做个异常分支
                    dr(j).hightor = (br.ReadUInt32 And &HFFFFFFF) / 1000
                    dr(j).lowor 
= (br.ReadUInt32 And &HFFFFFFF) / 1000
                    dr(j).endor 
= (br.ReadUInt32 And &HFFFFFFF) / 1000
                    br.ReadInt32() 
'越过数据,不影响对数据基本数据的获取
                    dr(j).changor = br.ReadInt32  '(单位手数),成交量,也是32位,可以用无符号整型去读
                    If dr(j).changor < 0 Then '以B0 开头
                        dr(j).changor = (dr(j).changor And &HFFFFFFF) / 1000
                    
ElseIf dr(j).changor > 0 Then '这里需要改进 目前发现 90开头
                        dr(j).changor = dr(j).changor / 100
                    
Else
                        ' ......
                    End If
                    
br.ReadInt32() '把纪录尾端读完,共20个字节
                    br.ReadInt64()
                    br.ReadInt64()
                    
'其实以上越过的数据包含信息为数值,涨幅,振幅,总金额,换手,其实一个日纪录48个字节就只要4个字节未用到的了
                Next
              case 4 '大智慧level2
                         '.......

其它格式请到博客的金融文章板块阅读
原文地址:https://www.cnblogs.com/same/p/752062.html