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

[amibroker] Heikin-Ashi charts



PureBytes Links

Trading Reference Links

Dave,
There is no problem to hide any last d bars of OHLC or any other 
indicator.
[d should be the same for OHLC  but, it may be different for each 
indicator ]

// Definition of Hide() function
function Hide(Var,d)
{ 
newvar=0;
newvar=IIf(Cum(1)<=LastValue(Cum(1))-d,Var,Null);
return newvar;
}
//Applications
p=5;
O1=Hide(O,p);
H1=Hide(H,p);
L1=Hide(L,p);
C1=Hide(C,p);
Plot(Hide(MACD(),2*p),"MACD",colorRed,styleLeftAxisScale);
Plot(Hide(Signal(),2*p-1),"SIGNAL",colorBlue,styleLeftAxisScale);

Dimitris Tsokakis
--- In amibroker@xxxxxxxxxxxxxxx, "Dave Merrill" <dmerrill@xxxx> 
wrote:
> Thanks for your reply Graham, but as I mentioned, I've tried that, 
and it
> has problems.
> 
> Try the more complete setup below, with a couple of random 
indicators added.
> Everything's fine with nothing blanked. Blank out one bar, and the 
price
> plot still looks fine, but MACD and RSI spike to zero on the null 
price
> bars, causing them to rescale, the MACD illegibly. Blank a few more 
bars,
> past a SAR cross, and SAR does the same thing.
> 
> For another approach, comment out the BlankAll() line, and re-enable
> BlankAll2(), on the next line. This shifts everything to the 
right, "off the
> page", and then back. I tried this because that seemed very 
analgous to
> those bars really not existing. Turns out that AB seems to treat 
them as
> missing data (makes sense), and uses the existing last value for 
the missing
> bars.
> 
> Is there a way to work around all this? Of course, blank the 
indicators too.
> But that means you have to recode every indicator on any pane you 
want to do
> this with.
> 
> I'd much rather just drop in a single function to adjust the price 
bars, and
> have everything just work. But setting things to null doesn't 
really do it.
> Any other ideas on a good blanking mechanism?
> 
> What I'd really like is a built in feature that handled this 
automatically,
> including blanking BuyPrice, ShortPrice etc, and any new built in 
variables
> as they get added.
> 
> Clearer?
> 
> Dave
> 
> ---------------
> global gBI, gBarsBlanked;
> 
> gBarsBlanked = Param( "bars", 0, 100, 0, -1);
> gBI = BarIndex();
> 
> function IsBlanked() {
>  return gBI >= (BarCount - gBarsBlanked);
> }
> function Blank(array) {
>  x = IIf(IsBlanked(), Null, array);
>  return x;
> }
> function Blank2(array) {
>  x = Ref(Ref(array, -gBarsBlanked), gBarsBlanked);
>  return x;
> }
> function BlankAll() {
>  O = Blank(O); H = Blank(H); L = Blank(L); C = Blank(C);
>  Avg = Blank(Avg); V = Blank(V);
> }
> function BlankAll2() {
>  O = Blank2(O); H = Blank2(H); L = Blank2(L); C = Blank2(C);
>  Avg = Blank2(Avg); V = Blank2(V);
> }
> function OHLCTitle() {
>  return
>   Interval(2) + " " + Date()
>   + " Open = " + O
>   + ", High = " + H
>   + ", Low = " + L
>   + ", Close";
> }
> 
> BlankAll();
> //BlankAll2();
> 
> GraphXSpace = 5;
> Plot(C, OHLCTitle(), colorDefault, styleCandle);
> Plot(V, "Volume", colorBlue, styleHistogram+styleOwnScale, 0,
> LastValue(Highest(V)) * 2);
> //Plot(IIf(IsBlanked(), 1, 0), "", colorLightGrey,
> styleArea+styleOwnScale+styleNoLabel, 0, .5);
> 
> m = MACD(); r = RSI(); s = SAR();
> 
> Plot(m, "MACD", colorBlue, styleOwnScale);
> Plot(r, "RSI", colorRed, styleOwnScale);
> Plot(s, "SAR", colorYellow, styleDots+styleNoLine);
> /*
> Plot(Blank(m), "MACD", colorBlue, styleOwnScale);
> Plot(Blank(r), "RSI", colorRed, styleOwnScale);
> Plot(Blank(s), "SAR", colorYellow, styleDots+styleNoLine);
> */
> 
> ---------------
>   Try this as an example
> 
>   x = Param( "bars", 1, 1, 10, 1);
> 
>   Plot( IIf( BarIndex()<=BarCount-x, C, Null), "", colorBlack, 
styleCandle);
> 
>   Cheers,
>   Graham
>   http://e-wire.net.au/~eb_kavan/
> 
>   -----Original Message-----
>   Sometimes when I'm working on an indicator, or training my eye, 
I'd like
> to
>   blank out a Param-able number of bars at the end. Not set them to 
zero,
> but
>   make it like they haven't happened and don't exist yet. I don't 
want to
> see
>   them, and I don't want any indicators to be effected by them, 
kind of a
>   controllable curtain over the end of the past.
> 
>   Does anyone have a good way to do this?
> 
>   Visually, setting the end bars to the background color works 
fine, but
>   preventing indicators from seeing them is harder. Setting them to 
null or
>   zero isn't the same thing; some indicators spike to infinity, or 
do
>   something else besides just cut off there, the way they do at the 
end of
> all existing bars.
> 
>   I've tried nested positive and negative Ref functions, pushing 
the end
> bars
>   "off the map", then moving them back on, but that seems to leave 
the
>   effected bars at the value of the last unaffected bar.
> 
>   Any ideas? If not, would anyone else like to see a feature like 
this built
> into AB?
> 
>   Dave Merrill



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/GHeqlB/TM
--------------------------------------------------------------------~-> 

Check AmiBroker web page at:
http://www.amibroker.com/

Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
Yahoo! Groups Links

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

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