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

Re: [amibroker] Re: Hurst Channels



PureBytes Links

Trading Reference Links

Andy

Without a doubt there is no holy grail. Cycle work has it's place and it's
limitations. For all those who want to include this component in their
anaylsis/decision making one thing they need to remember is cycles do invert
and non-cyclic events are a part of the game.

Rakesh

On 10/11/06, andy_davidson_uk1 <AndyDavidson@xxxxxxxxxxxxx> wrote:
>
> Rakesh,
>
> The move was fine thanks, but as expected the settling in is taking
> somewhat longer. Still don't have broadband connected, nor even a desk
> to sit at! Oh well, the laptop in front of the telly will have to do
> for now...
>
> To try and answer your question, I think we must first bear in mind
> that there are many ways to attempt to skin this cyclical beast. If
> nothing else then this thread is showing that. First we had the FFT
> discussion, then polynomials, then Ehler's DSP techniques and now
> Hurst/Millard/Cleeton's methods.
>
> There are, of course, benefits and drawbacks to each approach. I
> touched on one problem I found with Ehler's stuff and Fred has already
> highlighted the problem with Hurst et al. Basically that, because you
> are using centred MAs as low-pass filters you don't have data up to
> the right-edge and therefore have a zone of recent data within which
> you have to extrapolate the 'measured' cycles/envelopes.
>
> So how do you do this extrapolation to overcome the shortfall? Well,
> there are many ways, as we are seeing. I personally try and fit a sine
> wave to at least 2 'measured' cycles back and if there is good
> correlation there and also good correlation in the "end zone" with the
> price then (i.e. prices are not moving opposite to the projected sine
> wave) then I get a little happier. There are probably better ways to
> extrapolate and I look forward to investigating them in the next few
> weeks/months. The good thing about the Cycle Highlighter though is
> that you don't need to fit the amplitude so much as the
> periodicity...i.e. I'm not looking for an absolute perfect sine-wave
> fit to the price but more looking for a visual appreciation of the
> market 'rhythm'.
>
> So there's an answer to one of your questions...with this indicator I
> care much more about time/periodicity than I do about amplitude. I'm
> looking for it to help me decide *when* to get in, stay in or get out.
> I'm not looking for price targets here. See my comments re the GBP in
> the last post.
>
> >>how do you interpret the correlation numbers?
> If the correlation coefficient is high and positive then I am happy.
> The higher the better!
>
> >>What are you looking for when you say you wait for tradeable cycles?
> I don't necessarily wait for anything...more I go out looking for
> things that are exhibiting clear cyclical behaviour and trade them,
> passing over trades that I do not have a good degree of confidence in.
> It's more active than passive! :-)
>
> >>please throw some light on the methodology you follow
>
> Basically I reconcile myself to the limitation of the technique and
> use a fair amount of discretion in my trading. I've learned that I can
> get superior results by trusting myself more and letting the computer
> become more of a visualising aid than a rule-generator. I have a much
> better relationship with my machine now that I've finally convinced it
> that my brain is superior at pattern recognition!!
>
> Like I said, this is just one component of my trading method...each
> component has its own drawbacks, the trick is to try to get the
> relative strengths of one analysis to compensate for the weaknesses in
> another. Anyway, that's another story and I've talked enough already.
> But I will just say one thing more...
>
> >>"Fortunately for all interested Fred is taking an interest the
> stuff, seems he is the resident genius on the subject"
>
> I couldn't possibly disagree from what I've seen and heard, but please
> just bear in mind (warning - here comes a cliche!) that there is no
> holy grail and at some point the Law of Diminishing Returns kicks in
> and you will better spend your time and energy just accepting some
> basic assumptions/limitations and get on with the trading game. I have
> found that it's actually quite liberating (and financially rewarding)
> when you get to that place.
>
> Good luck...hope that helps some.
>
> Andy
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Rakesh Sahgal" <rakeshsahgal@xxx>
> wrote:
> >
> > Hi Andy
> >
> > How is the moving and settling in getting along?
> >
> > Fortunately for all  interested Fred is taking an interest the
> stuff, seems
> > he is the resident genius on the subject. Coming back to yuor code
> how do
> > you interpret the correlation numbers? What are you looking for when
> you say
> > you wait for tradeable cycles? Are you using criteria based on
> > amplitude/phase or primarily cycle length? As and when you can spare the
> > time please throw some light on the methodology you follow. Thanks,
> >
> > Regards
> >
> >
> > Rakesh
> >
> > On 10/11/06, andy_davidson_uk1 <AndyDavidson@xxx> wrote:
> > >
> > > Guys,
> > >
> > > There's lots of good stuff going on here and I wish I could devote
> > > some more time to digest it all (still in a crazy mid-move mess).
> > > However, until I can I thought I would just post my own bit of code to
> > > show you how I've been using Millard's adaptation of Hurst's work.
> > > You'll find it under "Cycle Highlighter" in the AFL library.
> > >
> > > It's nothing really mathematically fancy I'm afraid and uses simple
> > > sine-waves to extrapolate. FFT's, appendix 6 of PM and the like are
> > > beyond my skills at present, although I see I'm going to have to do
> > > something about that! However, I have found that the simplicity of the
> > > approach does help in so far as practical trading goes. By this I mean
> > > that if clear, tradeable cycles are present it will generally show up
> > > on the indicator. And if they don't show up then neither does my
> > > trading money, simple as that!
> > >
> > > To give you a practical idea of how I've used it...try it on GBP A0-FX
> > > with a daily setting of around 85 bars. Now, I didn't use this
> > > indicator alone to go short on the currency in early September
> > > (there's obviously more to my method than this one indicator), but it
> > > has helped me *stay* short until now...i.e. I kept the faith with the
> > > position despite a month of down-and-up action because the cycle
> > > interp told me there was plenty of down-time still remaining.
> > >
> > > There is also an auto-fit version available if anyone's interested.
> > > It's not perfect and it's slow as it uses a loop to find the best
> > > correlation coefficients. But let me know if you want it.
> > >
> > > I haven't felt the need to code Hurst's edge-band technique as yet,
> > > but it's on the list. As is working through his course material in
> > > detail and then tackling these higher-order mathematical techniques to
> > > try and improve what I've already got. However, I would say that the
> > > KISS principle has served me pretty well up until now. So good luck to
> > > all and please keep this thread going! Also feel free to let me know
> > > if there's any way to improve the code I posted. A programmer I most
> > > definitely ain't...
> > >
> > >
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "Rakesh Sahgal" <rakeshsahgal@>
> > > wrote:
> > > >
> > > > Fred
> > > >
> > > > So in essence are you saying that to get a meaningful response from
> > > a FFT it
> > > > is essential that the data series be de-trended? Also since TJ
> had in
> > > > response to your query indicated that the FFT implementation he was
> > > going to
> > > > include in AB was not going to be constrained by ^2 limitation
> requiring
> > > > data padding/windowing(?),  the problem of ascertaining cycles
> should be
> > > > resolved if the data is detrended and then run through the FFT
> > > function in
> > > > AB?
> > > >
> > > > Rakesh
> > > >
> > > > On 10/11/06, Fred Tonetti <ftonetti@> wrote:
> > > > >
> > > > >  Bill,
> > > > >
> > > > >
> > > > >
> > > > > As a follow up to my last ?
> > > > >
> > > > >
> > > > >
> > > > > Lets use the wave generator ( below in AFL )  to manufacture some
> > > > > synthetic data ?
> > > > >
> > > > >
> > > > >
> > > > > You can see that I purposely picked wave lengths that are powers
> > > of two ?
> > > > > The reason is that FFT's will of course resolve these quite well
> > > as long as
> > > > > you have the sample size set to be a power of 2 which is larger
> > > then the
> > > > > longest wavelength.  The amplitudes and phase offsets are
> pretty much
> > > > > random.
> > > > >
> > > > >
> > > > >
> > > > > See the attachments ?
> > > > >
> > > > >
> > > > >
> > > > > #1 The individual and composite ( DATA ) waves we generated
> > > > >
> > > > > #2 The histogram or periodogram for the FFT ? Notice how it
> picked all
> > > > > wave lengths out with very little trouble.
> > > > >
> > > > > #3 The output cycles which are a result of the individual cycle
> > > lengths,
> > > > > amplitudes and phase offsets that the FFT detected.  Notice how
> > > this is
> > > > > almost a perfect match of the input.  The individual waves can of
> > > course be
> > > > > easily extrapolated and combined to present a picture of where the
> > > data
> > > > > should go in the future.
> > > > >
> > > > >
> > > > >
> > > > > #4 Another generated wave this time with trend added in ?
> Notice the
> > > > > effect on the white composite line.
> > > > >
> > > > > #5 The resulting histogram from the FFT WITHOUT detrending the
> data
> > > > > first.  Notice how it has become "confused".
> > > > >
> > > > > #6 The resulting output waves now don't look much like the inputs..
> > > > >
> > > > >
> > > > >
> > > > > #7 Same histogram as in #5 but with detrending the data prior to
> > > invoking
> > > > > the FFT.  Notice how now we are back to where we should be.
> > > > >
> > > > > #8 The resulting output waves as we would expect them to be ?
> > > > >
> > > > >
> > > > >
> > > > > #9 Another generated wave this time with a very high noise
> level ( the
> > > > > grey histogram ).  You can see the effect it has had on the
> data we
> > > > > manufactured.
> > > > >
> > > > > #10 The histogram from FFT.  Notice how even though the noise
> > > levels have
> > > > > gone up here, the FFT still had no real problems finding the
> cycles.
> > > > >
> > > > > #11 The resulting output waves which now look very much like the
> > > input ?
> > > > > WITHOUT the noise.
> > > > >
> > > > >
> > > > >
> > > > > #12 Here I have purposely changed the wave lengths from being
> > > powers of 2
> > > > > to 7, 17, 27, 37 & 47?. Notice the effect it has had in the
> > > histogram ? I
> > > > > had to increase the data sample to 512 to get this resolution
> > > which is still
> > > > > somewhat "muddy" ? but all in all the FFT did a good job of
> > > finding the
> > > > > cycles.
> > > > >
> > > > >
> > > > >
> > > > > The other thing to keep in mind here with this particular wave
> > > generator
> > > > > is that I have not introduced any variation in wave length,
> > > amplitude or
> > > > > phase offset over the life of the data sample ? which in my
> > > opinion ? does
> > > > > happen ? For the purists that don't think this happens, then I
> > > would think
> > > > > that they would at least admit that non cyclic events can make it
> > > appear to
> > > > > DSP algorithms as if this were the case.
> > > > >
> > > > >
> > > > >
> > > > > rTrend   =  0;
> > > > >
> > > > > rNoise   =  0 ;
> > > > >
> > > > > dFactor  =  1;
> > > > >
> > > > >
> > > > >
> > > > > rCyc1Amp =  3;
> > > > >
> > > > > rCyc2Amp =  5;
> > > > >
> > > > > rCyc3Amp =  7;
> > > > >
> > > > > rCyc4Amp =  9;
> > > > >
> > > > > rCyc5Amp = 11;
> > > > >
> > > > >
> > > > >
> > > > > rCyc1Len =  4;
> > > > >
> > > > > rCyc2Len =  8;
> > > > >
> > > > > rCyc3Len = 16;
> > > > >
> > > > > rCyc4Len = 32;
> > > > >
> > > > > rCyc5Len = 64;
> > > > >
> > > > >
> > > > >
> > > > > rCyc1Phase = 72;
> > > > >
> > > > > rCyc2Phase = 144;
> > > > >
> > > > > rCyc3Phase = 216;
> > > > >
> > > > > rCyc4Phase = 288;
> > > > >
> > > > > rCyc5Phase = 360;
> > > > >
> > > > >
> > > > >
> > > > > *if* (Source == "Generator" )
> > > > >
> > > > > {
> > > > >
> > > > >     pi = 4 * atan (1 );
> > > > >
> > > > >
> > > > >
> > > > >     StartX = 1000;
> > > > >
> > > > >
> > > > >
> > > > >     Trend = (BI + 1) * rTrend * dFactor * (rCyc1Amp + rCyc2Amp +
> > > rCyc3Amp
> > > > > + rCyc4Amp + rCyc5Amp) / 5 ;
> > > > >
> > > > >
> > > > >
> > > > >     Noise = (Random () - 0.5 ) * 2 * rNoise * dFactor *
> (rCyc1Amp +
> > > > > rCyc2Amp + rCyc3Amp + rCyc4Amp + rCyc5Amp) / 5 ;
> > > > >
> > > > >
> > > > >
> > > > >     Cycle1 = cos ((BI / rCyc1Len + rCyc1Phase / 360 ) * 2 * pi) *
> > > > > (rCyc1Amp * dFactor) + Trend * 0.2 ;
> > > > >
> > > > >     Cycle2 = cos((BI / rCyc2Len + rCyc2Phase / 360 ) * 2 * pi) *
> > > (rCyc2Amp
> > > > > * dFactor) + Trend * 0.2 ;
> > > > >
> > > > >     Cycle3 = cos((BI / rCyc3Len + rCyc3Phase / 360 ) * 2 * pi) *
> > > (rCyc3Amp
> > > > > * dFactor) + Trend * 0.2 ;
> > > > >
> > > > >     Cycle4 = cos((BI / rCyc4Len + rCyc4Phase / 360 ) * 2 * pi) *
> > > (rCyc4Amp
> > > > > * dFactor) + Trend * 0.2 ;
> > > > >
> > > > >     Cycle5 = cos((BI / rCyc5Len + rCyc5Phase / 360 ) * 2 * pi) *
> > > (rCyc5Amp
> > > > > * dFactor) + Trend * 0.2 ;
> > > > >
> > > > >
> > > > >
> > > > >     CycleX = Cycle1 + Cycle2 + Cycle3 + Cycle4 + Cycle5 + Noise;
> > > > >
> > > > >
> > > > >
> > > > >     * if* (PlotIt == "IP Cycles")
> > > > >
> > > > >     {
> > > > >
> > > > >         Plot (Cycle1, "C1", *colorRed*);
> > > > >
> > > > >         Plot (Cycle2, "C2", *colorOrange*);
> > > > >
> > > > >         Plot (Cycle3, "C3", *colorYellow*);
> > > > >
> > > > >         Plot (Cycle4, "C4", *colorBrightGreen*);
> > > > >
> > > > >         Plot (Cycle5, "C5", *colorBlue*);
> > > > >
> > > > >         Plot (CycleX, "Cx", *colorWhite*, *styleThick *);
> > > > >
> > > > >         Plot (Noise,  "n",  *colorLightGrey*, *styleThick* | *
> > > > > styleHistogram*);
> > > > >
> > > > >     }
> > > > >
> > > > >
> > > > >
> > > > >     Data   = StartX + CycleX;
> > > > >
> > > > > }
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > ------------------------------
> > > > > I am using the free version of SPAMfighter for private users.
> > > > > It has removed 8605 spam emails to date.
> > > > > Paying users do not have this message in their emails.
> > > > > Try SPAMfighter <http://www.spamfighter.com/go.asp?t=249> for free
> > > now!
> > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > 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
>
>
>
>
>
>
>
>
>