在我的交易软件中,我写下这样的日志:
634782126998342815 q 0.0156327559515302
634782126998966816 q 0.0156323845819952
634782126999122816 q 0.0156323423136646
634782126999278816 q 0.0156323634478013
634782126999434817 q 0.0156321895228581
634782126999434817 q 0.015632316326057
634782126999434817 q 0.0156320680833289
634782126999434817 q 0.0156319412841572
634782126999434817 q 0.0156320680833289
634782126999434817 q 0.0156321541605791
634782126999902817 b 0.0156321229489328
634782126999902817 q 0.0156319988296541
634782126999902817 q 0.0156318739862979
634782126999902817 q 0.0156319488920723
- 第一列是时间(它很大,因为这是从 1970 年开始经过的滴答数,一个滴答 = 100 纳秒,不用担心这个)
- 第二列是操作。问报价b购买和s出售。
- 第三列是价格。
相同的线time
应该形成垂直线candle
。另外,我需要在图表上添加注释,以显示我买和卖股票。
如果没有注释,我认为这个任务对于 Matlab 来说很简单,但是我可以在 Matlab 中添加注释吗?例如,我想要这样的东西:
当我买入股票时,我想显示绿色箭头;当我卖出股票时,我想显示红色箭头。可以使用其他符号,只要它们清晰可辨即可。
答案1
这是可以做到的。以下代码在数据位置 5 处创建一个圆圈 (o)。此外,它还添加了一个工具提示。(来源:http://undocumentedmatlab.com/blog/controlling-plot-data-tips/)
xdata=1:1:100;
ydata=rand(100,1);
% First plot the data
hLine = plot(xdata, ydata);
% First get the figure's data-cursor mode, activate it, and set some of its properties
cursorMode = datacursormode(gcf);
set(cursorMode, 'enable','on');
% Note: the following code was adapted from %matlabroot%\toolbox\matlab\graphics\datacursormode.m
% Create a new data tip
hTarget = handle(hLine);
hDatatip = cursorMode.createDatatip(hTarget);
% Update the datatip marker appearance
set(hDatatip, 'MarkerSize',5, 'MarkerFaceColor','none', ...
'MarkerEdgeColor','k', 'Marker','o', 'HitTest','off');
% Move the datatip to the right-most data vertex point
position = [xdata(5),ydata(5),1; xdata(end),ydata(end),-1];
update(hDatatip, position);
其次是我自己的想法,这个比较简单一点:
figure
xdata=1:1:100;
ydata=rand(100,1);
sells = [10,15,25]
buys = [5 12 20]
plot(xdata,ydata)
hold on
for i=buys
i
plot(xdata(i),ydata(i),'go','MarkerSize',6,'LineWidth',3);
end
for i=sells
plot(xdata(i),ydata(i),'ro','MarkerSize',6,'LineWidth',3);
end