==================== Volume By Price 10-C ==================== This indicator displays the distribution of volume over a nominated period relative to increments of the price extremes during that period. The display takes the form of a horizontal histogram contained within a three sided border and it should be scaled to match the price chart. The date format is appropriate for UK/Aus/NZ markets and can be easily adapted to the US format of MM/DD. ---8<--------------------------- {Volume By Price 10-C} {© 2003 Roy Larsen} {rlarsen@man.quik.co.nz} D:=Input("Start Day / Month /",101,3112,1510); Y:=Input( "Year",1990,2003,2002); X1:=Input("End Day / Month /",101,3112,103); X3:=Input("Year",1990,2003,2003); M:=Int(.01+Frac(D/100)*100); D:=Int(D/100); X2:=Int(.001+Frac(X1/100)*100); X1:=Int(X1/100); D:=(DayOfMonth()>=D AND Month()=M AND Year()=Y) OR Year()>Y OR (Year()=Y AND Month()>M); D:=BarsSince(D AND Alert(D=0,2)); D:=LastValue(If(D=0,LastValue(Cum(1)-1),D)); N:=Input("Scaling % in Box, 0=None",0,100,50); M:=(DayOfMonth()>=X1 AND Month()=X2 AND Year()=X3) OR Year()>X3 OR (Year()=X3 AND Month()>X2); M:=BarsSince(M AND Alert(M=0,2)); M:=LastValue(If(M=0,LastValue(Cum(1)-1),M)); F:=LastValue(Cum(1)); A:=(F-D)=Cum(1); B:=LastValue(Cum(If(A,V,0))); Q:=LastValue(HighestSince(1,Ref(A=0,-M),Ref(C,-M))); R:=LastValue(LowestSince(1,Ref(A=0,-M),Ref(C,-M))); I:=(Q-R)/10; X1:=LastValue(Cum(If(C<(R+I) AND A,V,0))/B); X2:=LastValue(Cum(If(C>=(R+I) AND C<(R+I*2) AND A,V,0))/B); X3:=LastValue(Cum(If(C>=(R+I*2) AND C<(R+I*3) AND A,V,0))/B); X4:=LastValue(Cum(If(C>=(R+I*3) AND C<(R+I*4) AND A,V,0))/B); X5:=LastValue(Cum(If(C>=(R+I*4) AND C<(R+I*5) AND A,V,0))/B); X6:=LastValue(Cum(If(C>=(R+I*5) AND C<(R+I*6) AND A,V,0))/B); X7:=LastValue(Cum(If(C>=(R+I*6) AND C<(R+I*7) AND A,V,0))/B); X8:=LastValue(Cum(If(C>=(R+I*7) AND C<(R+I*8) AND A,V,0))/B); X9:=LastValue(Cum(If(C>=(R+I*8) AND C<(R+I*9) AND A,V,0))/B); X0:=LastValue(Cum(If(C>=(R+I*9) AND A,V,0))/B); B:=Max(Max(X1,X2),Max(X3,X4)); B:=Max(Max(B,X5),Max(X6,X7)); B:=Max(Max(B,X8),Max(X9,X0)); B:=If(N=0,1,B*100)/If(N=0,1,N); Ref(Ref(ValueWhen(1,(F-D)<=Cum(1),Q),-M),M); Ref(Ref(ValueWhen(1,F-Int(X0*(D-M)/B)= Cum(1)+M,R+I*9.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X9*(D-M)/B)= Cum(1)+M,R+I*8.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X8*(D-M)/B)= Cum(1)+M,R+I*7.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X7*(D-M)/B)= Cum(1)+M,R+I*6.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X6*(D-M)/B)= Cum(1)+M,R+I*5.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X5*(D-M)/B)= Cum(1)+M,R+I*4.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X4*(D-M)/B)= Cum(1)+M,R+I*3.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X3*(D-M)/B)= Cum(1)+M,R+I*2.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X2*(D-M)/B)= Cum(1)+M,R+I*1.5),-M),M); Ref(Ref(ValueWhen(1,F-Int(X1*(D-M)/B)= Cum(1)+M,R+I*0.5),-M),M); Ref(Ref(ValueWhen(1,(F-D)<=Cum(1) AND (F-D)>Cum(1)-2,If(A,R,Q)),-M),M); ---8<--------------------------- http://www.metastocktips.co.nz/