Hi Paul,
in your case is definitely better to do as already suggest
by the other guys but, according to me, sometimes it could be useful to divide
one pane in two or more zones. the reason could be:
1) to share
variables without using Static variables (to keep AFL more simple)
2)
to have zones syncronized in a very fluid way (panes that share static
variables are, at the best, syncronized every 1s setting
RequestTimedRefresh( 1 ); )
I usually do it using the following
functions to calculate min and max value to be used in plot with
styleownscale
I hope it could
help
bye
Bisto
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 amibroker@xxxxxxxxxps.com,
"polomorabe" <polomora@xx.> wrote:
>
> Hello,
>
> I would like to plot four symbols in four different zones of an
indicator pane. So the first 25% of the pane would be used for the first
symbol, the next 25% for the second symbol, etc.
>
> I don't
need to display scaling on the vertical axis.
>
> Thanks,
>
Paul
>