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

[amibroker] Re: can anyone help me in coding AFL (thanks josun)



PureBytes Links

Trading Reference Links

Now, you can tighten that code up a little bit and add a touch of  
defensive programming (don't let period be <= 0)and then package it 
into a function:

function myMA(array, period)
{
  a = Null;
 
  if (period > 0)
  {
    for (i = period; i < BarCount; i++)
    {
      for (j = 0, temp = 0; j < period; j++)
      {
        temp = temp + array[i-j];
      }
      a[i] = temp / period;
    }
  }
  return a;
}

Example invocation:

period = Param("Moving Average Period", 15, 1, 50);

array = myMA(Close, period);

Plot(array, "", colorRed);

[added bonus: see how cool Tomasz's Param() function is?...press 
Ctrl-R in the chart and vary the size of the moving average]

Programming tip:

Make a preference of using for statements instead of while 
statements when the boundaries of your limits are well-defined.   
Your code will be easier to read.

Steve


--- In amibroker@xxxxxxxxxxxxxxx, "razepy" <razepy@xxxx> wrote:
>
> it was this formula that i want
> many thanks  for your help
> 
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "johsun" <joh.sun@xxxx> wrote:
> >
> > a = Null;
> > f = 15;
> > 
> > for ( i = f ; i < BarCount; i++ )
> >   { 
> > 
> >   n = temp = 0;
> > 
> >   while ( n < f )
> > 
> >     { 
> > 
> >     temp = temp + C[ i - n ];
> >     n++;
> > 
> >     } 
> > 
> >   a[ i ]= temp / f;
> > 
> >   } 
> > 
> > Graph0 = a;
> > Graph1 = MA( C, f );
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "rasepi" <rasepi@xxxx> wrote:
> > >
> > > hello
> > > i am not interested on the MA
> > > (i am not a idiot, i believe)
> > > my project is to code steve woods float channel indicator
> > > i have made a code with VBscript
> > > its working but its very slow
> > > i tried it in AFL langage buts it no working
> > > therefore i have tried coding a simple moving average to 
learning
> > > buts also no working
> > > if you are a professional programmer, can you explain what is 
> > false in 
> > > this following code?
> > > 
> > > f=15;
> > > for (i=15 ;i<BarCount -1 ;i++);
> > > { //begin for loop
> > > n=0;
> > > temp=0;
> > > while (temp < f-1)
> > > { //begin while loop
> > > temp= temp+ C[i-n];
> > > n=n+1;
> > > } //end while loop
> > > a[i]=temp/15;
> > > } //end for loop
> > > 
> > > Graph0=a;
> >
>






------------------------ Yahoo! Groups Sponsor --------------------~--> 
Try Online Currency Trading with GFT. Free 50K Demo. Trade 
24 Hours. Commission-Free. 
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

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/

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

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