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

Re: [amibroker] Re: Hurst Channels



PureBytes Links

Trading Reference Links

Steve,
Sorry for the long delay...just got my office back again. I posted the 
auto-fit version as requested. See what you think and feel welcome to 
give any feedback you care.
Regards,
Andy

Steve Dugas wrote:
>
> Hi Andy - I would be interested in seeing the auto-fit version 
> whenever you
> have the spare time to post it. Thanks very much!
>
> Steve
>
> ----- Original Message -----
> From: "andy_davidson_uk1" <AndyDavidson@xxxxxxxxxxxxx 
> <mailto:AndyDavidson%40mailshack.com>>
> To: <amibroker@xxxxxxxxxxxxxxx <mailto:amibroker%40yahoogroups.com>>
> Sent: Wednesday, October 11, 2006 4:55 AM
> Subject: [amibroker] Re: Hurst Channels
>
> 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 <mailto:amibroker%40yahoogroups.com>, 
> "Rakesh Sahgal" <rakeshsahgal@xxx>
> 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@xxx> 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 
> <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 
> <http://www.amibroker.com/support.html>
>
> Yahoo! Groups Links
>
>  

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