É possível usar o Matlab para desenhar um gráfico de negociação com ofertas?

0

No meu software de negociação, escrevo meus registros como este:

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
  • Primeira coluna é tempo (é tão grande porque esse é o número de pulsos decorridos desde 1970, onde um tique = 100 nanossegundos, apenas não se preocupe com isso)
  • A segunda coluna é a operação. q para a cotação b para compra e s para a venda.
  • A terceira coluna é o preço.

As linhas com o mesmo time devem formar uma vertical candle . Também preciso adicionar anotações no gráfico para mostrar onde compro buy e sell .

Sem anotações, acho que essa tarefa é trivial para o Matlab, mas posso adicionar anotações no Matlab? ou seja, eu quero ter algo assim:

(Clique na imagem para ampliar)

Quando compro ações, quero exibir uma seta verde e, quando vendo ações, quero exibir uma seta vermelha. Não há problema em usar outros símbolos até que estejam claros e distintos.

    
por javapowered 18.07.2012 / 18:46

1 resposta

0

É possível fazer isso. O código a seguir cria um círculo (o) na posição de dados 5. Além disso, ele adiciona uma dica de ferramenta. (fonte: link )

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);

Emsegundolugar,minhaprópriaideia,queéumpoucomaisfácil:

figurexdata=1:1:100;ydata=rand(100,1);sells=[10,15,25]buys=[51220]plot(xdata,ydata)holdonfori=buysiplot(xdata(i),ydata(i),'go','MarkerSize',6,'LineWidth',3);endfori=sellsplot(xdata(i),ydata(i),'ro','MarkerSize',6,'LineWidth',3);end

    
por 19.07.2012 / 16:17

Tags