matlab1分钟数据转5分钟,把股票的5分钟k线数据转换成matlab的day文件

%StockInformationSHaseImportRoot是钱龙保存5分钟线的数据的文件路径,这里我选用600080

StockInformationSHaseImportRoot = ‘D:\Program... Files\qianlong\qijian\QLDATA\history\SHASE\nmn\600080.nmn’ ;

if exist(StockInformationSHaseImportRoot) == 2

file_id = fopen(StockInformationSHaseImportRoot, 'rb');         %打开文件

raw_data = [1:1:10] ;                                                               %raw_data用于保存5分钟的各种数据

while feof(file_id) == 0                                                             %循环读取600080.nmn的数据

mi=fread(file_id,1,'ubit6'); %minutes

if mi<10

mistr=['0',num2str(mi)]; %分钟数是以为的补零,方便以后数据处理,以下同理

else

mistr=num2str(mi);

end

hr=fread(file_id,1,'ubit5'); %hour

if hr<10

hrstr=['0',num2str(hr)];

else

hrstr=num2str(hr);

end

dy=fread(file_id,1,'ubit5'); %day

if dy<10

dystr=['0',num2str(dy)];

else

dystr=num2str(dy);

end

mt=fread(file_id,1,'ubit4'); %month

if mt<10

mtstr=['0',num2str(mt)];

else

mtstr=num2str(mt);

end

yr=fread(file_id,1,'ubit12'); %year

[row_array, ele_count] = fread(file_id, 9, 'int32') ;

five5mn_date=strcat(num2str(yr),mtstr,dystr,hrstr,mistr);%把日期连在一起格式为:yyyymmddHHMM

if ~isempty(five5mn_date)==1

row_array1(1)=str2double(five5mn_date);                   %把日期赋值给row_array1

row_array1(2:10)=row_array(1:9);                                %把开盘最高最低收盘成交量成交额赋值给row_array1

if ele_count < 9

break ;

else

raw_data = [raw_data; row_array1] ;                          %把每行数据连接起来

clear row_array1 five5mn_date yr mt dy hr mi;

end

num=num+1;

end

end

raw_data(1,:)=[] ;

stockdatainfo(:,1) = raw_data(:,1);                 %时间

stockdatainfo(:,2:5) = raw_data(:,2:5)/1000;        %开盘价,最高价,最低价,收盘价

stockdatainfo(:,6) = raw_data(:,7);                 %成交量

stockdatainfo(:,7) = round(raw_data(:,6)/100);       %成交额

StockInformationExportRoot = strcat(StockInformationSHaseMatPathRoot, num2str(dayFileName)) ;  %StockInformationSHaseMatPathRoot保存的路径

save(StockInformationExportRoot, 'stockdatainfo') %保存为day文件

fclose(file_id);%关闭文件

clc;

clear;

看见很多在找怎么转换股票软件中k线数据,这里介绍的是钱龙的5分钟k线的数据,如要转换其他股票软件的5分钟k线数据,首先要了解其数据结构。

数据路径 \QIANLONG\QLDATA\history\shase(sznse)\nmn\*.nmn

钱龙5分钟数据数据结构 每个记录10*32bit

第一个32bit是日期

mi=fread(fid,1,'ubit6'); //minutes

hr=fread(fid,1,'ubit5'); //hour

dy=fread(fid,1,'ubit5'); //day

mt=fread(fid,1,'ubit4'); //month

yr=fread(fid,1,'ubit12');//year

第二到五个32bit是价格*1000,分别是开盘价,最高价,最低价和收盘价。

第六到七个32bit是成交额和成交量。

如果要转钱龙或者大智慧的日线数据(钱龙与大智慧的日线数据格式相同),它们的日线数据格式如下:

第一个32bit是日期

第二到五个32bit是价格*1000,分别是开盘价,最高价,最低价和收盘价。

第六到七个32bit是成交额和成交量。

日期部分就不用那么麻烦了,只需要把第一个32bit的值直接赋给raw_data(:,1),其他不变。

大家如果有更好或者改进的方法,希望共享!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值