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/
|