PureBytes Links
Trading Reference Links
|
The second piece of code does the job fine, so I'll stick with that.
I think it was something to do with the dates - some dates worked, some
didn't (I did make the MD to DM translation).
Thanks again Roy
Andrew
-----Original Message-----
From: equismetastock@xxxxxxxxxxxxxxx [mailto:equismetastock@xxxxxxxxxxxxxxx]
On Behalf Of Roy Larsen
Sent: Friday, May 27, 2005 10:02 PM
To: equismetastock@xxxxxxxxxxxxxxx
Subject: Re: [EquisMetaStock Group] Volume at Price
Hi Andrew
> I'm getting lots of divide by zero errors - any workarounds?
At a quick glance the only reason I can see for these errors is one of the
"B" variables equal to
zero when the start date is set before the first bar of the chart. I assume
there's a problem in the
date area somewhere. Changing the definition of the two affected "B"
variables might help. I've
marked the two with {**} in the formula below.
See if you still have a problem.
Kind regards
Roy
{Volume By Price 10-C}
{C 2003 Roy Larsen}
{rlarsen@xxxxxxxxxxxxxx}
D:=Input("Start Day / Month /",101,3112,1507);
Y:=Input( "Year",1990,2003,1995);
X1:=Input("End Day / Month /",101,3112,103);
X3:=Input("Year",1990,2010,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) AND (F-M)>=Cum(1);
{**} B:=LastValue(Max(1,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:=Max(0.001,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);
Yahoo! Groups Links
------------------------ Yahoo! Groups Sponsor --------------------~-->
In low income neighborhoods, 84% do not own computers.
At Network for Good, help bridge the Digital Divide!
http://us.click.yahoo.com/EpW3eD/3MnJAA/cosFAA/BefplB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/equismetastock/
<*> To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|