Hurst's work that is comprised of the course material stands 
alone ... but the math in the appendicies of his book ( PM ) 
doesn't ... Cleeton's book covers some of what Hurst covers quickly 
in more depth but still falls a little short for this Trig Challenged 
Individual ...  I suspect what it needs is the same Gaussian 
Elimination routine that I posted with PolyFit but I'm hard pressed 
to come up with the equations to fill the cells in the matrix to 
solve for the coefficients and/or the angualr frequencies.

--- In [email protected], "Rakesh Sahgal" <[EMAIL PROTECTED]> 
wrote:
>
> Is the book by Brian Millard , which is supposed to be based on 
Hurst's
> work,  any help in  understanding Hurst's work  - a sort of  Hurst 
for
> dummies kind of thing?
> 
> Rakesh
> 
> On 10/7/06, Fred <[EMAIL PROTECTED]> wrote:
> >
> > There are other books that would no doubt provide some clues but I
> > don't think Hurst provides any additional clues in his book to 
what's
> > in the appendecies which are I think back up information /
> > methodologies for the book.
> >
> > --- In [email protected], "Steve Dugas" <sjdugas@> wrote:
> > >
> > > Hi Fred - Well, I just opened the book for the first time to 
look
> > at App 6
> > > and I'm afraid  its over my head. Maybe I will have a better 
grasp
> > after
> > > reading the book, but unfortunately I am not an engineer or
> > anything, and my
> > > first thought is that if it is giving *you* some trouble, then 
*my*
> > chances
> > > are probably slim to none.   8 - )   But anyway, I will do some
> > reading over
> > > the weekend, and see if I can learn anything...
> > >
> > > BTW, I noticed that our two threads seemed to be related. It 
would
> > seem that
> > > I am starting down a road that you have some experience in so I
> > would value
> > > your opinion. As far as timing is concerned, do you think that
> > cycles, ala
> > > Ehlers, Hurst, etc is the preferred way to go? In the future, 
after
> > I have
> > > come up to speed, perhaps we could bounce some ideas around, 
etc...
> > >
> > > Steve
> > >
> > > ----- Original Message -----
> > > From: "Fred" <ftonetti@>
> > > To: <[email protected]>
> > > Sent: Friday, October 06, 2006 2:26 PM
> > > Subject: [amibroker] Re: Ehlers Dominant Cycle
> > >
> > >
> > > > Steve,
> > > >
> > > > Are your math skills strong enough to implement what's in
> > Appendix 6
> > > > of Hurst's book ?
> > > >
> > > > --- In [email protected], "Steve Dugas" <sjdugas@> 
wrote:
> > > >>
> > > >> OK, thanks Andy!  I will do something else for a few days and
> > wait
> > > > for Cybernetics to arrive ( I also got the MESA book, but had 
to
> > > > wait while they backordered both. )  I have had Hurst's book 
on my
> > > > shelf for a couple of months now, waiting patiently for a 
little
> > > > attention - I will look that over in the meantime. Thanks very
> > much
> > > > and good luck with your move - maybe we can pick this up 
again a
> > > > little way down the road...
> > > >>
> > > >> Steve
> > > >>
> > > >> ----- Original Message -----
> > > >>   From: Andy Davidson
> > > >>   To: [email protected]
> > > >>   Sent: Friday, October 06, 2006 4:27 AM
> > > >>   Subject: Re: [amibroker] Ehlers Dominant Cycle
> > > >>
> > > >>
> > > >>   Steve,
> > > >>
> > > >>   I think Ehler believes that the Cyber Cycle method is
> > better...I
> > > > remember that being my impression when I read the books. 
Certainly
> > > > both approaches use the Hilbert Transform but I think the
> > difference
> > > > lies in the method of extracting the Quadrature and In-Phase
> > > > components. Difficult to say exactly without the book to hand 
to
> > > > double check what I'm saying!
> > > >>
> > > >>   As for the differences between approaches, try playing 
around
> > > > with the alpha parameter (which determines the smoothing and
> > > > therefore low-end cut-off level for the measured cycles). You 
will
> > > > probably see some very large shifts in the period for even a 
0.01
> > > > change in alpha. This tells me something.
> > > >>
> > > >>   I do use Ehler's cycle measurements in some of my 
indicators as
> > > > an adaptive input to the period function. He talks about this
> > > > approach in the Cybernetic book. The reason I do this is 
because
> > my
> > > > feeling is that something which at least attempts to measure a
> > cycle
> > > > period is probably better than than some arbitrary optimised
> > number.
> > > > I say 'probably' as I can't prove this to be the case - it's 
just
> > a
> > > > matter of what makes more logical sense to me.
> > > >>
> > > >>   To my mind though there's one pretty big hole in Ehler's
> > > > approach. Basically he states that although there are multiple
> > > > cycles at play in the market at any one time there is only one
> > that
> > > > is "dominant" and thus tradeable. So you are only taking into
> > > > account and trying to measure one specific cycle at any one 
time.
> > > > One way he achieves this is through limiting the parameters to
> > > > specific wavelength ranges. Therefore you might be assuming 
that
> > you
> > > > are (a) going to ignore cycles less than 6-bars in period as 
noise
> > > > and (b) going to ignore cycles of more than, say, 60 bars as 
too
> > > > long to trade (or too prone to margins of error) and then
> > measuring
> > > > *the* cycle in that range. Well what if there is a 20-bar and 
a
> > 45-
> > > > bar cycle at play at the same time and the noise sometimes
> > exceeds 6-
> > > > bars? My experience is that Ehler's method is not good at 
coping
> > > > with this. I'm no engineer and so my theorising might be 
flawed,
> > but
> > > > my experience of engineering tells me that you get to work 
with
> > much
> > > > bigger margins of error than we can tolerate as traders. For
> > > > example, you might be able to use Hilbert Transforms in 
electronic
> > > > engineering to extract a person's voice from a 'noisy'
> > > > waveform...but I would say that there is still too much noise 
in
> > the
> > > > output signal to transfer the analogy to the trading world. 
We can
> > > > make sense of the extracted voice but this is because our 
human
> > > > brains are good at that sort of thing, not because the 
modified
> > > > signal is particularly clear in a real sense. Our trading 
capital
> > is
> > > > not so good at dealing with the remnant noise!!
> > > >>
> > > >>   As far as measuring cycles goes, I have had much more 
success
> > > > and have much more confidence in the approach outlined by 
Hurst in
> > > > his "Profit Magic of Stock Transaction Timing". An old book 
which
> > > > uses centred MAs and assumes there are many cycles to be
> > > > measured...centred MAs are much more low-tech than Hilbert
> > > > Transforms I know, but there's beauty in the simplicity if 
you can
> > > > get away from the idea that your indicators must tell you
> > > > the "answer" right up to the right edge of the chart. Of 
course,
> > the
> > > > fact that centred MAs *don't* go the right-edge makes 
backtesting
> > > > very difficult. Well, there's flaws with everything of 
course...
> > > >>
> > > >>   Anyway, let me know how you get on and I'll help more if I 
can.
> > > > I'm in the process of moving house at the moment so can't do 
much
> > > > more until I get set-up again. Good luck.
> > > >>
> > > >>   Andy
> > > >>
> > > >>
> > > >>   Steve Dugas wrote:
> > > >>     Hi Andy,
> > > >>
> > > >>     In Rocket Science, Ehlers shows 3 methods to compute the
> > cycle
> > > > period. Then he tests them against each other and determines 
that
> > > > the Homodyne Discriminator method had the the best 
characteristics
> > > > of the 3, so he uses that code as a basis for the indicators 
that
> > > > follow. The 3 yeilded fairly similar results, so when my graph
> > > > looked wrong, I figured the code from the library should give 
me a
> > > > rough idea of what mine should look like even though it is 
created
> > > > through a different technique. I still think there is 
something
> > > > wrong with mine, it should look much more like the other one.
> > Maybe
> > > > I will be able to just substitute your code for mine and build
> > from
> > > > there. Is the one in Cybernetics supposed to be better? I 
ordered
> > > > that book too, but it got delayed and I just found out that it
> > > > shipped today. Thanks for the code!
> > > >>
> > > >>     Steve
> > > >>       ----- Original Message -----
> > > >>       From: Andy Davidson
> > > >>       To: [email protected]
> > > >>       Sent: Thursday, October 05, 2006 1:46 PM
> > > >>       Subject: Re: [amibroker] Ehlers Dominant Cycle
> > > >>
> > > >>
> > > >>       Steve,
> > > >>       I think you're getting confused between Ehler's two 
books.
> > > > As far as I recall (books not to hand right now) he makes the
> > > > confusion easy as there is a "Dominant Cycle" indicator in
> > > > both 'Rocket Science' and 'Cybernetic', which are based on
> > different
> > > > methods. Looks to me like the top one on your plot is the 
former
> > and
> > > > the bottom is the latter. I personally have used the 
latter...the
> > > > code is copied below, which is probably nearly identical to 
the
> > > > posted AFL library version as I used that as a starting point
> > when I
> > > > worked through it myself.
> > > >>       Can't help you with the 'Rocket Science' version I'm
> > afraid.
> > > >>       Andy
> > > >>
> > > >>
> > > >>       // Ehler's Dominant Cycle Period
> > > >>       // Cybernetic Analysis for Stocks and Futures
> > > >>       // Chapter 9, p. 107. Code on p. 111.
> > > >>
> > > >>       //Global Parameters
> > > >>       X = Param("MP[1] Close[2]",1,1,2,1);
> > > >>       Z1 = IIf(X==1, (H+L)/2 , C);
> > > >>       Z2 = Param("Alpha", .07, .01, 1, .01);
> > > >>
> > > >>       function CyclePeriod(price, alpha)
> > > >>       {
> > > >>        instperiod = deltaphase = cycle = period = 0;
> > > >>        Cycle = ( price[2] - 2*price[1] + price
> > > > [0] )/4;   //initialise arrays
> > > >>        smooth = ( price + 2*Ref(price,-1) + 2*Ref(price,-2) 
+ Ref
> > > > (price,-3) )/6;
> > > >>
> > > >>        for (i=6 ; i<BarCount ; i++)
> > > >>         {
> > > >>          Cycle[i] = (1-alpha/2)^2 * ( smooth[i] - 2*smooth[i-
1] +
> > > > smooth[i-2] ) +
> > > >>                     2*(1-alpha)*Cycle[i-1] - (1-alpha)
^2*Cycle[i-
> > > > 2];
> > > >>
> > > >>          Q1[i] = (.0962*cycle[i] + .5769*cycle[i-2] -
.5769*cycle
> > [i-
> > > > 4] - .0962*cycle[i-6])*(.5 + .08*InstPeriod[i-1]);
> > > >>          I1[i] = cycle[i-3];
> > > >>
> > > >>          if(Q1[i] != 0 AND Q1[i-1] != 0)
> > > >>          DeltaPhase[i] = (I1[i]/Q1[i] - I1[i-1]/Q1[i-1])/(1 
+ I1
> > [i]
> > > > *I1[i-1]/(Q1[i]*Q1[i-1]));
> > > >>          //limit Delta Phase High/Low (0.09rads = 69bars, 
1.1rads
> > > > = 6bars...per page 117)
> > > >>          if(DeltaPhase[i] < 0.09)
> > > >>           DeltaPhase[i] = 0.09;
> > > >>          if(DeltaPhase[i] > 1.1)
> > > >>           DeltaPhase[i] = 1.1;
> > > >>
> > > >>          //---Begin median calculation (placed inline for 
speed).
> > > >>          //Hardcoded as length=5 as higher values would be 
out of
> > > > range due to start-up period in main loop
> > > >>          for(k=4; k>=0; k--)
> > > >>           { temparray[k] = DeltaPhase[i-k]; } //create new 
array
> > > > with last 5 values of DeltaPhase
> > > >>          temp = 0;
> > > >>          for(k=4; k>0; k--)  //this series of loops re-
organises
> > > > temparray into ascending order
> > > >>          { for (j=4; j>0; j--)
> > > >>            { if (temparray[j-1] > temparray[j]) //swap 
values in
> > > > array if previous value is greater
> > > >>              { temp = temparray[j-1];
> > > >>                temparray[j-1] = temparray[j];
> > > >>                temparray[j] = temp;
> > > >>          }}}
> > > >>          MedianDelta[i] = temparray[2]; //returns the middle
> > > > (third) element of temparray
> > > >>          //---End median calculation
> > > >>
> > > >>          DC[i] = Nz( 6.28318 / MedianDelta[i] + .5, 15 );
> > > >>
> > > >>          InstPeriod[i] = .33*DC[i] + .67*InstPeriod[i-1];
> > > >>          Period[i] = .15*InstPeriod[i] + .85*Period[i-1];
> > > >>          }
> > > >>        for (i=0; i<7; i++)
> > > >>         { Period[i] = 1; }
> > > >>        return Period;
> > > >>       }
> > > >>
> > > >>       Plot( CyclePeriod(Z1,Z2) , "CyberCycle", colorRed );
> > > >>
> > > >>
> > > >>
> > > >>       Steve Dugas wrote:
> > > >>         Hi All,
> > > >>
> > > >>         I wonder if anyone has ever tried to code Ehlers 
Dominant
> > > > Cycle - the one based on the Homodyne Discriminator, pp. 68-
69 in
> > > > Rocket Science. I have never used TradeStation and this is my
> > first
> > > > shot at translating EasyLanguage. As far as I can see the code
> > looks
> > > > OK to me but what do I know? Anyway, the graph it produces (
> > middle
> > > > one ) looks pretty bad. For comparison, I plotted the Dominant
> > Cycle
> > > > code from the AFL library on the bottom ( but I believe this 
uses
> > a
> > > > different method ).  I would like to go on and code the rest 
of
> > the
> > > > indicators in the book but many are built on this so I need 
to get
> > > > this right first. Any thoughts or working code would be 
greatly
> > > > appreciated. I have enclosed my code below.Thank you!
> > > >>
> > > >>         Steve
> > > >>
> > > >>         // Dominant Cycle
> > > >>
> > > >>         SetBarsRequired( 10000, 10000 );
> > > >>
> > > >>         // USER DEFINED PARAMS
> > > >>
> > > >>         Price = ( High + Low ) / 2;
> > > >>
> > > >>         // FORMULA
> > > >>
> > > >>         // initialize variables
> > > >>
> > > >>         Smooth = Detrender = I1 = Q1 = jI = jQ = I2 = Q2 = 
Re =
> > Im
> > > > = Period = SmoothPeriod = 0;
> > > >>
> > > >>         // calculate dominant cycle period
> > > >>
> > > >>         for ( i = 6; i < BarCount; i++ )
> > > >>
> > > >>         {
> > > >>
> > > >>         // smooth price data with 4-bar WMA
> > > >>
> > > >>         Smooth[i] = ( 4 * Price[i] + 3 * Price[i-1] + 2 * 
Price
> > [i-
> > > > 2] + Price[i-3] ) / 10;
> > > >>
> > > >>         // compute amplitude correction
> > > >>
> > > >>         AmpCorr[i] = 0.075 * Period[i-1] + 0.54;
> > > >>
> > > >>         // compute detrended price data and Quadrature 
component
> > > > with 7-bar Hilbert Transform
> > > >>
> > > >>         Detrender[i] = ( 0.0962 * Smooth[i] + 0.5769 * Smooth
[i-
> > > > 2] - 0.5769 * Smooth[i-4] - 0.0962 * Smooth[i-6] ) * AmpCorr
[i];
> > > >>
> > > >>         Q1[i] = ( 0.0962 * Detrender[i] + 0.5769 * Detrender
[i-
> > 2] -
> > > > 0.5769 * Detrender[i-4] - 0.0962 * Detrender[i-6] ) * AmpCorr
[i];
> > > >>
> > > >>         // compute InPhase component by referencing center 
bar of
> > > > Hilbert Transformer ( 3 bars ago )
> > > >>
> > > >>         I1[i] = Detrender[i-3];
> > > >>
> > > >>         // advance the phase of I1 and Q1 by 90 degrees with 
7-
> > bar
> > > > Hilbert Transform
> > > >>
> > > >>         jI[i] = ( 0.0962 * I1[i] + 0.5769 * I1[i-2] - 0.5769 
* I1
> > > > [i-4] - 0.0962 * I1[i-6] ) * AmpCorr[i];
> > > >>
> > > >>         jQ[i] = ( 0.0962 * Q1[i] + 0.5769 * Q1[i-2] - 0.5769 
* Q1
> > > > [i-4] - 0.0962 * Q1[i-6] ) * AmpCorr[i];
> > > >>
> > > >>         // perform Phasor addition for 3-bar averaging
> > > >>
> > > >>         I2[i] = I1[i] - jQ[i];
> > > >>
> > > >>         Q2[i] = Q1[i] + jI[i];
> > > >>
> > > >>         // smooth the I and Q components
> > > >>
> > > >>         I2[i] = 0.2 * I2[i] + 0.8 * I2[i-1];
> > > >>
> > > >>         Q2[i] = 0.2 * Q2[i] + 0.8 * Q2[i-1];
> > > >>
> > > >>         // apply the Homodyne Discriminator
> > > >>
> > > >>         Re[i] = I2[i] * I2[i-1] + Q2[i] * Q2[i-1];
> > > >>
> > > >>         Im[i] = I2[i] * Q2[i-1] - Q2[i] * I2[i-1];
> > > >>
> > > >>         // smooth the Re and Im components
> > > >>
> > > >>         Re[i] = 0.2 * Re[i] + 0.8 * Re[i-1];
> > > >>
> > > >>         Im[i] = 0.2 * Im[i] + 0.8 * Im[i-1];
> > > >>
> > > >>         // compute Dominant Cycle period
> > > >>
> > > >>         if ( Im[i] != 0 AND Re[i] != 0 )
> > > >>
> > > >>         Period[i] = 360 / atan( Im[i] / Re[i] );
> > > >>
> > > >>         // limit ROC of the cycle period to +/- 50% of 
previous
> > > > cycle period
> > > >>
> > > >>         if ( Period[i] > 1.5 * Period[i-1] )
> > > >>
> > > >>         Period[i] = 1.5 * Period[i-1];
> > > >>
> > > >>         if ( Period[i] < 0.67 * Period[i-1] )
> > > >>
> > > >>         Period[i] = 0.67 * Period[i-1];
> > > >>
> > > >>         // limit the cycle period to be > 6 or < 50
> > > >>
> > > >>         if ( Period[i] < 6 )
> > > >>
> > > >>         Period[i] = 6;
> > > >>
> > > >>         if ( Period[i] > 50 )
> > > >>
> > > >>         Period[i] = 50;
> > > >>
> > > >>         // smooth the cycle period
> > > >>
> > > >>         Period[i] = 0.2 * Period[i] + 0.8 * Period[i-1];
> > > >>
> > > >>         SmoothPeriod[i] = 0.33 * Period[i] + 0.67 * 
SmoothPeriod
> > [i-
> > > > 1];
> > > >>
> > > >>         }
> > > >>
> > > >>         Plot( SmoothPeriod, "Dominant Cycle", colorWhite,
> > > > styleLine|styleOwnScale );
> > > >>
> > > >>         //Plot( Re, "Re", colorBlue, 
styleLine|styleOwnScale );
> > > >>
> > > >>         //Plot( Im, "Im", colorSkyblue,
> > styleLine|styleOwnScale );
> > > >>
> > > >>         //Plot( Im/Re, "Im/Re", colorDarkGreen,
> > > > styleLine|styleOwnScale );
> > > >>
> > > >>         //Plot( atan(Im/Re), "atan(Im/Re)", colorBrightGreen,
> > > > styleLine|styleOwnScale );
> > > >>
> > > >>         //Plot( Period, "Period", colorYellow,
> > > > styleLine|styleOwnScale );
> > > >>
> > > >>
> > > >>
> > > >> -------------------------------------------------------------
----
> > --
> > > > -----
> > > >>
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Please note that this group is for discussion between users 
only.
> > > >
> > > > To get support from AmiBroker please send an e-mail directly 
to
> > > > SUPPORT {at} amibroker.com
> > > >
> > > > For other support material please check also:
> > > > http://www.amibroker.com/support.html
> > > >
> > > >
> > > > Yahoo! Groups Links
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> >
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For other support material please check also:
> > http://www.amibroker.com/support.html
> >
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>






Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For other support material please check also:
http://www.amibroker.com/support.html

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to