-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathSaveStockInfo.m
More file actions
112 lines (93 loc) · 3.34 KB
/
SaveStockInfo.m
File metadata and controls
112 lines (93 loc) · 3.34 KB
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
function [SaveLog,ProbList,NewList] = SaveStockInfo(StockList)
% by LiYang_faruto
% Email:farutoliyang@foxmail.com
% 2014/12/12
%% 输入输出预处理
if nargin < 1 || isempty(StockList)
load StockList.mat;
end
SaveLog = [];
ProbList = [];
NewList = [];
Len = size(StockList, 1);
StockCode = StockList(:,2);
StockName = StockList(:,1);
%% 获取数据
FolderStr = ['./DataBase/Stock/StockInfo_mat'];
if ~isdir( FolderStr )
mkdir( FolderStr );
end
ticID = tic;
for i = 1:Len
disp('======')
RunIndex = i
Scode = StockCode{i}
Sname = StockName{i}
disp('============')
FileString = [FolderStr,'/',StockCode{i},'_StockInfo.mat'];
FileExist = 0;
if exist(FileString, 'file') == 2
FileExist = 1;
end
% % 本地数据存在,进行尾部更新添加
if 1 == FileExist
try
str = ['load ',FileString];
eval(str);
if ~isempty(StockInfo)
str = [ StockCode{i},'-',StockName{i}, ' 本地数据已存在' ];
disp(str);
% % 数据检查
if isempty( StockInfo.IPOdate )
str = [ StockCode{i},'-',StockName{i}, ' 股票上市日期为空,将重新下载数据!' ];
disp(str);
FileExist = 0;
end
else % % 本地数据存在,但为空
LenTemp = size( NewList,1 )+1;
NewList{LenTemp,1} = Sname;
NewList{LenTemp,2} = Scode;
StockCodeInput = Scode;
[StockInfo] = GetStockInfo_Web(StockCodeInput);
if isempty(StockInfo)
str = [ StockCode{i},'-',StockName{i}, ' 数据获取失败,请检查!' ];
disp(str);
LenTemp = size( ProbList,1 )+1;
ProbList{LenTemp,1} = Sname;
ProbList{LenTemp,2} = Scode;
continue;
end
save(FileString,'StockInfo', '-v7.3');
end
catch
str = [ StockCode{i},'-',StockName{i}, ' 数据载入失败或其他原因数据更新失败,将重新下载数据!' ];
disp(str);
FileExist = 0;
end
end
% % 本地数据不存在
if 0 == FileExist
LenTemp = size( NewList,1 )+1;
NewList{LenTemp,1} = Sname;
NewList{LenTemp,2} = Scode;
StockCodeInput = Scode;
[StockInfo] = GetStockInfo_Web(StockCodeInput);
if isempty(StockInfo)
str = [ StockCode{i},'-',StockName{i}, ' 数据获取失败,请检查!' ];
disp(str);
LenTemp = size( ProbList,1 )+1;
ProbList{LenTemp,1} = Sname;
ProbList{LenTemp,2} = Scode;
continue;
end
save(FileString,'StockInfo', '-v7.3');
end
NewListLen = size(NewList,1)
ProbListLen = size(ProbList,1)
elapsedTimeTemp = toc(ticID);
str = [ '循环已经累计耗时', num2str(elapsedTimeTemp), ' seconds(',num2str(elapsedTimeTemp/60), ' minutes)',...
'(',num2str(elapsedTimeTemp/60/60), ' hours)',];
disp(str);
str = ['Now Time:',datestr(now,'yyyy-mm-dd HH:MM:SS')];
disp(str);
end