Matlab中的等量金融图表

时间:2010-09-23 08:51:53

标签: matlab plot charts financial

无法在任何地方找到Matlab代码来绘制Equivolume吧,有谁知道怎么做? http://www.armsinsider.com/education/armsonthemarket/equiv_chart.asp 谢谢,Alberto

3 个答案:

答案 0 :(得分:1)

以下是zellus建议的基于箱线图的简单函数:

function hh = equivolumechart(x,w)
% EQUIVOLUMECHART - simple equivolume chart based on barplot
% x - 2xn high/low values, w - volume (box width)

h = boxplot(x,'width',w);
% make median unvisible
for ii=1:size(h,2)
    set(h(6,ii),'visible','off')
end
if nargout>0, hh = h; end 

end

示例:

a = randi(10,2,10);
w = randi(10,1,10)/10;
equivolumechart(a,w)

该功能可以使用补丁重写,但这个功能非常好。

您可以使用Financial Toolbox设置宽度中的CANDLE功能来修补对象,但我没有工具箱。

答案 1 :(得分:0)

boxplot可能是创建您自己的 equivplot 的起点。

答案 2 :(得分:0)

function [ ] = equivolumechart(highs, lows, volumes)
    % calculate pos of each box
    pos = zeros(length(volumes), 1);    
    for i=2:length(volumes)
        pos(i) = pos(i-1) + (volumes(i-1) + volumes(i))/2;
    end

    h = boxplot([highs'; lows'], 'width', volumes', 'positions', pos);
end

关键是找到每个盒子的位置。由于'位置'定义框的垂直中心线,两个框之间的距离应为(volume(i-1)+ volumes(i))/ 2