1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| function [DataOutput, Status] = GetRealTimeStockData(obj,eventdata,UserData) % 获取实时交易数据 % by qm % Email:305638715@qq.com % 2015/09/09 %% 输入输出预处理
DataOutput = [];
Status = 0;
StockCode = obj.UserData; %获取实时数据 GetRTQuotes = fGetRTQuotes();
GetRTQuotes.Code = StockCode;
DataCell = GetRTQuotes.GetRTQuotes();
Header = { '时间','今开盘','昨收盘','当前价','今最高','今最低',... '竞买价,即“买一”报价','竞卖价,即“卖一”报价', ... '成交量,单位“股”','成交额,单位“元”',... '买一量','买一价','买二量','买二价','买三量','买三价',... '买四量','买四价','买五量','买五价', ... '卖一量','卖一价','卖二量','卖二价','卖三量','卖三价',... '卖四量','卖四价','买五量','卖五价'};
DataCellTemp = {1,32}; % 数据转换 DataCellTemp(1,2:30) = DataCell(2:30,1);
dateTemp = [char(DataCell(31)),' ',char(DataCell(32))];
dateTemp = datenum( dateTemp, 'yyyy-mm-dd HH:MM:SS');
dateTemp = datestr(dateTemp,'yyyymmddHHMM.SS'); dateTemp = str2double(dateTemp);
DataCellTemp{1} = dateTemp;
StockTickRealTime = DataCellTemp;
disp(StockTickRealTime);
%保存数据,已有文件进行追加,没有则新建 % 读取数据库地址 load 'Config';
HomeFolder = Config{1}; FolderStr = [HomeFolder,'/DataBase/Stock/Tick_RealTime_mat/',datestr(date,'yyyy-mm-dd')]; if ~isdir( FolderStr ) mkdir( FolderStr ); end
FileStr = [FolderStr,'/',StockCode,'_Tick_RealTime.mat'];
FileExist = 0; if exist(FileStr, 'file') == 2 FileExist = 1; end
% % 本地数据存在,进行尾部更新添加 if 1 == FileExist try MatObj = matfile(FileStr,'Writable',true); [nrows, ncols]=size(MatObj,'StockTickRealTime'); if nrows > 0 MatObj.StockTickRealTime = [MatObj.StockTickRealTime(1:nrows,:);StockTickRealTime]; else MatObj.StockTickRealTime = StockTickRealTime; end catch errormsg str = [ StockCode,datestr(clock,'yyyy-mm-dd HH:MM:SS'),' 数据保存失败!' ]; disp(errormsg); disp(str); end end
% % 本地数据不存在 if 0 == FileExist save(FileStr,'StockTickRealTime','Header','-v7.3'); end
|