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

[amibroker] Re: Running Median Calculation Starting at Bar 0



PureBytes Links

Trading Reference Links

Bump

--- In amibroker@xxxxxxxxxxxxxxx, "searnp" <searnp@xxx> wrote:
>
> Hi Howard, thanks for your reply.
> 
> I am looking at calculating an exponential moving average, but would
> like to have initial values as well (instead of null values).
> 
> For example:
> If I do an EMA(Close, 20), I will get a chart of the 20-day EMA of
> close with null values for the first 20 bars.
> 
> So what I am trying to do is create my own EMA function via looping
> (similar to pg.114 of the Amibroker User Guide), where the running
> median would be calculated for (i + 1) < Period. I can do it with an
> initial simple running average calculation (since I can incorporate
> that in the loop for (i + 1) < Period ), but would prefer to use the
> median in case there are initial spikes.
> 
> Another question loosely related to this:
> When I incorporate a manual bar count via looping (see code below) and
> then click on a bar on the chart, the value changes when I scroll left
> or right or zoom in or out. Why is this?
> 
> CT[0] = 1;
> for( i = 1; i < BarCount; i++ )
> {
> 	CT[i] = 1 + CT[i-1];
> }
> 
> Plot( CT, _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),
> ParamStyle("Style") );
> 
> 
> Thanks.
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Howard B" <howardbandy@> wrote:
> >
> > Hi Searnp --
> > 
> > The User's Guide states:
> > AFL Function Reference - MEDIAN  *MEDIAN
> > *- calculate median (middle element)
> > 
> > *Statistical functions
> > *(AFL 2.5)
> > 
> >   *SYNTAX* *Median( array, period ) * *RETURNS* ARRAY  *FUNCTION*
> The Median
> > function - finds median (middle element) value of the *array* over
> > *period*elements.
> > *EXAMPLE* // list only symbols which volume is greater than
> > // median Volume from past 50 days
> > *Filter* = *Volume* > Median( *Volume*, 50 );
> > AddColumn( *V*, "Volume" );
> > Period must be a scalar -- a constant.  When you run this code:
> > 
> > RM = Median(Close, BarIndex() + 1);
> > 
> > The entire Close array is passed to the Median function at one time.
>  The
> > value of BarIndex changes with each element of the Close array. 
> Looked at
> > simplistically, the afl processor does not know which value of
> BarIndex to
> > use, so it coughs.
> > 
> > You will have to write your own function using looping code.
> > 
> > Before you start, are you certain that you want the median value of an
> > expanding list of data values?  Today's value will depend on how
> much data
> > was loaded, which is generally not a good programming or systems
> idea.  Will
> > Median(C,50), or some variation, give you what you need?
> > 
> > Thanks,
> > Howard
> > 
> > 
> > 
> > On Mon, Nov 3, 2008 at 11:26 AM, searnp <searnp@> wrote:
> > 
> > >   I am trying to calculate a running median that starts at bar 0.
> > >
> > > Code:
> > >
> > > RM = Median(Close, BarIndex() + 1);
> > >
> > >
> > > Then I get the following error message:
> > >
> > > Error 5. Argument #2 has incorrect type (the function expects
> different
> > > argument type here)
> > >
> > >
> > > I am using "Barindex() + 1" to get a running count at each bar to
> be used
> > > in the median's lookback period. Is there a way to implement this?
> > >
> > > Thanks.
> > >  
> > >
> >
>



------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

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