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