Hi,

I got the idea for this approach from the AFL Library code for Elder's
SafeZone stop.  I think it will do what you want.

arrayperiod = 20;
arrayamounts = IIf( C > MA( C, arrayperiod ), H - L, 0 );
sumofarray = Sum( arrayamounts, arrayperiod ); 
countofarray = Sum( C > MA( C, arrayperiod ), arrayperiod );
yourma = sumofarray/countofarray; 
Plot( countofarray, "Number of hits in last " + arrayperiod,
colorBlack, styleNoLine|styleOwnScale );
Plot( yourma, "Your MA", colorBlack, styleLine );


Joe

--- In [email protected], Ken Close <[EMAIL PROTECTED]> wrote:
>
> I asked a similar question about nulls in a stdev calculation and
received
> Tomasz answer at
> http://finance.groups.yahoo.com/group/amibroker/message/127041
> 
> Not detailed but will explain what has to be done.  Basically you
have to
> write a looped routine.
> 
> Ken 
> 
> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf
> Of pmxgs
> Sent: Friday, July 25, 2008 10:27 AM
> To: [email protected]
> Subject: [amibroker] Calculate MA on array which doesn't have
consecutive
> numbers?
> 
> Hi,
> 
>  I'm trying to calculate a moving average over a number of values
which are
> based on a certain condition.
> For example (if close > 20 period MA, return range of bar, otherwise
don't
> get the value):
> 
> array=IIF(C>MA(C,20),(H-L),0); 
> 
> What I would now like is to have a 20 period moving average of only the
> numbers obtained in the previously calculated array, because the
array also
> has zeros (when IIF condition is false), and I don't want the zeros
to be
> included in the MA caculation.
> In other words, the problem is that, since that the IIF condition isn't
> allways true, the array doesn't have consecutive numbers, so if I
choose to
> calculate the MA like this: MA(array,20) I won't get the correct MA
(because
> the zeros are included).
> 
> Can anyone give an hint on how to solve this
> 
> Thanks
> 
> 
> ------------------------------------
> 
> 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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
> Yahoo! Groups Links
>


Reply via email to