[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Hurst Channels



PureBytes Links

Trading Reference Links

Don't worry Fred, straight talk is good for us all :-)

I'll think about that 2/3 factor tomorrow - it's late here and my brain 
is aching.

I ordered the Cleeton book a while back but it still hasn't arrived. I 
think it'll make for a nice relaxing Xmas read! I've got the book by 
Hurst (Profit Magic), but I froze when I got to Appendix 6 and so I 
think I need Cleeton as you suggest! The Hurst course is on the list as 
well, but first I think I'll have to get some old Maths texts out of the 
attic and get the grey matter working again in that respect. My maths is 
sadly lacking also and I feel it's really not adequate to take me any 
further than I've got without some hard graft. Oh well, needs must I 
suppose.

As far as channels go, I had a look at your Hurst DE quickly today. I 
played with Hurst-like channel trading myself a while back (when I was 
still a naive Metastock user - yeah, I know, but it was OK for at least 
that). I found that my skills were below that needed to tackle the 
extrapolation problem and so it was simply a matter of using discretion 
and 'eyeballing' a la Hurst.

That was when I found Millard's book and latched on to his Cycle 
Highlighter. To me it was (and still is) a simple and effective way of 
determining the cycles if you have a bias towards discretionary trading 
as I currently do. And by nature it is a normalised plot, so it seemed 
logical to me to go about extrapolating on that plane before I tried to 
tackle the price plot. However, I am now convinced (thanks in no small 
part to yourself) that it is worth pursuing further with the ultimate 
aim of automating the whole cycle-extraction process.

So here's to the next step of the journey...hard graft and all.


Fred wrote:
>
> Thanks for the description ... It wasn't a sarcastic comment per
> se ... It is imho a benefit to be able to hear from authors of code
> what the process is that is going on as opposed to someone
> unfamiliar with the code having to dig it out ...
>
> I agree with your comments in 1 & 2 ... I had initially implemented
> Millard's CMA in the Hurst DE I posted in the library this way ...
>
> Lag = int(Period / 2);
> CMA = Ref(MA(MA(Data, Lag), Lag), Lag);
>
> It would seem though after reading Millard more carefully that a
> better implementation is something like
>
> CMAL1 = Int(Period * 2 / 3);
> if (CMAL1 < 5)
> CMAL1 = 5;
> If (CMAL1 % 2 == 0)
> CMAL1 = CMAL1 + 1;
> CMAL2 = Period - CMAL1;
> If (CMAL2 % 2 == 0)
> CMAL2 = CMAL2 + 1;
> Lag = (CMAL1 - 1) / 2 + (CMAL2 - 1) / 2;
>
> CMA = Ref(MA(MA(Data, CMAL1), CMAL2), Lag)
>
> The only potential problem I see with this approach is it makes the
> minimum overall CMA Length 8.
>
> For the current AFL I implemented a simple CMA ... no muss /
> fuss ... The reason is that the CMA would be sampled and potentially
> smoothed again ...
>
> I don't know whether or not you have Hurst's PM but he covers ( very
> quickly ) the topic of pulling out the coeff's for multiple cycles
> simultaneously in what is to me any way some rather complex math in
> Appendix 6 ... But then I'm hardly a math Wiz ... If you are
> interested in this kind of thing I would strongly recommend
> Cleeton's book which while out of print is still readily available
> at Amazon and other places for a few bucks used. He discusses how
> to perform a similar operation for one cycle and for multiple cycles
> simultaneously with one of the early steps being sampling of the
> CMA ... He uses those points directly and as you can tell from my
> description I opted for this approach more or less as well which
> seems to produce some interesting results without requiring Gaussian
> Elimiation to solve multiple simultaneous equations.
>
> --- In amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%40yahoogroups.com>, 
> Andy Davidson <AndyDavidson@xxx>
> wrote:
> >
> > Hi Fred,
> >
> > It's good to be able to get back on this subject again, especially
> as it
> > looks like there's a few of us who are 'into' cycles.
> >
> > Your work-in progress looks very interesting I must say. I
> particularly
> > like the idea in step 5 to reduce the data before finding a
> > fit...brilliant in its simplicity. I also think your equation in
> step 6
> > will help me out...but without getting into that, here's the
> general
> > logic of my approach for comparison (and I take the sarcastic(?)
> comment
> > about explaining in English...I didn't do a good job of notating
> the
> > script properly!)
> >
> > 1. Calculate *two* CMAs using triangular-smoothed MAs. CMA1 is n-
> periods
> > length and CMA2 is n/2-periods. Both periods are rounded up to the
> > nearest odd number.
> > 2. CMA1 allows wavelengths > n-periods to pass and filters out <
> > n-period waves. CMA2 allows through all cycle wavelengths > n/2-
> periods
> > and filters out those < n/2. Therefore, subtracting CMA2 from CMA1
> will
> > give us the cycle (or combination of cycles if we're unlucky
> enough, or
> > have our value of n wrong) that lies between n/2 and n.
> >
> > Steps 1 and 2 are as per Millard's "Cycle Highlighter" (CH),
> except he
> > states that the best results are obtained with CMA1 being an SMA
> and
> > CMA2 being a Weighted MA. He also says CMA1 periods should be
> *equal* to
> > the wavelength to be isolated. This does work but, through
> > experimenting, I have found that Triangular-MAs are best for both
> as
> > they offer the superior smoothing-to-lag trade off. Furthermore,
> the
> > periodicity of CMA1 should be x1.5 the cycle you want (making CMA2
> > therefore x0.75). The logic still holds up and the results are
> better
> > IMO, with a more sine-like output.
> >
> > 3. Based on user-inputs (see below) I then generate an artificial
> sine
> > wave. This is *anchored to the CH at its most recent (i.e.
> confirmed)
> > peak or trough*.
> > 4. Correlation coefficients are calculated between (a) the sine
> wave and
> > the CH (or price - depending on user input) over the 'lookback'
> period
> > (see below) and (b) the sine wave and the price in the 'end zone'
> (i.e.
> > the no-data zone for the CH at the right-hand edge).
> >
> > Inputs:
> > "SINE WAVELENGTH" - this determines if the wavelength of the sine
> is (a)
> > "as per the base cycle (CH)" (i.e. there is no attempt to 'fit'
> the two
> > curves beyond the anchor point) or (b) a "best fit". In the second
> case,
> > the sine wavelength will depend on:
> > "BEST FIT # RECENT CYCLES" - this is the number of full, completed
> > cycles of the CH where the correlation is measured. The start
> point of
> > X-cycles back is shown by a blue and red tick on the indicator. If
> > option (b) is chosen above the average wavelength of the CH is
> measured
> > in the zone from the blue tick to the end of its plot. This value
> is
> > assigned to the sine plot. If option (a) above then we just get X-
> cycles
> > back of both plots at the same periodicity.
> >
> > All the above is as per the first indicator I posted. The
> following
> > loops are done in the auto-fit version:
> >
> > 5. A loop from "Wavelength Min" to "Wavelength Max" is performed
> to find
> > the highest total correlation coefficient (a weighted average of
> the
> > 'CH/sine' and the 'sine/end-zone price' values).
> > 6. The series of loops is repeated for "#Cycles Min" lookback up
> to 5
> > cycles lookback. I chose 5 as an arbitrary number...it's slow
> enough as
> > is and very rarely do you get a decent correlation going that far
> back.
> > Obviously though when you do, you take notice.
> >
> > That's as much as I can tell you right now about the logic. Does
> it
> > work? Well, with the usual caveats blah-blah-blah, I would say
> that it
> > has been a very useful tool for me for a while now *in conjunction
> with
> > other confirming and entry methods*
> >
> > Bear in mind that the purpose of the indicator is to find the
> *clearest*
> > cycle amongst those present, i.e. the one that conforms most
> closely to
> > a sine wave, and is therefore tradeable *on that time frame*. I
> will
> > manually switch between time-frames to get the various major
> cycles
> > (e.g. 1-hour, 4-hour, daily and weekly charts). Work on 'auto-ing'
> all
> > that would be very processor intensive and requires further
> thinking.
> >
> > The plot you sent seems to bear out a further truth about trading
> with
> > cycles, one that I've experienced with this indicator more than
> once:
> > i.e. short-term cycles (measured in hours and a few days) are less
> > tradeable than longer-term ones (measured in a few days upwards to
> weeks
> > & months). Certainly, in the plot you sent, most of the smoothed
> price
> > behaviour can be explained by the interaction of the two longest
> > measured cycles (dark blue and cyan).
> >
> > Anyway, I look forward to ploughing through all the good stuff
> you've
> > already posted and hope you can help keep this thread going.
> There's
> > lots of really cool stuff going on here.
> >
> > Cheers for now,
> > Andy
> >
> >
> > Fred Tonetti wrote:
> > >
> > > Andy,
> > >
> > >
> > >
> > > Can you describe in English what your AFL does ? ...
> > >
> > >
> > >
> > > I've been playing with a Trig Fit a la Claud Cleeton the steps
> for
> > > which I would describe as follows ...
> > >
> > >
> > >
> > > 1. Optional - Normalize the input i.e. Data = log10((H + L) / 2)
> > >
> > > 2. Calc an arbitrary length ( Parameterized but 11 at the
> moment )
> > > centered moving average ( CMA ) of the data
> > >
> > > 3. Calc a 1st order least squares fit ( LSF ) of the CMA over
> the
> > > period desired ( from / to range marker )
> > >
> > > 4. Subtract the LSF points from the data points resulting in
> detrended
> > > data.
> > >
> > > 5. Take an n-bar sampling of the detrended data. This array
> with
> > > "holes" or "gaps" in it needs either to be compressed or have
> the
> > > "gaps" filled ... I elected ( for the moment ) to calc a cubic
> spline
> > > to fill the gaps ( interpolation ) ...
> > >
> > > 6. Calc a LSF of the detrended data resulting in the coeffs for
> the
> > > Trig equation Y = A Cos wX + B * Sin wX
> > >
> > > 7. Calc the correlation of the resulting sin wave to the
> original
> > > detrended data.
> > >
> > >
> > >
> > > Repeat steps 5 & 6 varying n from 1 to ? looking for n where the
> > > correlation is the highest. This should yield the equation or
> data
> > > points that most closely correlate to the detrended data.
> > >
> > >
> > >
> > > 8. Subtract the points in the sin wave from the detrended data
> > > resulting in a modified detrended data.
> > >
> > >
> > >
> > > Repeat steps 5 - 8 looking for the next most significant cycle.
> This
> > > can be done repeatedly until overall correlation stops getting
> better
> > > and usually results in 2 - 6 cycles ...
> > >
> > >
> > >
> > > See attached ...
> > >
> > >
> > >
> > > The white line in the upper graph is detrended price ...
> > >
> > > The alternating green / red line is the trig fit, in sample up
> to the
> > > vertical line and out of sample projection afterwards ...
> > >
> > > The lines in the bottom section are the individual cycles found
> in the
> > > data.
> > >
> > >
> > >
> > > Sometimes the projections are almost clairvoyant ... run time
> however
> > > is anything but quick ...
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > ----------------------------------------------------------
> -------
> > > I am using the free version of SPAMfighter for private users.
> > > It has removed 8649 spam emails to date.
> > > Paying users do not have this message in their emails.
> > > Try SPAMfighter <http://www.spamfighter.com/go.asp?t=249 
> <http://www.spamfighter.com/go.asp?t=249>> for
> free now!
> > >
> >
>
>  

Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.13.27/517 - Release Date: 11/3/2006