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

[amibroker] Index comparison: Steve Dugas



PureBytes Links

Trading Reference Links

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@xxx> 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@xxx>
> 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
> >
> >
> >
> >
> >
> >
> >
>







------------------------ Yahoo! Groups Sponsor --------------------~--> 
Get to your groups with one click. Know instantly when new email arrives
http://us.click.yahoo.com/.7bhrC/MGxNAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

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

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

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