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

[amibroker] Re: Relating BarIndex with Calendar Date



PureBytes Links

Trading Reference Links

Thanks Mike for your help. I used a year ago as an example. I don't 
want us to get hung up on that. The lookback can be any number for 
example one year, two months and 3 days ago. I need to know the 
number of trading days (bars) in that time period to use in my 
calculations. As you mentioned in your reply, there are 
approximatedly 252 trading days in one year but it can change and 
fluctuates between 249 and 253. I need to know exact number of bars. 
As you mentioned lastvalue works with the most recent trade date. I 
need to over come this limitation. I have not been able to figure out 
how. I understand that prices are associated to barindex and datenum. 
I don't know how to get the barindex for each datenum so I can 
calculate the difference to get the number of trading bars. TIA

--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Try this out and see if it does what you want. The premise is this; 
> Datenum is just a weighted count, so subtract 10000 (equals 1 year) 
> to get one year ago. Then take the last BarIndex where Datenum is 
not 
> any more recent than that.
> 
> This 1 bar exploration illustrates my earlier comment in that you 
> will see that there is a difference of 253 bars in the last year 
(as 
> of Jul 18 2008).
> 
> Note this will only work when running against the most recent trade 
> date since it is using LastValue. To illustrate this, run the 
> Exploration over last 5 bars. You will note that the "Today ..." 
> values increment, but the year ago values are fixed.
> 
> Buy = Sell = Short = Cover = 0;
> 
> yearAgoDate = LastValue(Datenum() - 10000);
> yearAgoBar = LastValue(ValueWhen(Datenum() <= yearAgoDate, BarIndex
> ()));
> 
> Filter = 1;
> 
> AddColumn(yearAgoDate, "Year Ago Date");
> AddColumn(yearAgoBar, "Year Ago BarIndex");
> AddColumn(Datenum(), "Today Date");
> AddColumn(BarIndex(), "Today BarIndex");
> 
> Mike
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@> wrote:
> >
> > Hi,
> > 
> > Just a quick note; BarIndex only counts *trading* days. Not 
> calendar 
> > days. Whereas DaysSince1900 is calendar days. So, you may be 
> > comparing apples to oranges. For example; in the US markets, 
there 
> > are about 252 trading days a year. That is the count reflected in 
> > BarIndex.
> > 
> > Mike
> >  
> > --- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@> wrote:
> > >
> > > I am having a hard time relating dates to bar indecies. In code 
> > > provided below I am trying to calculate the bar index of a year 
> ago 
> > > date with little success. I appreciate any help and explanation.
> > > 
> > > SetBarsRequired(10000);
> > > 
> > > function RefDays( Array, Days ) 
> > > { 
> > >   td = DaysSince1900(); 
> > >   result = Null; 
> > > 
> > >   if( Days < 0 ) 
> > >   { 
> > >      for( i = BarCount -1; i >= -Days; i = i - 1 ) 
> > >      { 
> > >        backday = td[ i ] + Days; // Days is negative 
> > >        for( j = -Days/2; j < i; j++ ) 
> > >        { 
> > >           if( td[ i - j ] <= backday ) 
> > >            { 
> > >              result[ i ] = Array[ i - j ]; 
> > >              break; 
> > >            } 
> > >        } 
> > >      } 
> > >   } 
> > >   return result; 
> > > } 
> > > 
> > > yy = Year();
> > > dy = DayOfYear();
> > > leapyear = ( yy % 4 ) == 0 AND yy != 2000;
> > > yearlen = IIf( leapyear, -366, -365 ); 
> > > 
> > > aYearAgoDate = RefDays(DateTime(), LastValue(yearlen));
> > > dn = DateNum();
> > > BarIndx = BarIndex();
> > > 
> > > StartDateBar = LastValue( ValueWhen ( dn == 
> StartDate ,BarIndx ) );
> > >
> >
>



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

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

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