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

[amibroker] Re: Gaussian Moving average



PureBytes Links

Trading Reference Links

Johan, Terry

Appreciate your replies. Thanks for the codes.

regards

Karthik


--- In amibroker@xxxxxxxxxxxxxxx, "johsun" <joh.sun@xxx> wrote:
>
> Replace your IIR2 function with this code and it should be good for 
> any array that starts with a series of empty values.
> 
> Johan
> 
> 
> function IIR2( input, f0, f1, f2 )
> {
> result = Null;
> 
> //first bar with a non empty value
> first_bar = LastValue( ValueWhen( ExRem( input, 0 ), BarIndex() ) );
> 
> result[ first_bar ] = input[ first_bar ];
> result[ first_bar + 1 ] = input[ first_bar + 1 ];
> 
> for( i = first_bar + 2; i < BarCount; i++ )
> {
> result[ i ] = f0 * input[ i ] +
> f1 * result[ i - 1 ] +
> f2 * result[ i - 2 ];
> }
> 
> return result;
> }
> 
> 
> 
> 
> 
> 
> 
>  
> > -----Original Message-----
> > From: amibroker@xxxxxxxxxxxxxxx 
[mailto:amibroker@xxxxxxxxxxxxxxx] 
> On
> > Behalf Of karthikmarar
> > Sent: Sunday, September 03, 2006 03:55
> > To: amibroker@xxxxxxxxxxxxxxx
> > Subject: [amibroker] Gaussian Moving average
> > 
> >  
> > 
> > Hi
> > 
> >  
> > 
> > I made the folowing code for Gaussian Moving average. It works 
> fine 
> > 
> > for close, high etc. But does not work if I want to use it on any 
> > 
> > indicator.
> > 
> > For example when I substitute close with say ROC the output goes 
> to 
> > 
> > zero. Can anybody explain where I am going wrong.
> > 
> >  
> > 
> >  
> > 
> > SetBarsRequired(100000,0);
> > 
> > PI = 3.1415926;
> > 
> >  
> > 
> > function IIR2( input, f0, f1, f2 ) 
> > 
> > { 
> > 
> >     result[ 0 ] = input[ 0 ]; 
> > 
> >     result[ 1 ] = input[ 1 ]; 
> > 
> >  
> > 
> >     for( i = 2; i < BarCount; i++ ) 
> > 
> >     { 
> > 
> >        result[ i ] = f0 * input[ i ] + 
> > 
> >                      f1 * result[ i - 1 ] + 
> > 
> >                      f2 * result[ i - 2 ]; 
> > 
> >     } 
> > 
> >  
> > 
> >    return result; 
> > 
> > } 
> > 
> >  
> > 
> > function GSMA( input, Period )
> > 
> > {
> > 
> >   N = 0;
> > 
> >   an = 2 * PI / Period;
> > 
> >   c0 = b0 = 1;
> > 
> >   c1 = b1 = b2 = a1 = a2 = gamma1 = 0;
> > 
> >   beta1 = 2.415 * ( 1- cos( an ) );
> > 
> >   alpha = -beta1 + sqrt( beta1 ^ 2 + 2 * beta1 );
> > 
> >   alpha1 = ( cos( an ) + sin( an ) - 1 )/cos( an );
> > 
> >    {
> > 
> >     fo = alpha ^ 2;
> > 
> >     f1 = 2 * ( 1- alpha ); f2 = -( 1 - alpha )*( 1 - alpha );
> > 
> >   }
> > 
> >   
> > 
> >  
> > 
> >   return IIR2( input, fo,f1,f2);
> > 
> > }
> > 
> > A=C;
> > 
> > period=Param("period",13,1,40,1);
> > 
> >  
> > 
> > //Plot( Close, "Price", colorBlack, styleCandle ); 
> > 
> > Plot( GSMA( A,period), "GSMA", colorRed );
> > 
> >  
> > 
> > regards
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> >  
> > 
> > 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
> > 
> >  
> > 
> >     http://groups.yahoo.com/group/amibroker/
> > 
> >  
> > 
> >     amibroker-unsubscribe@xxxxxxxxxxxxxxx
> > 
> >  
> > 
> >     http://docs.yahoo.com/info/terms/
> >
>