I grab a stocks historic info and look for all the 8 day max 20% jumps within the past six months (calm,big, lrn, visn, iphs, sol). So now do I take the EOD volume on the first day of each jump and average them out to get the DU volume? I have read a ton but the equations are always in chartscripts and the links are all to 404's now. There is so much info on Jack Hershey's methods it is a bit overwhelming Thanks! /j
Ok so I figured out that the wealth labs 4.0 addresses were switched to a new subdomain (wl4). So I can now test out the chart scripts. Here is the one I am going to use as my starting point. http://wl4.wealth-lab.com/cgi-bin/WealthLab.DLL/editsystem?id=47311 I have been looking through the code and see some differences in what my interpretation of Jack Hershey's methods were. Hopefully someone can shed some light on my questions. Here is some documentation for the chart script functions. http://personal.fidelity.com/products/atp/content/wsFuncRef_US.pdf Code: {Calculate Cycles} mo1:=BARCOUNT() -1 ; mo2:=BARCOUNT() -21 ; mo3:=BARCOUNT() -41 ; mo4:=BARCOUNT() -61 ; mo5:=BARCOUNT() -81 ; In the above code Spydertrader is setting starting points for the past 5 months. Why can't we just loop through the past 6 months, locating the low points and finding peaks that are 20% or more change? Is there a limitation in wealth labs or was that to make sure we can see an actual cycle is present for the stock. Code: RETRACE := 1; F:=40;COUNT:=0;LASTLOWBAR :=1000000; FOR BAR:= BARCOUNT() -1 DOWNTO BARCOUNT()-127 do BEGIN IF LASTLOWBAR < BAR THEN BAR:= LASTLOWBAR ; X:= PEAKBAR(BAR, #HIGH, RETRACE) ; N:= PEAK(BAR, #HIGH, RETRACE) - LOWEST(X-1, #LOW, 5) ; IF N/LOWEST(X-1, #LOW, 5) >= 0.20 THEN CYCLELENGTH:= 5 ELSE BEGIN X:= PEAKBAR(BAR, #HIGH, RETRACE) ; N:= PEAK(BAR, #HIGH, RETRACE) - LOWEST(X-1, #LOW, 6) ; IF N/LOWEST(X-1, #LOW, 6) >= 0.20 THEN CYCLELENGTH:= 6 ELSE BEGIN X:= PEAKBAR(BAR, #HIGH, RETRACE) ; N:= PEAK(BAR, #HIGH, RETRACE) - LOWEST(X-1, #LOW, 7) ; IF N/LOWEST(X-1, #LOW, 7) >= 0.20 THEN CYCLELENGTH:= 7; END; END; The script seems to only allow cycle lengths to be 5-7 days long (I think it is adding one below to make the effective range 6-8 days)? Why can't they be less than 5, or am I missing something? Code: IF N/LOWEST(X-1, #LOW, CYCLELENGTH) >= 0.20 THEN BEGIN DAYS:= PEAKBAR(BAR, #HIGH, RETRACE) - LOWESTBAR(X-1, #LOW, CYCLELENGTH)+1 ; IF PRICECLOSE(PEAKBAR(BAR, #HIGH, RETRACE) ) < PRICECLOSE(PEAKBAR(BAR, #HIGH, RETRACE)-1 ) THEN PV:= VOLUME(PEAKBAR(BAR, #HIGH, RETRACE)-1 ) ELSE PV:= VOLUME(PEAKBAR(BAR, #HIGH, RETRACE) ) ; He now starts looping the data and finding the high, lows, cycle days, and peak volume for each month (loop con't) Code: F:=F+10; LASTLOWBAR:=LOWESTBAR(X-1, #LOW, CYCLELENGTH)-1 ; COUNT:= COUNT+1; IF COUNT=1 THEN BEGIN GAIN1:=N/LOWEST(X-1, #LOW, CYCLELENGTH) ;DAYS1:=DAYS;DU1:=LOWEST(mo1, #VOLUME, 20); END; Why is the Dry Up volume the Low for the whole period (month) and not the volume right before the next cycle starts? (loop con't) Code: IF COUNT=2 THEN BEGIN GAIN2:=N/LOWEST(X-1, #LOW, CYCLELENGTH) ;DAYS2:=DAYS;DU2:=LOWEST(mo2, #VOLUME, 20); END; IF COUNT=3 THEN BEGIN GAIN3:=N/LOWEST(X-1, #LOW, CYCLELENGTH) ;DAYS3:=DAYS;DU3:=LOWEST(mo3, #VOLUME, 20); END; IF COUNT=4 THEN BEGIN GAIN4:=N/LOWEST(X-1, #LOW, CYCLELENGTH) ;DAYS4:=DAYS;DU4:=LOWEST(mo4, #VOLUME, 20); END; IF COUNT=5 THEN BEGIN GAIN5:=N/LOWEST(X-1, #LOW, CYCLELENGTH) ;DAYS5:=DAYS;DU5:=LOWEST(mo5, #VOLUME, 20); AVERAGEGAIN:= (GAIN1+GAIN2+GAIN3+GAIN4+GAIN5)/5 ; END; The code goes on but that is all I have questions for (for now). Any help, pointers would be greatly appreciated. I am going to keep reading and will post back here if I am able to answer my own questions.