求大神C#编程:打开并读取格式为“.day”的文件!!!求助!!!

求大神C#编程:打开并读取格式为“.day”的文件!!!求助!!!,第1张

这是个二进制文件,用低级函数读写。

建议先用ultraedit打开,把里面的结构搞清楚,例如那一段是股票代号,哪一段是名称,哪一段价格。

第二步:读写流。读写二进制文件用System.IO.BinaryReader和System.IO.BinaryWriter类;

你同样要分析数据格式。特别day文件里的日期,我是老早搞过,现在都忘了。里面的日期好像还要换算。day文件里存储的是一段时期的每天价格。这个好像很好分析的。原来用delphi编过,刚才找没找到,可能被老婆给删除了。

这个给你参考:

一、数据文件和数据结构:

大智慧数据文件和数据结构:(假设大智慧股票行情软件安装在D:dzh目录下)

上海日线存储路径为:D:dzhDATASHaseDay,文件扩展名为:.day

上海周线存储路径为:D:dzhDATASHaseweek,文件扩展名为: .wek

上海月线存储路径为:D:dzhDATASHasemonth,文件扩展名为: .mnt

深圳日线存储路径为:D:dzhDATASZnseDay

深圳周线存储路径为:D:dzhDATASZnseweek

深圳月线存储路径为:D:dzhDATASZnsemonth

周线,月线格式与日线格式一致.

以深发展日线为例:

1A76:0100 D6 CD 2F 01 52 07 01 00-52 07 01 00 52 07 01 00

1A76:0110 52 07 01 00 86 0F 00 00-4D 02 00 00 00 00 00 00

1A76:0120 00 00 00 00 00 00 00 00-D7 CD 2F 01 60 03 01 00

1A76:0130 60 03 01 00 60 03 01 00-60 03 01 00 82 05 00 00

1A76:0140 D4 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00

每一条记录的长度为40字节:

1-4字节为日期,D6 CD 2F 01转换为十进制是:19910102

5-8字节=开盘价(元)*1000

9-12字节=最高价(元)*1000

13-16字节=最低价(元)*1000

17-20字节=收盘价(元)*1000

21-24字节=成交金额(元)/1000

25-28字节=成交量(手)

其余12字节未使用

实现步骤:

1、先定义日线数据结构数组

2、再以实际记录数分配动态数组空间

3、然后把数据读入相应数组中

日线数据放在:%app_dir%\DATA\SHase\Day(上证A股) 以及 %app_dir%\DATA\SZnse\Day(深圳A股)

#pragma once

struct DZH5Day

{

unsigned long date//date的格式:20070423

unsigned long open//开盘价

unsigned long high//最高价

unsigned long low//最低价

unsigned long close//收盘价

unsigned long moneysum//成交金额

unsigned long turnover//成交数量

char unused[12]//保留

}

整个结构共40个字节,读者可以查看所有的日线文件,大小肯定是40的倍数

这样很容易读出相应的数据:

如:

FILE* pFile = fopen("600001.day", "rb")

if (NULL != pFile)

{

while(!feof(pFile))

{

DZH5Day dayK

fread(&dayK, sizeof(DZH5Day), 1, pFile)

......

}

}

-------------------------------------------------------------------------------------------------------

公式也叫指标,是通过一些数学公式做成的较直观的画线,目的是辅助投资人买、卖,当然这些这些公式有准的,有不准的。对于指标,每个人也每个人不同的见解。

大智慧指标当然就是用在大智慧软件上的指标了,它没什么不同,只是格式不一样而已。大智慧internet版的指标格式是.exp,大智慧新一代指标格式是.fnc,和分析家软件格式一样。

要下载的话,你可以到:

这里面有飞狐和大智慧、大智慧新一代、分析家、通达信的指标可供下载,每天都在更新。他们网站上做的都是压缩包,也就说你下载下来以后,进行解压缩就能打开了。

关于导入,关键看你用的是哪套软件了,不过我这有两套软件的导入导出方法:

大智慧(导入)

选择菜单栏中的[自编],选择[导入],找到你下载并解压缩后的指标所在路径,[打开],[全选],[导入],输入某股票代码,如600000,再输入你下载指标的名称的第一个拼音字母,如“疯牛指标”,就输入:FNZB,回车就能看见了。

大智慧(导出)

选择菜单栏中的[自编],选择[导出],找到你要导出的指标,双击,选择[导出],给要导出的指标取个名字、确认导出路径就可以了。

大智慧新一代(导入)

选择[公式],选择[公式引入],选择[浏览],找到你已解压的指标所在的文件夹(注意,是文件夹,不是文件),[确定],这样就可以引入需要的指标了。

大智慧新一代(导出)

选择[公式],选择[公式输出],找到你要导出的指标,把名字前面的勾打上,选择[输出],再确认一下导出路径和指标名称并选择[保存]就可以了。

破解版=盗版,这是我的理解!我支持正版大智慧软件!

大智慧软件官方下载地址:

大智慧新一代(Level2)下载地址:

大智慧Ineternet版下载地址:

大智慧网上行情:

YYYYMMDD写日期,其实就是年、月、日的格式。

“Y”是英文 year 的缩写,意思是:年。

“M”是英文 month 的缩写,意思是:月,月份。

“D”是英文 day 的缩写,意思是:日。

因此,YYYYMMDD写日期,其实就是年、月、日的格式,前面四位是年份,中间两位是月份,后面两位是日期,比如20170826。

文件中的日期书写格式应为:

一、日期标准格式:

公历日期标准格式为:2007年2月6日;或2007-02-06。

农历日期标准格式为:丁亥年腊月十九日。

干支历日期标准格式为:丁亥年壬寅月辛未日。

二、日期书写不得以小数点或顿号代替年月日,如:2007.2.6; 2007、2、6。

三、年月日中的年号必须写全,不能简写成: 07年2月6日或 07-02-06。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11779821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存