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씨
Reference
이 문제에 관하여(MATLAB에서 주가 데이터 자동 취득 3개 데이터 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SacredTubes/items/dc3704bc923bb8f4132d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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씨
Reference
이 문제에 관하여(MATLAB에서 주가 데이터 자동 취득 3개 데이터 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SacredTubes/items/dc3704bc923bb8f4132d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
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씨
Reference
이 문제에 관하여(MATLAB에서 주가 데이터 자동 취득 3개 데이터 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SacredTubes/items/dc3704bc923bb8f4132d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)