Impossible de trouver un code Matlab pour tracer des barres Equivolume, quelqu'un sait-il comment? http://www.armsinsider.com/education/armsonthemarket/equiv_chart.asp Merci, AlbertoEquivolume table financière à Matlab
0
A
Répondre
1
Voici une fonction simple basée sur boxplot comme suggéré par 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
Exemple:
a = randi(10,2,10);
w = randi(10,1,10)/10;
equivolumechart(a,w)
La fonction peut être réécrite en utilisant des correctifs, mais celui-ci fonctionne assez bien.
Vous pouvez probablement utiliser la fonction CANDLE de la largeur de paramètre de la boîte à outils financière pour patcher des objets, mais je n'ai pas la boîte à outils.
0
boxplot pourrait être un point de départ pour créer votre propre equivplot.
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
La clé est de trouver la position de chaque boîte. Puisque les «positions» définissent la ligne centrale verticale des boîtes, la distance entre deux boîtes devrait être (volumes (i-1) + volumes (i))/2