一、通达信日线*.day文件 文件名即股票代码 每32个字节为一天数据 每4个字节为一个字段,每个字段内低字节在前 00 ~ 03 字节:年月日, 整型 04 ~ 07 字节:开盘价*100, 整型 08 ~ 11 字节:最高价*100, 整型 12 ~ 15 字节:最低价*100, 整型 16 ~ 19 字节:收盘价*100, 整型 20 ~ 23 字节:成交额(元),float型 24 ~ 27 字节:成交量(股),整型 28 ~ 31 字节:上日收盘*100, 整型 二、通达信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 字节:开盘价*100,整型 08 ~ 11 字节:最高价*100,整型 12 ~ 15 字节:最低价*100,整型 16 ~ 19 字节:收盘价*100,整型 20 ~ 23 字节:成交额*100,float型 24 ~ 27 字节:成交量(股),整型 28 ~ 31 字节:(保留) 三、5分钟信息提取代码 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); 注:上面代码是提取了最后一个五分钟的信息,所以有个fseek(fid,-32,'eof');