Gilles and Steve:
I think the problem occurs when endBar = startBar
which generates an error in
else
if (BeginValue(barNumber)
)
{ ......
There are a number of ways to correct this,
depending on what one wants to do, but forcing visible bar with the following
change is one way:
else
if(BeginValue(barNumber) !=
EndValue(barNumber)
{ .....
Bill
----- Original Message -----
Sent: Sunday, May 28, 2006 8:52 AM
Subject: [amibroker] Re: Index
comparison: Steve Dugas
I'll try that! I only have an EOD database, from Yahoo quotes,
hence I can't see what could possibly change... Hope the other user will
read this! Thank you anyway! Friendly, Gilles
-- In amibroker@xxxxxxxxxxxxxxx, "Steve
Dugas" <sjdugas@xxx> wrote: > > Hi Gilles, > >
Another user reported the same error, he was using RT 1-minute bars. I
don't > know the answer, I have never had a problem on my EOD database.
The error > indicates that the code is trying to access elements
outside the bounds of > the array, but this should not be
happening. My first thought is that maybe > incoming streaming data
causes the array size, bar numbers, or something > like that to be
constantly changing but I really don't know how this works >
internally. Maybe TJ could comment if he reads this. The other user said
he > got it to work after playing with the params a liitle, maybe he
could pass > on exactly what he did to fix it. You could also try
setting beginning range > marker and see if that helps - at least
that might reveal whether the > problem is at the beginning or end
of the array.. > > Steve > > ----- Original Message
----- > From: "gillesdeprez" <gillesdeprez@xxx> > To:
<amibroker@xxxxxxxxxxxxxxx> > Sent: Friday, May 26, 2006 5:50
AM > Subject: [amibroker] Index comparison: Steve Dugas > >
> > Hi Steve! > > Sorry to bother you once again, but I've
got this error message, and > > the code is way too tough for
me... > > unnamed1: > >
for(Bar=StartBar,Bar<=EndBar,Bar++//fill bars inside range >
> > > Zero(Bar) > > Error 10 > > Subscript out
or range. > > You must not access array elements outside
0..(Barcount-1) range > > Use edit Formula to correct error >
> > > Maybe in french I could deal with it, but here... >
> Thanks again, have a nice day! > > Gilles > > >
> > > > > > > > > > > >
> --- In amibroker@xxxxxxxxxxxxxxx, "Steve Dugas" <sjdugas@>
wrote: > >> > >> Here it is again - as usual, watch
out for line wrap... > >> > >> Steve >
>> > >>
========================================================= >
>> > >> // Filename: Rel Perf Close.afl >
>> > >> // Task: Plots relative performance of tickers
entered into params > > dialog. > >> > >>
// set charting options > >> > >> SetBarsRequired(
100000, 100000 ); > >> > >> SetChartOptions(
0, > > chartShowDates|chartShowArrows|chartWrapTitle ); >
>> > >> // initialize variables > >> >
>> _N( Tickers = ParamStr( "Enter Tickers ( comma seperated > >
list )", "!! SET > >> TICKERS !!" ) ); > >> >
>> UsingRange = ParamToggle( "Display % Change Relative > >
To", "Previous Bar ( no > >> options to set )|First Bar Of Range (
set options below )", 1 ); > >> > >> UsingDates =
ParamToggle( "Set Range Using", "Visible Bars > > (default) /
Range > >> Markers (when set)|Dates Below" ); >
>> > >> StartDate = ParamDate( "Range Start Date", Date()
); > >> > >> EndDate = ParamDate( "Range End Date",
Date() ); > >> > >> PlotZero = ParamToggle( "Display
Zero Line?", "No|Yes", 1 ); > >> > >> Extend =
ParamToggle( "Extend Final Values/Zero Line Across All > >
Bars?", > >> "No|Yes" ); > >> > >>
ColorStart = Param( "Start Color Rotation At #", 34, 0, 55, 1 ); >
>> > >> ColorInc = Param( "Increment Color Rotation By", 1,
-55, 55, 1 ); > >> > >> GraphXSpace = Param(
"GraphXSpace", 5, -50, 100, 1 ); > >> > >> BarNumber =
BarIndex(); > >> > >> DateNumber = DateNum(); >
>> > >> TickerName = ""; > >> > >>
DataBase = GetDatabaseName(); > >> > >> // calculate
start and end of range > >> > >> if ( UsingDates ) //
use dates from param dialog > >> > >> { >
>> > >> StartBar = LastValue( ValueWhen( StartDate ==
DateNumber, > > BarNumber ) ); > >> > >>
EndBar = LastValue( ValueWhen( EndDate == DateNumber, > > BarNumber )
); > >> > >> } > >> > >> else
if ( BeginValue( BarNumber ) ) // use start and end of range > >
if start > >> marker set > >> > >>
{ > >> > >> StartBar = BeginValue( BarNumber
); > >> > >> EndBar = EndValue( BarNumber ); >
>> > >> } > >> > >> else // use
visible bars > >> > >> { > >> >
>> StartBar = Status( "firstvisiblebar" ); > >> >
>> EndBar = Status( "lastvisiblebar" ) - 1; > >> >
>> } > >> > >> // plot zero line >
>> > >> if ( PlotZero ) > >> > >>
{ > >> > >> if ( Extend ) > >> >
>> Zero = 0; > >> > >> else >
>> > >> { > >> > >> Zero =
Null; > >> > >> for ( Bar = StartBar; Bar <=
EndBar; Bar++ ) // fill bars inside > > range >
>> > >> Zero[Bar] = 0; > >> > >>
} > >> > >> Plot( Zero, "", colorBrown,
styleLine|styleNoLabel ); > >> > >> } >
>> > >> // assign ticker name and get close >
>> > >> for ( i = 0; ( Ticker = StrExtract( Tickers, i ) )
!= ""; i++ ) // > > extract > >> current
ticker > >> > >> { > >> > >>
if ( Ticker == "CURRENT" ) > >> > >> { >
>> > >> TickerName = Name(); > >> >
>> TickerClose = Close; > >> > >> Color =
colorWhite; > >> > >> } > >> >
>> else if ( Ticker == "INDUSTRY" ) > >> > >>
{ > >> > >> Ticker = GetBaseIndex(); >
>> > >> TickerName = IndustryID( 1 ) + " ( " + Ticker + "
)"; > >> > >> TickerClose = Foreign( Ticker, "close"
); > >> > >> Color = colorBrightGreen; >
>> > >> } > >> > >> else if ( Ticker
== "SECTOR" ) > >> > >> { > >> >
>> if ( DataBase == "Data-TC2005" ) > >> > >>
{ > >> > >> Ticker = StrLeft( GetBaseIndex(), 4 ) +
"0"; > >> > >> TickerName = SectorID( 1 ) + " ( " +
Ticker + " )"; > >> > >> TickerClose = Foreign(
Ticker, "close" ); > >> > >> } >
>> > >> else // database is QP2 > >> >
>> { > >> > >> Ticker = GetBaseIndex(); // plot
industry, need to create > > composite sectors >
>> > >> TickerName = SectorID( 1 ) + " ( " + Ticker + "
)"; > >> > >> TickerClose = Foreign( Ticker, "close"
); > >> > >> } > >> > >> Color
= colorGreen; > >> > >> } > >> >
>> else if ( Ticker == "MARKET" ) > >> > >>
{ > >> > >> Color = colorRed; > >> >
>> if ( DataBase == "Data-TC2005" ) > >> > >>
{ > >> > >> if ( MarketID() == 1 ) >
>> > >> { > >> > >> Ticker =
"nyse"; > >> > >> TickerName = MarketID(1); >
>> > >> TickerClose = Foreign( Ticker, "Close" ); >
>> > >> } > >> > >> else if (
MarketID() == 2 ) > >> > >> { > >> >
>> Ticker = "xax"; > >> > >> TickerName =
MarketID(1); > >> > >> TickerClose = Foreign( Ticker,
"close" ); > >> > >> } > >> >
>> else if ( MarketID() == 3 ) > >> > >>
{ > >> > >> Ticker = "compqx"; >
>> > >> TickerName = MarketID(1); > >> >
>> TickerClose = Foreign( Ticker, "close" ); > >> >
>> } > >> > >> } > >> >
>> else // database is QP2 > >> > >> { >
>> > >> if ( MarketID() == 1 ) > >> >
>> { > >> > >> Ticker = "!nya"; >
>> > >> TickerName = MarketID(1); > >> >
>> TickerClose = Foreign( Ticker, "Close" ); > >> >
>> } > >> > >> else if ( MarketID() == 2
) > >> > >> { > >> > >> Ticker
= "!xax"; > >> > >> TickerName = MarketID(1); >
>> > >> TickerClose = Foreign( Ticker, "close" ); >
>> > >> } > >> > >> else if (
MarketID() == 3 ) > >> > >> { > >> >
>> Ticker = "!comp"; > >> > >> TickerName =
MarketID(1); > >> > >> TickerClose = Foreign( Ticker,
"close" ); > >> > >> } > >> >
>> } > >> > >> } > >> >
>> else > >> > >> { > >> >
>> TickerName = Ticker; > >> > >> TickerClose =
Foreign( Ticker, "close" ); > >> > >> Color = ( ( (
ColorStart + ( i * ColorInc ) ) % 56 ) + 56 ) % 56; >
>> > >> } > >> > >> // calculate %
change > >> > >> TickerChg = Null; // initialize %
change array > >> > >> if ( UsingRange ) // calculate
% change relative to start of range > >> > >> for
( Bar = StartBar; Bar <= EndBar; Bar++ ) // fill bars inside > >
range > >> > >> TickerChg[Bar] = ( TickerClose[Bar] -
TickerClose[StartBar] ) / > >> TickerClose[StartBar] *
100; > >> > >> else > >> > >>
for ( Bar = StartBar; Bar <= EndBar; Bar++ ) // fill bars inside >
> range > >> > >> TickerChg[Bar] = (
TickerClose[Bar] - TickerClose[Bar-1] ) / > >> TickerClose[Bar-1]
* 100; > >> > >> if ( TickerName == "!! SET TICKERS
!!" ) > >> > >> Title = EncodeColor( colorRed ) +
Tickername; > >> > >> else > >> >
>> Plot( TickerChg, TickerName, Color, styleLine ); >
>> > >> if ( Extend ) > >> > >>
Plot( TickerChg[EndBar], "", Color, styleLine ); > >> >
>> } > >> > >> ----- Original Message -----
> >> From: "gillesdeprez" <gillesdeprez@> > >>
To: <amibroker@xxxxxxxxxxxxxxx> > >> Sent: Thursday, May 25,
2006 12:27 PM > >> Subject: [amibroker] Re: Index comparison:
Steve Dugas > >> > >> > >> > Hi Steve,
thanks for your answer...But attachments are not stored > >>
> anymore on Yahoo groups...Or did I miss something? I checked
the > > AB > >> > library, and the file section of
this group, unsuccessfully... > >> > TIA, friendly, >
>> > Gilles > >> > > >> > >
>> > > >> > > >> > > >>
> --- In amibroker@xxxxxxxxxxxxxxx, "Steve Dugas" <sjdugas@>
wrote: > >> >> > >> >> Here is a
pretty flexible relative performance tool. Range > >> >
defaults to > >> >> visible bars but you can change it with
range markers or by > >> > setting dates in > >>
>> the Params. Also, ticker list accepts keywords like CURRENT, >
>> > INDUSTRY, > >> >> etc.(you may need to edit
the tickers associated with the > > keywords > >> >
depending > >> >> on your data provider). Feel free to ask
if you have any > > questions. > >> >> >
>> >> Steve > >> >> > >> >>
----- Original Message ----- > >> >> From: "gillesdeprez"
<gillesdeprez@> > >> >> To:
<amibroker@xxxxxxxxxxxxxxx> > >> >> Sent: Tuesday, May
23, 2006 9:21 AM > >> >> Subject: [amibroker] Index
comparison > >> >> > >> >> >
>> >> > Hi all! > >> >> > Does one of you
know if there is any possibility to compare > >> > index
with > >> >> > AB? I mean, compare for example the djia
with the BEL20, from > > a > >> >> >
starting point let's say 1st january 2004, where both index > >>
> would be > >> >> > at the same level for this
date? > >> >> > TIA, be happy! > >> >>
> Gilles > >> >> > > >> >>
> > >> >> > > >> >> > >
>> >> > > >> >> > > >>
>> > > >> >> > 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 > >> >> > >
>> >> > > >> >> > > >>
>> > > >> >> > > >> >>
> > >> >> > > >> >> > >
>> >> > >> > > >> > > >>
> > >> > > >> > > >> > >
>> > > >> > > >> > 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 > >> > > >> > > >>
> > >> > > >> > > >> > >
>> > > >> > > > > > > >
> > > > > > > > > > > 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 > > >
> > > > > > > > > > > >
> >
No virus found in this incoming message. Checked by AVG Free
Edition. Version: 7.1.394 / Virus Database: 268.7.2/349 - Release Date:
05/26/06
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
SPONSORED LINKS
YAHOO! GROUPS LINKS
|