Errors

 
 //+------------------------------------------------------------------+ 
 //|                                                      ProjectName | 
 //|                                      Copyright 2012, CompanyName | 
 //|                                       http://www.companyname.net | 
 //+------------------------------------------------------------------+ 
 #property   strict 
 #property  version "1.1" 

 #property  indicator_chart_window 
 #property  indicator_buffers 6 
 #property  indicator_color1 Chartreuse
 #property  indicator_color2 Orange
 #property  indicator_color3 Chartreuse
 #property  indicator_color4 Orange
 #property  indicator_color5 Chartreuse
 #property  indicator_color6 Orange
 //---- input parameters 
 extern int     Length= 20 ;       // Bollinger Bands Period 
 extern double     Deviation= 2 ;     // Deviation 
 extern double MoneyRisk= 1.00 ; // Offset Factor 
 extern int     Signal= 1 ;       // Display signals mode: 1-Signals & Stops; 0-only Stops; 2-only Signals; 
 extern int     Line= 1 ;         // Display line mode: 0-no,1-yes   
 extern int     Nbars= 1000 ;
 //---- indicator buffers 
 double UpTrendBuffer[];
 double DownTrendBuffer[];
 double UpTrendSignal[];
 double DownTrendSignal[];
 double UpTrendLine[];
 double DownTrendLine[];
 //+------------------------------------------------------------------+ 
 //| Custom indicator initialization function                         | 
 //+------------------------------------------------------------------+ 
 int init()
  {
   string short_name;
 //---- indicator line 

   SetIndexBuffer ( 0 ,UpTrendBuffer);
   SetIndexBuffer ( 1 ,DownTrendBuffer);
   SetIndexBuffer ( 2 ,UpTrendSignal);
   SetIndexBuffer ( 3 ,DownTrendSignal);
   SetIndexBuffer ( 4 ,UpTrendLine);
   SetIndexBuffer ( 5 ,DownTrendLine);
   SetIndexStyle ( 0 , DRAW_ARROW );
   SetIndexStyle ( 1 , DRAW_ARROW );
   SetIndexStyle ( 2 , DRAW_ARROW );
   SetIndexStyle ( 3 , DRAW_ARROW );
   SetIndexStyle ( 4 , DRAW_LINE );
   SetIndexStyle ( 5 , DRAW_LINE );
   SetIndexArrow ( 0 , 159 );
   SetIndexArrow ( 1 , 159 );
   SetIndexArrow ( 2 , 108 );
   SetIndexArrow ( 3 , 108 );
   IndicatorDigits ( MarketInfo ( Symbol (), MODE_DIGITS ));
 //---- name for DataWindow and indicator subwindow label 
   short_name= "BBands Stop(" +Length+ "," +Deviation+ ")" ;
   IndicatorShortName (short_name);
   SetIndexLabel ( 0 , "UpTrend Stop" );
   SetIndexLabel ( 1 , "DownTrend Stop" );
   SetIndexLabel ( 2 , "UpTrend Signal" );
   SetIndexLabel ( 3 , "DownTrend Signal" );
   SetIndexLabel ( 4 , "UpTrend Line" );
   SetIndexLabel ( 5 , "DownTrend Line" );
 //---- 
   SetIndexDrawBegin ( 0 ,Length);
   SetIndexDrawBegin ( 1 ,Length);
   SetIndexDrawBegin ( 2 ,Length);
   SetIndexDrawBegin ( 3 ,Length);
   SetIndexDrawBegin ( 4 ,Length);
   SetIndexDrawBegin ( 5 ,Length);
 //---- 
   return ( 0 );
  }
 //+------------------------------------------------------------------+ 
 //| Bollinger Bands_Stop_v1                                             | 
 //+------------------------------------------------------------------+ 
 int start()
  {
   int     i,shift,trend;
   double smax[ 25000 ],smin[ 25000 ],bsmax[ 25000 ],bsmin[ 25000 ];

   for (shift=Nbars;shift>= 0 ;shift--)
     {
      UpTrendBuffer[shift]= 0 ;
      DownTrendBuffer[shift]= 0 ;
      UpTrendSignal[shift]= 0 ;
      DownTrendSignal[shift]= 0 ;
      UpTrendLine[shift]= EMPTY_VALUE ;
      DownTrendLine[shift]= EMPTY_VALUE ;
     }

   for (shift=Nbars-Length- 1 ;shift>= 0 ;shift--)
     {
      smax[shift]= iBands ( NULL , 0 ,Length,Deviation, 0 , PRICE_CLOSE , MODE_UPPER ,shift);
      smin[shift]= iBands ( NULL , 0 ,Length,Deviation, 0 , PRICE_CLOSE , MODE_LOWER ,shift);

       if ( Close [shift]>smax[shift+ 1 ]) trend= 1 ;
       if ( Close [shift]<smin[shift+ 1 ]) trend=- 1 ;

       if (trend> 0 && smin[shift]<smin[shift+ 1 ]) smin[shift]=smin[shift+ 1 ];
       if (trend< 0 && smax[shift]>smax[shift+ 1 ]) smax[shift]=smax[shift+ 1 ];

      bsmax[shift]=smax[shift]+ 0.5 *(MoneyRisk- 1 )*(smax[shift]-smin[shift]);
      bsmin[shift]=smin[shift]- 0.5 *(MoneyRisk- 1 )*(smax[shift]-smin[shift]);

       if (trend> 0 && bsmin[shift]<bsmin[shift+ 1 ]) bsmin[shift]=bsmin[shift+ 1 ];
       if (trend< 0 && bsmax[shift]>bsmax[shift+ 1 ]) bsmax[shift]=bsmax[shift+ 1 ];

       if (trend> 0 )
        {
         if (Signal> 0 && UpTrendBuffer[shift+ 1 ]==- 1.0 )
           {
            UpTrendSignal[shift]=bsmin[shift];
            UpTrendBuffer[shift]=bsmin[shift];
             if (Line> 0 ) UpTrendLine[shift]=bsmin[shift];
           }
         else 
           {
            UpTrendBuffer[shift]=bsmin[shift];
             if (Line> 0 ) UpTrendLine[shift]=bsmin[shift];
            UpTrendSignal[shift]=- 1 ;
           }
         if (Signal== 2 ) UpTrendBuffer[shift]= 0 ;
         DownTrendSignal[shift]=- 1 ;
         DownTrendBuffer[shift]=- 1.0 ;
         DownTrendLine[shift]= EMPTY_VALUE ;
        }
       if (trend< 0 )
        {
         if (Signal> 0 && DownTrendBuffer[shift+ 1 ]==- 1.0 )
           {
            DownTrendSignal[shift]=bsmax[shift];
            DownTrendBuffer[shift]=bsmax[shift];
             if (Line> 0 ) DownTrendLine[shift]=bsmax[shift];
           }
         else 
           {
            DownTrendBuffer[shift]=bsmax[shift];
             if (Line> 0 )DownTrendLine[shift]=bsmax[shift];
            DownTrendSignal[shift]=- 1 ;
           }
         if (Signal== 2 ) DownTrendBuffer[shift]= 0 ;
         UpTrendSignal[shift]=- 1 ;
         UpTrendBuffer[shift]=- 1.0 ;
         UpTrendLine[shift]= EMPTY_VALUE ;
        }

     }
   return ( 0 );
  }
 //+------------------------------------------------------------------+ 
GBPUSD, Monthly: array out of range (81,17), what kind of error, who knows?

 
 //+------------------------------------------------------------------+ 
 //|                                                      ProjectName | 
 //|                                      Copyright 2012, CompanyName | 
 //|                                       http://www.companyname.net | 
 //+------------------------------------------------------------------+ 
 #property  strict 
 #property  version "1.6" 
 #property   indicator_buffers 500 


 #property  indicator_separate_window 
 #property  indicator_buffers 3 
 #property  indicator_color1 LimeGreen
 #property  indicator_color2 Red
 #property  indicator_color3 Gray
 #property  indicator_maximum 50 
 #property  indicator_minimum - 50 
 #property  indicator_level1 0 
 #property  indicator_level2 15 
 #property  indicator_level3 - 15 
 //---- input parameters 

 //---- buffers 

 double WU[],WD[],W[],Zero[];
 int Ssw= 0 ,Bsw= 0 ;
 //+------------------------------------------------------------------+ 
 //| Custom indicator initialization function                         | 
 //+------------------------------------------------------------------+ 
 int init()
  {
   string short_name;
 //---- 3 additional buffers are used for counting. 
   IndicatorBuffers ( 4 );
   SetIndexBuffer ( 3 ,W);
 //---- indicator lines 
   SetIndexStyle ( 0 , DRAW_HISTOGRAM , 0 , 3 );
   SetIndexBuffer ( 0 ,WU);
   SetIndexStyle ( 1 , DRAW_HISTOGRAM , 0 , 3 );
   SetIndexBuffer ( 1 ,WD);
   SetIndexStyle ( 2 , DRAW_LINE , 0 , 2 );
   SetIndexBuffer ( 2 ,Zero);
 //---- name for DataWindow and indicator subwindow label 
   short_name= "GoodWill With Alert" ;
   IndicatorShortName (short_name);

 //---- indicator lines 

 //---- 
   SetIndexDrawBegin ( 0 , 40 );
 //---- 
   return ( 0 );
  }
 //+------------------------------------------------------------------+ 
 //| BSPVolume                                        
 //+------------------------------------------------------------------+ 
 int start()
  {
   int     i,k,counted_bars= IndicatorCounted ();

   if ( Bars <= 40 ) return ( 0 );
 //---- initial zero 
 /* 
  if(counted_bars<1)
     {
      for(i=1;i<=CCIPeriod;i++) CCIBuffer[Bars-i]=0.0;
      for(i=1;i<=CCIPeriod;i++) DevBuffer[Bars-i]=0.0;
      for(i=1;i<=CCIPeriod;i++) MovBuffer[Bars-i]=0.0;
     }
*/ 
 //---- last counted bar will be recounted 
   int limit= Bars -counted_bars;
   if (counted_bars> 0 ) limit++; else if (limit> 300 ) limit= 300 ;


   for (i= 0 ; i<limit; i++)
      W[i]= 50 +(- 100 )*( High [ Highest ( NULL , 0 , MODE_HIGH , 40 ,i)]- Close [i])/( High [ Highest ( NULL , 0 , MODE_HIGH , 40 ,i)]- Low [ Lowest ( NULL , 0 , MODE_LOW , 40 ,i)]);

   for (i= 0 ; i<limit; i++) Zero[i]= 0 ;

   for (i= 0 ; i<limit; i++)
     {


       if (W[i]< 0 && W[i+ 1 ]> 0 && i< 2 )
        {
         Ssw= 1 ;
         Bsw= 0 ;
        }

       if (W[i]> 0 && W[i+ 1 ]< 0 && i< 2 )
        {
         Ssw= 0 ;
         Bsw= 1 ;
        }

       if (Bsw== 1 && i< 2 && W[i]>= 15 )
        {
         Ssw= 0 ;
         Bsw= 0 ;
         Alert ( Symbol (), " " , Period (), " GoodWill Says B U Y" );
        }
       if (Ssw== 1 && i< 2 && W[i]<=- 15 )
        {
         Ssw= 0 ;
         Bsw= 0 ;
         Alert ( Symbol (), " " , Period (), " GoodWill Says S E L L" );
        }
       if (Ssw== 1 ) Comment ( "SELL SWITCH ON" , "i " ,i, "W[i] " ,W[i], "W[i+1] " ,W[i+ 1 ]);
       if (Bsw== 1 ) Comment ( "BUY SWITCH ON" , "i " ,i, "W[i] " ,W[i], "W[i+1] " ,W[i+ 1 ]);
       if (Bsw== 0 && Ssw== 0 ) Comment ( "NO SWITCH ON" , "i " ,i, "W[i] " ,W[i], "W[i+1] " ,W[i+ 1 ]);


       if (W[i]> 0 )
        {WU[i]=W[i];WD[i]= 0 ;}

       else if (W[i]< 0 )
        {WU[i]= 0 ;WD[i]=W[i];}

       else {WU[i]= 0 ;WD[i]= 0 ;}
     }
   return ( 0 );

  }
 //+------------------------------------------------------------------+ 
GBPUSD, Monthly: array out of range (91,21), I also have this, please help who knows?

 

The line numbers and positions are specified with the error.

81,17 line 81, position 17. Jeffrey

91,21 line 91, position 21 Melvin.

It should not be hard to find out where it goes off scale.

Reason: