Jeff: Here's a Dahl scan (Dahl crossing 0) -- my contribution to the cause. It ain't much, but you've inspired me to translate some of my WOW scans. Your scans are absolutely amazing, and Korbel Brut it is (or Dom Perignon, if you prefer).
My Dahl(50) scan runs well in QP and appears to be accurate -- I compared hits with Dahl plots in WOW. It's long, and based on the assumption that QP doesn't yet allow us to nest moving averages. That would be required for a shorter translation of this WOW formula, I think: mov((mov(c,days,simp) - ref(mov(c,days,simp),-15)),21,s).
Here's the QP Dahl scan (I don't have any breaks in my long lines, but SI tends to insert them. You might want to remove them in the list of things after float, after aaa, and after bbb. After aaa and bbb, everything should come directly after the equal sign. SI is moving things down a line, and I can't seem to prevent that):
//Dahl crossing 0 by Brooke Elise Nagler
output="dahl.lst"; //input="ibd.lst";
float a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, bb, cc, dd, ee, ff, gg, hh, ii, jj, kk, ll, mm, nn, oo, pp, qq, rr, aaa, bbb, dahl, prevdahl;
a := movavg(0,50,cl) ; b := movavg(-15,50,cl) ; c := movavg(-1,50,cl) ; d := movavg(-16,50,cl) ; e := movavg(-2,50,cl) ; f := movavg(-17,50,cl); g := movavg(-3,50,cl); h := movavg(-18,50,cl); i := movavg(-4,50,cl); j := movavg(-19,50,cl); k := movavg(-5,50,cl); l := movavg(-20,50,cl); m := movavg(-6,50,cl); n := movavg(-21,50,cl); o := movavg(-7,50,cl); p := movavg(-22,50,cl); q := movavg(-8,50,cl); r := movavg(-23,50,cl); s := movavg(-9,50,cl); t := movavg(-24,50,cl); u := movavg(-10,50,cl); v := movavg(-25,50,cl); w := movavg(-11,50,cl); x := movavg(-26,50,cl); y := movavg(-12,50,cl); z := movavg(-27,50,cl); aa := movavg(-13,50,cl); bb := movavg(-28,50,cl); cc := movavg(-14,50,cl); dd := movavg(-29,50,cl); ee := movavg(-15,50,cl); ff := movavg(-30,50,cl); gg := movavg(-16,50,cl); hh := movavg(-31,50,cl); ii := movavg(-17,50,cl); jj := movavg(-32,50,cl); kk := movavg(-18,50,cl); ll := movavg(-33,50,cl); mm := movavg(-19,50,cl); nn := movavg(-34,50,cl); oo := movavg(-20,50,cl); pp := movavg(-35,50,cl); qq := movavg(-21,50,cl); rr := movavg(-36,50,cl);
aaa := (a-b)+(c-d)+(e-f)+(g-h)+(i-j)+(k-l)+(m-n)+(o-p)+(q-r)+(s-t)+(u-v)+(w-x)+(y-z)+(aa-bb)+(cc-dd)+(ee-ff)+(gg-hh)+(ii-jj)+(kk-ll)+(mm-nn)+(oo-pp); bbb := (c-d)+(e-f)+(g-h)+(i-j)+(k-l)+(m-n)+(o-p)+(q-r)+(s-t)+(u-v)+(w-x)+(y-z)+(aa-bb)+(cc-dd)+(ee-ff)+(gg-hh)+(ii-jj)+(kk-ll)+(mm-nn)+(oo-pp)+(qq-rr); dahl := (aaa/21); prevdahl := (bbb/21);
if dahl>0 and prevdahl<0 then println Symbol , "," , " dahl:", dahl , "," ," Close:", Close(0) , "," , " Vol:", vol(0) , " , " , " PE:", PE , " , " , " QRS:", QRS(0) , "," , " Sharesfloat:", Sharesfloat , "," , description; endif; //println symbol,", ",description,", ",close(0),"," dahl; //endif; |