(没分了)通达信5分钟数据(.lc5)如何取?网上的TM都扯蛋

realside 2017-01-23 10:25:49
网上的格式除了日期对其它都扯,例如:

通达信5分钟线*.lc5文件和*.lc1文件
文件名即股票代码
每32个字节为一个5分钟数据,每字段内低字节在前
00 ~ 01 字节:日期,整型,设其值为num,则日期计算方法为:
year=floor(num/2048)+2004;
month=floor(mod(num,2048)/100);
day=mod(mod(num,2048),100);
02 ~ 03 字节: 从0点开始至目前的分钟数,整型
04 ~ 07 字节:开盘价,float型
08 ~ 11 字节:最高价,float型
12 ~ 15 字节:最低价,float型
16 ~ 19 字节:收盘价,float型
20 ~ 23 字节:成交额,float型
24 ~ 27 字节:成交量(股),整型
28 ~ 31 字节:(保留)

04 ~ 07 字节:开盘价,float型 这里开始就不对了,如D7A30441,转换后得到的是个很大的数,而且和价格完全对不上(价格是8块多),求有做过的指点下!!万谢
...全文
2932 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AlexTrader 2019-12-30
  • 打赏
  • 举报
回复
字节顺序换了还是没用,都是负数了。前面的日期/时间都错了
绿叶清风 2018-03-04
  • 打赏
  • 举报
回复
引用 3 楼 kiboisme 的回复:
D7A30441 = 8.29 (Single)
怎么映射出来的呀?0x4104a3d7 映射成10进制应该是:1090823127
tsunekou 2017-02-23
  • 打赏
  • 举报
回复
楼主 你搞定了么 可否将代码给我一份?
  • 打赏
  • 举报
回复
引用 2 楼 realside 的回复:
[quote=引用 1 楼 DelphiGuy 的回复:] 如D7A30441,转换后得到的是个很大的数,这是因为你把字节序搞反了,应该是4104a3d7
我说的那个是文件中的顺序,4104a3d7也一样是大数。[/quote] 二进制$4104a3d7映射为浮点就是8.29。 var i: cardinal; f: single absolute i; begin i := $4104a3d7; writeln(f:0:3); end;
蓝色光芒 2017-01-24
  • 打赏
  • 举报
回复
D7A30441 = 8.29 (Single)
realside 2017-01-23
  • 打赏
  • 举报
回复
引用 1 楼 DelphiGuy 的回复:
如D7A30441,转换后得到的是个很大的数,这是因为你把字节序搞反了,应该是4104a3d7
我说的那个是文件中的顺序,4104a3d7也一样是大数。
  • 打赏
  • 举报
回复
如D7A30441,转换后得到的是个很大的数,这是因为你把字节序搞反了,应该是4104a3d7

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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