SI
SI
discoversearch

We've detected that you're using an ad content blocking browser plug-in or feature. Ads provide a critical source of revenue to the continued operation of Silicon Investor.  We ask that you disable ad blocking while on Silicon Investor in the best interests of our community.  If you are not using an ad blocker but are still receiving this message, make sure your browser's tracking protection is set to the 'standard' level.
Strategies & Market Trends : TA-Quotes Plus -- Ignore unavailable to you. Want to Upgrade?


To: John Schott who wrote (9092)3/25/1999 10:37:00 AM
From: TechTrader42  Read Replies (1) | Respond to of 11149
 
There still remains the sticky problem of finding the highest high
value of the AIQ volatility indicator. I can do it for just a few
days, but the scan becomes too slow (and far too tangled) if I
increase the number of days. Each value in the loop has to be compared
to the previous value, and to the values before that, to get a maximum
high. I hope someone else can come up with a solution. I've tried a
lot of approaches, and learned some interesting things about loops in
the process. In fact, the whole endeavor has driven me loopy.

Here's the scan again, without any highest values:

//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)))
//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,formula2;
integer i,j,k;
period:=21;

for k= 0 to 10 do
sumlnx:=0;
sumlnxlnx:=0;

for i=-(period-1) to 0 step 1 do
//Jeff Grover's log formula
//for k= 0 to 1 do
x:=close(i-k)/close((i-1)-k);
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);
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;
//next k;
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, " ", date(-k), " ", "AIQ Volatility Indicator: ", " ", 100*out:6:2;
next k;



To: John Schott who wrote (9092)3/25/1999 10:54:00 AM
From: Richard Estes  Read Replies (2) | Respond to of 11149
 
I have suggested that all send your best scans to Gary giving him permission to use it in his program. The next version or so would have the best of the best. Wouldn't it be nice to have say 40-50 scans ready when the newbie puts in the CD?

Now next step give us column heading on output.



To: John Schott who wrote (9092)3/31/1999 6:49:00 PM
From: Jonathan Sibley  Read Replies (1) | Respond to of 11149
 
Are there any QP2 users who follow Larry Connors screens, such as historical volatility? Rather than reinventing the wheel, I'd like to share experiences in translating these to QP2. Thanks.