通达信日线.day文件解析,成交额字段有误,求高手指教

XingFuHaiAnXian 2013-12-03 07:42:54
按照以下通达信日线的数据格式解析数据,其他字段都与实际一致,唯独成交额字段与实际有太大差别,求高手指教
( 通达信日线*.day文件
文件名即股票代码
每32个字节为一天数据
每4个字节为一个字段,每个字段内低字节在前
00 ~ 03 字节:年月日, 整型
04 ~ 07 字节:开盘价*1000, 整型
08 ~ 11 字节:最高价*1000, 整型
12 ~ 15 字节:最低价*1000, 整型
16 ~ 19 字节:收盘价*1000, 整型
20 ~ 23 字节:成交额(元),float型
24 ~ 27 字节:成交量(手),整型
28 ~ 31 字节:上日收盘*1000, 整型 )
...全文
3439 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolvhu2000 2016-08-07
  • 打赏
  • 举报
回复
引用 3 楼 kiboisme 的回复:
Type
  TTDXDayInfo = packed record
    nDate                     : integer;  //日期,     格式:yyyymmdd的整数 如20080101 20081229
    nStartPrice               : integer;  //开盘价格, 格式:开盘价*100,取整
    nMaxPrice                 : integer;  //最高价,   格式:~~
    nMinPrice                 : integer;  //最低价,   格式:~~
    nEndPrice                 : integer;  //收盘价,   格式:~~
    nAmount                   : Single;   //成交总额,元
    nCount                    : integer;  //总量,手
    M                         : integer;  //保留 暂为分析出来,猜测是平均价格
  end;
这是我很多年前分析的,现在已经不用这个了,因为这个是未复权的,得自己分析GBBQ来进行复权,将很麻烦
未复权的。。。大侠现在用什么数据分析
leeonardo73 2015-07-15
  • 打赏
  • 举报
回复
sh000001文件在那个目录下啊? 我把sh000001放在xls所在文件夹,结果只有一行0,0,0,0,0,0 把sh000001改称了sh000002,结果还是一行0,0,0,0,0,0 ·goethe,指点下阿
goethe 2015-05-07
  • 打赏
  • 举报
回复
@u014449002 抱歉,这么晚才回复 最后一个字段不知道什么含义,可以舍去 头4个字段除以100就是以元为单位的价格。 提出来的数据是没问题的,不知道你说的数据不对是哪个字段
pc2sky 2015-03-07
  • 打赏
  • 举报
回复
@goethe 你好!你的代码我试过,数据不大对,下面是sh000001的最近三天数据 20150304 326418 328659 325048 327953 3.4679E+11 293639522 15205163 20150305 326408 326664 322167 324848 3.7358E+11 320663585 37421525 20150306 324804 326693 323453 324119 3.28344E+11 282915791 41681296 0 0 0 0 0 0 0 0 尝试了几种别的结构也不行,不知道day文件的具体格式是什么?
goethe 2015-02-14
  • 打赏
  • 举报
回复
成交额我用的是SINGLE,提取出来没有问题。 请参考我的VBA代码,最后一个字段不知道含义
Type MyType
    a2 As Long '日期
    a3 As Long '开盘价
    a4 As Long '最高价
    a5 As Long '最低价
    a6 As Long '收盘价
    a7 As Single '成交金额
    a8 As Long '成交量
    a9 As Long '?
End Type

Sub 按钮1_Click()

Dim File2 As Integer
Dim b As MyType

File1 = FreeFile
Open "sz399002.day" For Binary Access Read As #File1
i = 2

Do While Not EOF(File1)
    Get #File1, , b
    'Cells(i, 1) = b.a1
    Cells(i, 2) = b.a2
    Cells(i, 3) = b.a3
    Cells(i, 4) = b.a4
    Cells(i, 5) = b.a5
    Cells(i, 6) = b.a6
    Cells(i, 7) = b.a7
    Cells(i, 8) = b.a8
    Cells(i, 9) = b.a9

    i = i + 1
Loop

Close #File1

End Sub
蓝色光芒 2013-12-04
  • 打赏
  • 举报
回复
提醒:价格是*100取整 还是*1000取整,取决于一个参数,因此这里要考虑移植性,所以建议不要直接分析文件。
蓝色光芒 2013-12-04
  • 打赏
  • 举报
回复
Type
  TTDXDayInfo = packed record
    nDate                     : integer;  //日期,     格式:yyyymmdd的整数 如20080101 20081229
    nStartPrice               : integer;  //开盘价格, 格式:开盘价*100,取整
    nMaxPrice                 : integer;  //最高价,   格式:~~
    nMinPrice                 : integer;  //最低价,   格式:~~
    nEndPrice                 : integer;  //收盘价,   格式:~~
    nAmount                   : Single;   //成交总额,元
    nCount                    : integer;  //总量,手
    M                         : integer;  //保留 暂为分析出来,猜测是平均价格
  end;
这是我很多年前分析的,现在已经不用这个了,因为这个是未复权的,得自己分析GBBQ来进行复权,将很麻烦
XingFuHaiAnXian 2013-12-03
  • 打赏
  • 举报
回复
引用 1 楼 lhylhy 的回复:
成交额肯定会是以百千或万为单位的吧.
是的,肯定还是20-23字节,只是解析方法不对
lhy 2013-12-03
  • 打赏
  • 举报
回复
成交额肯定会是以百千或万为单位的吧.

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧