MATLABで株価データ自動取得 その3 データ可視化
これまで
MATLABでYahoo Financeから自動データ収集をして、移動平均を求めるところまでできた。
timetableデータを可視化すると休日や祝日が歯抜けになってしまう問題が発覚。Yahoo Financeのように歯抜けにならないように表示する。
期待する表示
timetableをstackedplotやcandle関数で可視化すると以下のように歯抜けになってしまう。今年のGWは10日間も休みだったので、最初のほうに大きな歯抜けがある。
上を下(Yahooファイナンスから抜粋) の様に歯抜け無く可視化できるようにしたい。
歯抜けの解消
timetableデータを可視化することで歯抜けが発生するので、時間軸のデータを使わずに表示を行うと歯抜けが解消。
candle(data{1:end, 1:4}) % 休場日が歯抜けになるので並べ替え
legend('Candle')
hold on
% 移動平均を表示
plot(data.AveFilt5,...
'Color', [0.9 0.3 0.3], 'DisplayName','5day')
plot(data.AveFilt15,...
'Color', [0.7 0.3 0.1], 'DisplayName','15day')
plot(data.AveFilt30,...
'Color', [0.5 0.3 0.1], 'DisplayName','30day')
hold off
grid on
さらにX軸の目盛り設定を行って
ha = gca; % 休場日が歯抜けになるので並べ替え
xticksloc = ceil(ha.XTick);
tempTime = data.Time;
for n = length(data.Time)+1:max(xticksloc)+1
% Plot上のTickはあるが、データが無いところを補完
tempTime(end+1) = tempTime(end)+1;
end
sz1 = size(tempTime, 1);
% データ長によって軸目盛を可変
if sz1 < 50
tempTime.Format = 'M月d日';
ha.XTickLabel = string(tempTime(xticksloc+1));
xlabel(year(tempTime(end)))
elseif sz1 < 105
tempTime.Format = 'yy年M月';
ha.XTickLabel = string(tempTime(xticksloc+1));
tempTime.Format = 'yy年M月d日';
ha.XTickLabel{1} = string(tempTime(xticksloc(1)+1));
ha.XTickLabel{end} = string(tempTime(xticksloc(end)+1));
xlabel(year(tempTime(end)))
else
% 上と同じ。様子を見ながら調整する。
tempTime.Format = 'yy年M月';
ha.XTickLabel = string(tempTime(xticksloc+1));
tempTime.Format = 'yy年M月d日';
ha.XTickLabel{1} = string(tempTime(xticksloc(1)+1));
ha.XTickLabel{end} = string(tempTime(xticksloc(end)+1));
% xlabel(year(tempTime(end)))
end
title([data.Properties.Description ' ' num2str(data.Properties.UserData)])
色も変えてみた
ついでに・・・
candle関数の中を少しいじって株価が上がったときと下がった時で色を変えてみた。
変えたのはcandle関数のここ↓
for i = 1 : numObs
if op(i) < cl(i)
color = 'r'; % red
else
color = 'b';
end
h(i+1) = fill(ax, ...
[indexLeft(i); indexLeft(i); indexRight(i); indexRight(i)], ...
[op(i); cl(i); cl(i); op(i)], color, 'Edgecolor',color, ...
'LineStyle','-','Marker','none','AlignVertexCenters', 'on');
end
だいぶ見やすくなった。
終わり
Thanks to iさん
Author And Source
この問題について(MATLABで株価データ自動取得 その3 データ可視化), 我々は、より多くの情報をここで見つけました https://qiita.com/SacredTubes/items/dc3704bc923bb8f4132d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .