在网上发现通达信的日期用的是两字节的编码的,求解
16714 表示 3月30日16789 表示 4月5日
据说该数据并未包括年份在里面,只有月和日!!!
16714 表示 3月30日16789 表示 4月5日
据说该数据并未包括年份在里面,只有月和日!!!
解决方案 »
- C#里面用\n\r字符,导出到word模版后不换行是怎么回事?
- c# webBrowser
- Code Analyze 出现Error CA2122 不要使用链接请求间接公开方法
- Sql里的money对应C#中的哪种类型?
- 数据采集,正则表达式匹配问题
- winform的datagrid中修改某个单元格中的值后点回车,怎么写回车事件??解决揭贴~在线~~
- 求算法(特急在线等)
- 数据库连接求教,老是报错?????????
- 切换Form 10几次后出现stackoverflowerror异常~~急求解决办法
- SQL语句问题
- 图形闪烁,怎么解决???
- 比较罕见的二进制文件读取写入的问题,非常非常非常奇怪的异常
clear all;
fn='sh600xxx.5';
fid=fopen(fn,'r');
fseek(fid,-32,'eof');
date=fread(fid,1,'uint16'); %读日期
year=floor(date/2048)+2004; %提取年信息
mon=floor(mod(date,2048)/100); %提取月信息
day=mod(mod(date,2048),100); %提取日信息
tm=fread(fid,1,'uint16'); %读时间
tm=floor(tm/60)*100+mod(tm,60); %转为几点(千、百位)几分(十、个位)
prices=fread(fid,4,'uint32'); %读开盘、最高、最低、收盘四个价格
prices=prices/100;
current=fread(fid,1,'single'); %读成交额(元)
deals=fread(fid,1,'ulong'); %读成交量(股)
s=sprintf('\n%d-%d-%d %d open=%0.2f, max=%0.2f, min=%0.2f, close=%0.2f',year,mon,day,tm,prices(1),prices(2),prices(3),prices(4));
disp(s)
s=sprintf(' cur=%0.2f deals=%u avep=%0.2f\n',current,deals,current/deals);
disp(s)
fclose(fid);
每32个字节为一天数据
每4个字节为一个字段,每个字段内低字节在前
00 ~ 03 字节:年月日, 整型
04 ~ 07 字节:开盘价*1000, 整型
08 ~ 11 字节:最高价*1000, 整型
12 ~ 15 字节:最低价*1000, 整型
16 ~ 19 字节:收盘价*1000, 整型
20 ~ 23 字节:成交额(元),float型
24 ~ 27 字节:成交量(手),整型
28 ~ 31 字节:上日收盘*1000, 整型
二、通达信5分钟线*.5文件
每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 字节:开盘价(分),整型
08 ~ 11 字节:最高价(分),整型
12 ~ 15 字节:最低价(分),整型
16 ~ 19 字节:收盘价(分),整型
20 ~ 23 字节:成交额(元),float型
24 ~ 27 字节:成交量(股)
28 ~ 31 字节:(保留)
一、通达信日线*.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, 整型
二、通达信5分钟线*.5文件
每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 字节:开盘价(分),整型
08 ~ 11 字节:最高价(分),整型
12 ~ 15 字节:最低价(分),整型
16 ~ 19 字节:收盘价(分),整型
20 ~ 23 字节:成交额(元),float型
24 ~ 27 字节:成交量(股)
28 ~ 31 字节:(保留)
对于5分钟数据:
00~03为时间,可以采用整型数据,如int aa;
00~01为时间,从00开始的分钟数。
02~03为日期,不包含年
如果要算法,可以是:
int time=(aa/65536)得出570,表示9:30,得出900:,表示15:00
int day=aa-time*65536;得出402,表示4月2号; 04 ~ 07 字节:开盘价(分),float
08 ~ 11 字节:最高价(分),float
12 ~ 15 字节:最低价(分),float
16 ~ 19 字节:收盘价(分),float
20 ~ 23 字节:成交额(元),float型
24 ~ 27 字节:成交量(股)
28 ~ 31 字节:(保留)
另外,我也想处理一些数据,是否有愿意合作的?