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

[amibroker] Re: Hurst Channels



PureBytes Links

Trading Reference Links

Andy,

In looking at your spreadsheet I understand what's there except 
for ...

I'm not sure why a Millards smoothed should have more lag then a 
standard CMA ...

Although I thought an even number would be required i.e. 34 or 38 
instead of 35 ...

Millard would have calc'ed a 23 bar CMA and then a  11 bar of 
that ... or 25 and 13 if you prefer ? the lag would have been 11 + 5 
= 16, or 12 + 6 = 18 respectively ... where'd you get a lag of 25 for 
35 bars ?

In any case what all these seem ? to be missing imho is ...

1.	I don't think the dominant cycle is enough to do the job in 
terms of extrapolation and/or prediction by itself except in a very 
general way ...
2.	What at least semi automated ( no touchy feely allowed ) 
method are you gonna use to determine the CMA length to be used and 
then 
3.	How to process that info ...

The AFL I have for Trig Fit, the output of which I posted on AB takes 
care of all 3 of the above with no hands ... run time is of course a 
different issue


--- In amibroker@xxxxxxxxxxxxxxx, Andy Davidson <AndyDavidson@xxx> 
wrote:
>
> Fred,
> 
> Long post I'm afraid, but bear with me...
> 
> Since our last conversation I've been doing some head-scratching on 
> which method of CMA is best for extracting cycles. After re-reading 
> Millard and then trying to theorise my way in ever-decreasing 
circles 
> about what *should* be the best way, I decided to try to experiment 
and 
> find out what works best *in practice*. I've attached the results 
in the 
> form of plots and a summary spreadsheet for your (or anyone else's) 
> interest. Here's the logic behind the method (AFL code posted below 
for 
> sake of completeness) :
> 
> 1. I created two independant sine waves and a 'noise' component. 
These 
> individual components are plotted in the top pane.
> 2. I then added these together to create a composite 'price-like' 
plot - 
> plotted in grey in the bottom pane.
> 3. Four different kinds of Centred-MA (see below) were then plotted 
on 
> the bottom pane, with the composite as an input. The aim was to 
select a 
> periodicity for each CMA that would filter out the noise and the 
shorter 
> wavelength cycle (cycle 2), leaving the closest possible 
representation 
> of the longer cycle 1.
> 4. The lag, wavelength and amplitude of this CMA plot were then 
> *measured* (i.e. they weren't deduced theoretically, but were 
actual 
> observed values).
> 5. The values were compared on the spreadsheet.
> 
> The four different CMAs were based on:
> (a) Simple MA. The most basic centred SMA
> (b) Millard's "Smoothed Average" from Chapter 7...i.e. an MA of 
> n-periods which has been smoothed again by an MA of n/2 periods.
> (c) Triangular MA. This is an n/2 MA of an n/2 MA
> (d) Custom MA. This is per your last email with the first MA being 
> n*0.75 and the second being half that.
> 
> The Triangular MA has the same lag characteristics as a Simple MA. 
> However, in order to get the same *filtering* effect (i,e, to take 
out 
> cycle 2 completely) you have to near-enough double the periodity, 
which 
> then obviously takes the lag up. Experimenting seems to suggest 
that you 
> don't actually have to double it, which I guess is why I settled on 
a 
> multiplying factor of 1.5 for my Cycle Highlighter indicator. I 
think I 
> originally settled on 1.5 after mis-reading Millard's section on 
the 
> "Weighted MA" and have therefore been using something which was 
> nearly-correct but for the wrong reasons! Oh well, at least I have 
a 
> better idea now. However, the results of this seem to suggest that 
1.75 
> would be a better number, so I've changed my indicator accordingly. 
I'm 
> sure there's good theory behind why this should be so, but I can't 
think 
> it through. Can you?
> 
> So anyway, all that testing seems to show is that Millard's 
Smoothed 
> Average is the best for this purpose. My triangular MA seems to 
have 
> been suffering too much lag than necessary, for an output which 
also 
> suffers more damping. There seems to be nothing to choose between 
your 
> "Custom" CMA and the "Smoothed Average". This is obviously because 
they 
> are basically the same thing. Both are MAs smoothed by another MA 
half 
> the first's length. The fact that the "Smoothed Average" starts off 
with 
> and n-period MA and the "Custom" one starts with n-periods*0.75, 
just 
> means that the latter has to have "n" ramped up to provide the same 
> filtering/smoothing effect.
> 
> OK, so far so good. I've decided to ditch the Tri-CMA in favour of 
the 
> "Smoothed CMA". But here's another question. Millard states 
("Weighted 
> Average" section) that for those of us with computers(!!) it is 
> preferable to chose a centrally-weighted MA. Anyone know how to do 
that 
> without slowing things down even more? Is that the same as the 
geometric 
> mean?? My maths really is too rusty. The standard WMA function is 
no 
> good as it applies the maximum weighting to the *most recent* bar. 
We 
> would need, for example, in a 7-bar MA to have a weighting sequence 
of 
> 1-2-3-4-3-2-1
> 
> That'll do for now. Tomorrow's job is to add a third, longer, cycle 
and 
> see how extracting the middle cycle goes.
> 
> Cheers,
> Andy
> 
> 
> Fred wrote:
> >
> > You won't need the math texts to get though Hurst's course
> > material ... What you will need is time and patience ...
> >
> > The 2 / 3 factor is in essence I thought what you were advocating
> > i.e. the first cycle length being twice the second ...and the lag
> > being the combo of 1 less then half of both ... Millard suggests 
such
> > a methodology in chapter 7.
> >
> > The Hurst "Like" DE AFL I posted in the library was an interesting
> > project ... It seems however that the points could be better 
picked
> > then by using CMA's ... But that's another exercise ...
> >
> > --- In amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%
40yahoogroups.com>, 
> > Andy Davidson <AndyDavidson@>
> > wrote:
> > >
> > > 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> <mailto:amibroker%
> > 40yahoogroups.com>,
> > > > Andy Davidson <AndyDavidson@>
> > > > 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>
> > > > <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