To: bdog who wrote (9080 ) 3/21/1999 9:01:00 AM From: TechTrader42 Respond to of 11149
Here's a slightly shorter version. If anyone wants to make it even shorter, please do. Also, if anyone wants to add previous values of the indicator, and the highest high value for certain periods, again be my guest. Oh, one more thing: Don't use the scan's "formula1" on your hair. //AIQ Volatility Indicator, //translated by Brooke //from Jan Robert Wolensky's Metastock version //with Square Root and Log formulas by Jeff Grover, Bob Jagow //100*(Sqrt(12.5* //(Sum((Log(C/Ref(C,-1))*Log(C/Ref(C,-1))),21)- //((Sum(Log(C/Ref(C,-1)),21)*Sum(Log(C/Ref(C,-1)),21)))/21))) //AIQ Volatility Indicator, translated for QP2 by Brooke input="volvol.lst"; output="volatility.lst"; daystoload=500; float x,xx,n,n3,n5,n7,n9,n11,n13,n15,lnx,sumlnx,sumlnxlnx, sumlnxsumlnx,formula1,in,out,fx,xxx,period; integer i,j; period:=21; sumlnx:=0; sumlnxlnx:=0; for i=-(period-1) to 0 step 1 do //Jeff Grover's log formula x:=close(i)/close(i-1); if x >= 100000 then xx := x /100000; else if x >= 10000 then xx := x / 10000; else if x >= 1000 then xx := x / 1000; else if x >= 100 then xx := x / 100; else if x >= 10 then xx := x / 10; else xx := x; endif; endif; endif; endif; endif; n :=(xx-1)/(xx+1); n3 :=n*n*n; n5 :=n3*n*n; n7 :=n5*n*n; n9 :=n7*n*n; n11 :=n9*n*n; n13 :=n11*n*n; n15 :=n13*n*n; lnx := 2*(n+n3/3+n5/5+n7/7+n9/9+n11/11+n13/13+n15/15); //Log(C/Ref(C,-1)) if x >= 100000 then lnx := lnx + 11.51293; else if x >= 10000 then lnx := lnx + 9.21034; else if x >= 1000 then lnx := lnx + 6.90776; else if x >= 100 then lnx := lnx + 4.60517; else if x >= 10 then lnx := lnx + 2.30258; endif; endif; endif; endif; endif; sumlnx:= sumlnx+lnx; sumlnxlnx:=sumlnxlnx+(lnx*lnx); next i; sumlnxsumlnx:=sumlnx*sumlnx; formula1:=12.5*(sumlnxlnx-(sumlnxsumlnx/period)); //Square root formula by Jeff Grover, Bob Jagow in := formula1; xxx := 1.0; fx := 1.0; for j = 0 to 9 step 1 do xxx := xxx - fx/(2*xxx); fx := xxx*xxx - in; next j; out := xxx; println symbol:-5, ", ", "AIQ Volatility Indicator: ", " ", 100*out:6:2;