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

[amibroker] Re: Is it possible to divide an indicator pane into several zones?



PureBytes Links

Trading Reference Links

Hello Joris,

> 1. You compute the HHVMax (C)  and LLVMin(C) rather than HHVMax (H)  and
> LLVMin(L), which can cause some overlap

True. I used C just as an example but if the need is to plot price your comment is perfect

 
> 2. In the presence of RHS blank bars an error message appears.
> 

True, as discussed with Faragasso


> 3. Since AB 5.25 (I believe) there are two undocumented functions
> HighestVisibleValue() and LowestVisibleValue();

this helped a lot (I missed those new functions, Thanks to Tomasz) solving:

a) the blank bars bugs
b) the case if the indicator is still EMPTY as at the very first bars

I still prefer the fuction approach because I believe that it's more comfortable, but, of course, it's a personal approach

here below the code revised 

thank you very much

Bisto


function MinZone( array, PercZoneLow, PercZoneHigh )
{
    HHVMax = HighestVisibleValue( array );
    LLVMin = LowestVisibleValue( array );

    MinZ = ( PercZoneLow * HHVMax - PercZoneHigh * LLVMin ) / ( PercZoneLow - PercZoneHigh );

    return MinZ ;
}

function MaxZone( array, PercZoneLow, PercZoneHigh )
{
    HHVMax = HighestVisibleValue( array );
    LLVMin = LowestVisibleValue( array );

    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));






------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

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

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@xxxxxxxxxxxxxxx 
    amibroker-fullfeatured@xxxxxxxxxxxxxxx

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