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

[amibroker] Re: Relating BarIndex with Calendar Date



PureBytes Links

Trading Reference Links

I think your idea of using two loops is correct.
but i suggest that the 1st for loop start from barcount - 1 like you 
do and finish off at -Days/2;
the 2nd j loop starts at barcount + Days/2 and finishes off at 0

the if statement should be if(td[j] <= backday)

result[i] = array[j] and break after
hope that helps.

--- In amibroker@xxxxxxxxxxxxxxx, "tipequity" <l3456@xxx> 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/