是否可以使用 Matlab 绘制带有交易的交易图?

是否可以使用 Matlab 绘制带有交易的交易图?

在我的交易软件中,我写下这样的日志:

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

在此处输入图片描述

相关内容