本站首页    管理页面    写新日志    退出


«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告
================

注会练习软件
http://www.cpasoft.com.cn
我的注会软件官网

http://blog.163.com/abc7105@126/

 

 


哈哈,热爱快“过气”的DELPHI


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:注册会计师(注会)练习软件
日志总数:398
评论数量:116
留言数量:27
访问次数:3283428
建立时间:2005年6月6日




[delpih编程]股票软件数据格式详解之[转贴]
软件技术

吕向阳 发表于 2009/8/18 21:28:44

股票软件数据格式详解之--通达信数据格式 数据结构 股票数据分析2008年03月04日 星期二 下午 06:09股票软件数据格式详解之--通达信数据格式通达信数据不是钱龙格式的。但很容易转化成钱龙格式,稍微懂点数据格式的朋友都容易转化。钱龙是长整型的数据,通达信是单精度型数据。钱龙一天数据占40个字节,通达信占32个字节。大智慧和钱龙的格式是一样的。通达信数据格式:1-4字节 Date:LongInt; //日期5-8字节 OPen:LongInt; //开盘*100(元)9-12字节 High:LongInt; //最高价*100(元)13-16字节 Low:LongInt; //最低价*100(元)17-20字节 Close:LongInt; //收盘*100(元)21-24字节 single; //Amount25-28字节 Volume:LongInt; //Volume 成交量(股)29-32字节 // Reserved其数据结构定义如下:typedef struct mystructtag{int date;int open;int high;int low;int close;int amount;int vol;int reservation;} StockData;基本声明Public NumBase(5) As Long '通达信格式基数Public NumUnit(4) As Long '每单位对应的16进制数Public NumUnitPrice(4) As Long '每单位对于的10进制数,已被从元为单位扩大1000倍基本模块Public Sub intTDXelg()Sub intTDXelg()NumBase(0) = 1065353216 : NumBase(1) = 1082130432 : NumBase(2) = 1090519040 : NumBase(3) = 1098907648 : NumBase(4) = 1109655552 ': NumBase(5) = 1118830592NumUnit(0) = 4194304 : NumUnit(1) = 2097152 : NumUnit(2) = 1048576 : NumUnit(3) = 524288 ': NumUnit(4) = 262144NumUnitPrice(0) = 0 : NumUnitPrice(1) = 4000 : NumUnitPrice(2) = 8000 : NumUnitPrice(3) = 16000 ': NumUnitPrice(4) = 32000End Sub在form load 事件中调用intTDXelgPublic Structure stockDayRecordStructure stockDayRecord '保存一门股票的日数据信息Dim stockdate As DateDim openor As SingleDim hightor As SingleDim lowor As SingleDim endor As SingleDim changor As IntegerDim id As IntegerDim VbP As IntegerEnd StructurePublic Function getRealPrice()Function getRealPrice(ByVal formerPrice As Long) As Long '注意移植此函数是要把公共变量NumBase预NumUnit移动移植Dim i As IntegerFor i = 1 To 4 '该函数可返回32元人民币以下对于的准确价格If formerPrice < NumBase(i) ThengetRealPrice = (Val((formerPrice - NumBase(i - 1)) & "000") / NumUnit(i - 1)) + NumUnitPrice(i - 1)Exit For ' & 000 相当于 * 1000,以‰为单位End IfNext iEnd Function读取模块Function LoadDayData()Function LoadDayData(ByVal filename As String, ByRef dr() As stockDayRecord, ByVal t As Short) As Long'股票读取接口,第一个参数为装载股票数据的结构体Dim fs As FileStream = File.OpenRead(filename)Dim br As New BinaryReader(fs)Dim n As IntegerDim i As Integer, j As IntegerSelect Case tCase 1 '中天Case 2 '通达信 暂时不用n = (fs.Length - 4) / 32LoadDayData = nReDim dr(n)br.ReadInt32() '文件头到底是什么,另外是头天顺序颠放到了某个地方For i = 1 To nDim d As Integer = br.ReadInt32()dr(i).stockdate = DateSerial(d / 10000, (d Mod 10000) / 100, d Mod 100)dr(i).openor = getRealPrice(br.ReadInt32) / 1000dr(i).hightor = getRealPrice(br.ReadInt32) / 1000dr(i).lowor = getRealPrice(br.ReadInt32) / 1000dr(i).endor = getRealPrice(br.ReadInt32) / 1000br.ReadInt32()dr(i).changor = br.ReadInt32dr(i).id = iIf (dr(i).hightor <> dr(i).lowor) Then dr(i).VbP = dr(i).changor / ((dr(i).hightor - dr(i).lowor) * 1000)br.ReadInt32()NextEnd Selectfs.Dispose()LoadDayData = jEnd Function


阅读全文(1374) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 2.559 second(s), page refreshed 144810885 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号