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

[amibroker] Re: Timeframe functions



PureBytes Links

Trading Reference Links

Ooops! YHOO is eating my lines !!See addition below.

--- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" <TSOKAKIS@xxxx> 
wrote:
> 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);

PlotOHLC(O1,H1,L1,C1,"c",1,styleCandle);

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