Hello,

I changed each LVB line ( 2 ) locations  to the following.

lvb =BarCount-1;//Status( "lastvisiblebar" );

It now plots no matter with blank bars to the right...

  ----- Original Message ----- 
  From: Bisto 
  To: [email protected] 
  Sent: Tuesday, November 17, 2009 4:36 PM
  Subject: [amibroker] Re: Is it possible to divide an indicator pane into 
several zones?


    
  You are right!

  I don't use blank bars at the right indeed, so I never noticed it before

  if you set them at 0 it works

  I will appreciate if you'll keep me informed if you change the code to solve 
this bug

  Bisto

  --- In [email protected], "Anthony Faragasso" <ajf1...@...> wrote:
  >
  > Hello,
  > 
  > I believe it is because if you have blank bars to the right of the last 
visible price...it produces error....
  > 
  > 
  > ----- Original Message ----- 
  > From: Bisto 
  > To: [email protected] 
  > Sent: Tuesday, November 17, 2009 4:05 PM
  > Subject: [amibroker] Re: Is it possible to divide an indicator pane into 
several zones?
  > 
  > 
  > 
  > I post it again with copy & paste from AB where it's running ok... who 
knows?
  > 
  > function MinZone( array, PercZoneLow, PercZoneHigh )
  > {
  > fvb = Status( "firstvisiblebar" );
  > lvb = Status( "lastvisiblebar" );
  > HHVMax = -100000000;
  > LLVMin = 100000000;
  > 
  > for ( i = fvb; i <= Lvb; i++ )
  > {
  > HHVMax = Max( array[ i ], HHVMax );
  > LLVMin = Min( array[ i ], LLVMin );
  > }
  > 
  > MinZ = ( PercZoneLow * HHVMax - PercZoneHigh * LLVMin ) / ( PercZoneLow - 
PercZoneHigh );
  > 
  > return MinZ ;
  > }
  > 
  > function MaxZone( array, PercZoneLow, PercZoneHigh )
  > {
  > fvb = Status( "firstvisiblebar" );
  > lvb = Status( "lastvisiblebar" );
  > HHVMax = -100000000;
  > LLVMin = 100000000;
  > 
  > for ( i = fvb; i <= Lvb; i++ )
  > {
  > HHVMax = Max( array[ i ], HHVMax );
  > LLVMin = Min( array[ i ], LLVMin );
  > }
  > 
  > MinZ = ( PercZoneLow * HHVMax - PercZoneHigh * LLVMin ) / ( PercZoneLow - 
PercZoneHigh );
  > 
  > MaxZ = ( LLVMin - MinZ ) / PercZoneLow + MinZ;
  > 
  > return MaxZ ;
  > }
  > 
  > // example: use the above functions to define min and max values of 
styleownscale
  > 
  > // please note that axes type has to be linear (logartimic type requests 
little modification in the code)
  > // please also note that plot style has to be ALSO styleOwnScale
  > 
  > PercZoneLow1 = Param("PercZoneLow1",0.3,0.000001,1,0.05) ;
  > PercZoneHigh1 = Param("PercZoneHigh1 ",1,0.000001,1,0.05) ;
  > 
  > Plot( C, "C in zone", colorBlack, styleCandle | styleOwnScale, 
MinZone(C,PercZoneLow1,PercZoneHigh1), MaxZone(C,PercZoneLow1,PercZoneHigh1));
  > 
  > PercZoneLow2 = Param("PercZoneLow2",0.00001,0.000001,1,0.05) ;
  > PercZoneHigh2 = PercZoneLow1 ;
  > 
  > // in case of time consuming array avoid to calculate 3 times
  > arraylongtobecalculated = al = ATR(14);
  > 
  > Plot( al, "ATR(14) in zone", colorRed, styleLine | styleOwnScale, 
MinZone(al,PercZoneLow2,PercZoneHigh2), MaxZone(al,PercZoneLow2,PercZoneHigh2));
  > 
  > --- In [email protected], "Anthony Faragasso" <ajf1111@> wrote:
  > >
  > > Hello,
  > > 
  > > Formula returns Subscript out of range error..
  > >
  >



  

Reply via email to