matlab1分钟数据转5分钟,把股票的5分钟k线数据转换成matlab的day文件
%StockInformationSHaseImportRoot是錢龍保存5分鐘線的數(shù)據(jù)的文件路徑,這里我選用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分鐘的各種數(shù)據(jù)
while feof(file_id) == 0? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? %循環(huán)讀取600080.nmn的數(shù)據(jù)
mi=fread(file_id,1,'ubit6'); %minutes
if mi<10
mistr=['0',num2str(mi)]; %分鐘數(shù)是以為的補(bǔ)零,方便以后數(shù)據(jù)處理,以下同理
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] ;? ?? ?? ?? ?? ?? ?? ?? ???%把每行數(shù)據(jù)連接起來
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);%關(guān)閉文件
clc;
clear;
看見很多在找怎么轉(zhuǎn)換股票軟件中k線數(shù)據(jù),這里介紹的是錢龍的5分鐘k線的數(shù)據(jù),如要轉(zhuǎn)換其他股票軟件的5分鐘k線數(shù)據(jù),首先要了解其數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)路徑 \QIANLONG\QLDATA\history\shase(sznse)\nmn\*.nmn
錢龍5分鐘數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu) 每個記錄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是成交額和成交量。
如果要轉(zhuǎn)錢龍或者大智慧的日線數(shù)據(jù)(錢龍與大智慧的日線數(shù)據(jù)格式相同),它們的日線數(shù)據(jù)格式如下:
第一個32bit是日期
第二到五個32bit是價格*1000,分別是開盤價,最高價,最低價和收盤價。
第六到七個32bit是成交額和成交量。
日期部分就不用那么麻煩了,只需要把第一個32bit的值直接賦給raw_data(:,1),其他不變。
大家如果有更好或者改進(jìn)的方法,希望共享!
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的matlab1分钟数据转5分钟,把股票的5分钟k线数据转换成matlab的day文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux gdb模式下无反应,Linu
- 下一篇: python反转列表不用切片_关于pyt