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

[amibroker] Re: Hurst Channels



PureBytes Links

Trading Reference Links

Hi,

Ok I finally finded how it works. But the algorithm is just for 
polynomial fitting and is not a general function least square 
fitting.

For those who need some explanation :
Least Square Polynomial Fitting: 
http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html
Gaussian Elimination:
http://mathworld.wolfram.com/GaussianElimination.html

But just one thing i find strange in your formula is the range [-
1;1] for X (the time). I try to change GE_XBegin to "0" so the range 
start from 0.
On the graph, it is the same thing but it differs at the 5,6,7 and 8 
orders it seems.

So why this range [-1;1] ? And do you try weighted least square 
polynomial fitting by weighted it by the volume or inverse of 
volatility ? (maybe the range [-1;1] is to weight the older and 
newest value of the price ?)

For now i work on basic prediction based on this :
http://www.duke.edu/~rnau/411avg.htm
Maybe it could help for channel predicted (a DEMA can provide a 
trand prediction and so a straight channel can be created from this).
Just the trend prediction here :

//----------------------------------------
SetBarsRequired(20000,20000);

P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 200, 1, 10 );
Factor = 2/(Periods+1);


bi = BarIndex();
current_pos = SelectedValue( bi ) - bi[ 0 ];
printf( "Position: " + WriteVal(current_pos) + "\n" );


e1 = AMA( P, Factor );
e2 = AMA( e1, Factor );
data=2*e1-e2;

prediction=0;
a=2*e1[current_pos]-e2[current_pos];
b=(factor/(1-factor))*(e1[current_pos]-e2[current_pos]);
for (i=current_pos+1;i<BarCount;i++) {
	k=i-current_pos;
	prediction[i]=a+k*b;
}

result=IIf(bi>current_pos,prediction,data);


Plot( result, "DEMA Prediction", ParamColor( "Color DEMA 
Prediction", colorCycle ), ParamStyle("Style") );
//----------------------------------------------------


Thanks.
Mich.


--- In amibroker@xxxxxxxxxxxxxxx, "tomy_frenchy" <michel_b_g@xxx> 
wrote:
>
> Hello Fred,
> 
> I am actually trying to better anderstand how work your polyfit 
> version, maybe to try to make other sort of fitting (exponential 
> fitting, inverse fonction fitting...).
> 
> For the Gaussian elimination in VBScript, it is to solve the 
linear 
> equations via matrix resolution with gauss pivot.
> But I don't anderstand the parameters you send in the gaussian 
> elimination fonction.
> 
> It seems you scale the time axis with a ramp from -1 to 1. After 
tou 
> make ^2,^3,etc, of this scale axis.
> My first question : why take the sum of the x^n (i.e LastValue(Cum
> (.)) ) ? Some sum are null because of the symetry of the ramp [-
1;1].
> 
> And for the price (Y) data, you multiply them by the ramp [-1;1] 
and 
> make them power of this ramp. Why ? And same thing, why make a 
> LastValue(Cum(.))?
> 
> For now, it seems you fit the polynom by anchor it to his most 
> recent and older value on the range. The value in the middle are 
> less weighted. And you fit him by using average value of price (so 
> the cum funtion). But maybe i am totaly wrong.
> Do you try with the least square method or maximum correlation to 
> fit the polynome ? It is too much computer time consuming ?
> 
> Hope you will light my head who is burning for now héhé : )
> Thanks,
> Mich.
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, Fred Tonetti <ftonetti@> 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>  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