function [open,high,low,close,brick] = wh_mrenko_bar(lclose,ticksize,mult) brickle = abs(lclose(2:end) - (lclose(1:end-1))); brick = median(brickle')*mult; brick = brick/ticksize; brick = round(brick/10)*10; brick = brick*ticksize; %brick = ticksize * 100; rclose = lclose; n = 1; for k=1:length(rclose) if(k<3) up(n) = rclose(k); down(n) = rclose(k); n = n +1; %init else if(rclose(k) > (up(n-1) + brick)) up(n) = up(n-1) + brick; down(n) = up(n-1) - brick; middle(n) = (up(n) + down(n))/2; n = n + 1; if(rclose(k) > (up(n-1) + brick)) not_done = 1; else not_done = 0; end while(not_done == 1) up(n) = up(n-1) + brick; down(n) = up(n-1) - brick; middle(n) = (up(n) + down(n))/2; n = n + 1; if(rclose(k) > (up(n-1) + brick)) not_done = 1; else not_done = 0; end end elseif (rclose(k) < (down(n-1) - brick)) down(n) = down(n-1) - brick; up(n) = down(n-1) + brick; middle(n) = (up(n) + down(n))/2; n = n + 1; if(rclose(k) < (down(n-1) - brick)) not_done = 1; else not_done = 0; end while(not_done == 1) down(n) = down(n-1) - brick; up(n) = down(n-1) + brick; middle(n) = (up(n) + down(n))/2; n = n + 1; if(rclose(k) < (down(n-1) - brick)) not_done = 1; else not_done = 0; end end else down(n)= down(n-1); up(n) = up(n-1); middle(n) = (up(n) + down(n))/2; n = n + 1; end end end m = 1; for l=1:length(up) if(l<2) else if(up(l) > up(l-1)) open(m) = down(l); high(m) = up(l); low(m) = down(l); close(m) = up(l); m = m + 1; end if(down(l) < down(l-1)) open(m) = up(l); high(m) = up(l); low(m) = down(l); close(m) = down(l); m = m + 1; end end end