D:=Input("Periods,  0=Full Chart",0,2000,100);

D:=LastValue(If(D=0,LastValue(Cum(1)-1),D));

N:=Input("% Scaling in Box,  1=None",1,100,50);

F:=LastValue(Cum(1)); G:=F-D; {abbreviations}

A:=G<Cum(1); {window period}

B:=LastValue(Cum(If(A,V,0))); {window volume}

Q:=LastValue(HighestSince(1,A=0,C));{window HHV}

R:=LastValue(LowestSince(1,A=0,C)); {window LLV}

I:=(Q-R)/10; {range increment}

  {accumulated volume for each price range}

X0:=LastValue(Cum(If(C<(R+I) AND A,V,0))/B);

X1:=LastValue(Cum(If(C>=(R+I) AND C<(R+I*2) AND A,V,0))/B);

X2:=LastValue(Cum(If(C>=(R+I*2) AND C<(R+I*3) AND A,V,0))/B);

X3:=LastValue(Cum(If(C>=(R+I*3) AND C<(R+I*4) AND A,V,0))/B);

X4:=LastValue(Cum(If(C>=(R+I*4) AND C<(R+I*5) AND A,V,0))/B);

X5:=LastValue(Cum(If(C>=(R+I*5) AND C<(R+I*6) AND A,V,0))/B);

X6:=LastValue(Cum(If(C>=(R+I*6) AND C<(R+I*7) AND A,V,0))/B);

X7:=LastValue(Cum(If(C>=(R+I*7) AND C<(R+I*8) AND A,V,0))/B);

X8:=LastValue(Cum(If(C>=(R+I*8) AND C<(R+I*9) AND A,V,0))/B);

X9:=LastValue(Cum(If(C>=(R+I*9) AND A,V,0))/B);

M:=Max(Max(X1,X2),Max(X3,X4));

M:=Max(Max(M,X5),Max(X6,X7));

M:=Max(Max(M,X8),Max(X9,X0));

M:=If(N=1,N,M*100)/N; {set window % usage}

  {top of window, HHV for period}

ValueWhen(1,Cum(1)=G,Q);

  {proportion of volume for each price range}

ValueWhen(1,F-X9*D/M<=Cum(1),R+I*9.5);

ValueWhen(1,F-X8*D/M<=Cum(1),R+I*8.5);

ValueWhen(1,F-X7*D/M<=Cum(1),R+I*7.5);

ValueWhen(1,F-X6*D/M<=Cum(1),R+I*6.5);

ValueWhen(1,F-X5*D/M<=Cum(1),R+I*5.5);

ValueWhen(1,F-X4*D/M<=Cum(1),R+I*4.5);

ValueWhen(1,F-X3*D/M<=Cum(1),R+I*3.5);

ValueWhen(1,F-X2*D/M<=Cum(1),R+I*2.5);

ValueWhen(1,F-X1*D/M<=Cum(1),R+I*1.5);

ValueWhen(1,F-X0*D/M<=Cum(1),R+I*0.5);

  {left side and base of window, LLV for period}

ValueWhen(1,Cum(1)>=G,If(A,R,Q));