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

Re: [amibroker] RE: Sigma Bands



PureBytes Links

Trading Reference Links

Thanks,
Martin

--- In amibroker@xxxxxxxxxxxxxxx, "Steve Almond" <steve2@xxxx> wrote:
> Check the line wraps when you paste. Two line of code break in the 
middle.
> 
> Steve
> 
> ----- Original Message ----- 
> From: "marmal417" <marmal@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Monday, February 16, 2004 9:43 AM
> Subject: [amibroker] Re: TD Lines
> 
> 
> > Hi,
> >
> > I tried pasting this into a new (empty) indicator in the indicator
> > builder but got an error message. Does it work for you?
> >
> > //Martin
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS" 
<TSOKAKIS@xxxx>
> > wrote:
> > > It would be interesting to see the historical TDlines.
> > > Replace LastValue by SelectedValue, arrange how many bars ahead 
and
> > > here it is:
> > > Plot(C,"",colorBlack,styleBar);
> > > pivothigh = Ref(H,-1)<H AND H>Ref(H,1);
> > > pivotlow = Ref(L,-1)>L AND L<Ref(L,1);
> > > x1=SelectedValue(ValueWhen(pivotlow,Cum(1)-1,1));
> > > y1=SelectedValue(ValueWhen(pivotlow,L,1));
> > > x0=SelectedValue(ValueWhen(pivotlow AND L<y1,Cum(1)-1,1));
> > > y0=SelectedValue(ValueWhen(pivotlow AND L<y1,L,1));
> > > L1=LastValue(BarIndex());
> > > CondL=LastValue(y1==Ref(Lowest(L),-(L1-x1)));
> > > x3=SelectedValue(ValueWhen(pivothigh,Cum(1)-1,1));
> > > y3=SelectedValue(ValueWhen(pivothigh,H,1));
> > > x2=SelectedValue(ValueWhen(pivothigh AND H>y3,Cum(1)-1,1));
> > > y2=SelectedValue(ValueWhen(pivothigh AND H>y3,H,1));
> > > CondH=LastValue(y3==Ref(Highest(H),-(L1-x3)));
> > > supplyline=LineArray(x2,y2,x3,y3,1);
> > > ahead=20;
> > > Plot(IIf(Cum(1)<x3+ahead,supplyline,-1e10),"",IIf(CondH!
> > > =1,colorRed,0),styleLine|styleThick|
> > > styleNoRescale|styleNoLabel);
> > > demandLine=LineArray(x0,y0,x1,y1,1);
> > > Plot(IIf(Cum(1)<x1+ahead,demandLine,-1e10),"",IIf(CondL!
> > > =1,colorBlue,0),styleLine|
> > > styleThick|styleNoRescale|styleNoLabel);
> > > PlotShapes((Cum(1)-1==x0 OR Cum(1)-1==x1)
> > > *shapeSmallCircle,colorBlue,0,L);
> > > PlotShapes((Cross(Cum(C<demandLine AND Cum(1)-1>x1),0))
> > > *shapeDownArrow,colorRed,0,H);
> > > PlotShapes((Cum(1)-1==x2 OR Cum(1)-1==x3)
> > > *shapeSmallCircle,colorRed,0,H,12);
> > > PlotShapes((Cross(Cum(C>supplyline AND Cum(1)-1>x3),0))
> > > *shapeUpArrow,colorGreen,0,L);
> > > GraphXSpace=4;
> > >
> > > Hit some date of the past to see the TDlines fomation, it is 
quite
> > > educative.
> > > Dimitris Tsokakis
> > > --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS"
> > <TSOKAKIS@xxxx>
> > > wrote:
> > > > We could ask x0!=0 and x3!=0, but it is possible for the very
> > first
> > > > bar of your data to be the Lowest [Highest].
> > > > So,
> > > > The 2nd trendline point should not be the Lowest L
[respectively
> > the
> > > > Highest H] up to this bar.
> > > > The pivot bar occurred L1-x1 bars ago [respectively L1-x3]
> > > > L1=LastValue(BarIndex());
> > > > CondL=LastValue(y1==Ref(Lowest(L),-(L1-x1)));
> > > > CondH=LastValue(y3==Ref(Highest(H),-(L1-x3)));
> > > > The above conditions should be false in order to have 
a "regular"
> > > > line.
> > > > One idea is to paint the lines with the ground color.
> > > >
> > > >  Plot(C,"",colorBlack,styleBar);
> > > > pivothigh = Ref(H,-1)<H AND H>Ref(H,1);
> > > > pivotlow = Ref(L,-1)>L AND L<Ref(L,1);
> > > >
> > > > x1=LastValue(ValueWhen(pivotlow,Cum(1)-1,1));
> > > > y1=LastValue(ValueWhen(pivotlow,L,1));
> > > > x0=LastValue(ValueWhen(pivotlow AND L<y1,Cum(1)-1,1));
> > > > y0=LastValue(ValueWhen(pivotlow AND L<y1,L,1));
> > > > L1=LastValue(BarIndex());
> > > > CondL=LastValue(y1==Ref(Lowest(L),-(L1-x1)));
> > > >
> > > > x3=LastValue(ValueWhen(pivothigh,Cum(1)-1,1));
> > > > y3=LastValue(ValueWhen(pivothigh,H,1));
> > > > x2=LastValue(ValueWhen(pivothigh AND H>y3,Cum(1)-1,1));
> > > > y2=LastValue(ValueWhen(pivothigh AND H>y3,H,1));
> > > >
> > > > CondH=LastValue(y3==Ref(Highest(H),-(L1-x3)));
> > > >
> > > > supplyline=LineArray(x2,y2,x3,y3,1);
> > > > Plot(supplyline,"",IIf(CondH!
=1,colorRed,0),styleLine|styleThick|
> > > > styleNoRescale|styleNoLabel);
> > > > demandLine=LineArray(x0,y0,x1,y1,1);
> > > > Plot(demandLine,"",IIf(CondL!=1,colorBlue,0),styleLine|
> > > > styleThick|styleNoRescale|styleNoLabel);
> > > >
> > > > PlotShapes((Cum(1)-1==x0 OR Cum(1)-1==x1)
> > > > *shapeSmallCircle,colorBlue,0,L);
> > > > PlotShapes((Cross(Cum(C<demandLine AND Cum(1)-1>x1),0))
> > > > *shapeDownArrow,colorRed,0,H);
> > > > PlotShapes((Cum(1)-1==x2 OR Cum(1)-1==x3)
> > > > *shapeSmallCircle,colorRed,0,H,12);
> > > > PlotShapes((Cross(Cum(C>supplyline AND Cum(1)-1>x3),0))
> > > > *shapeUpArrow,colorGreen,0,L);
> > > >
> > > > Title= Name()+" "+Date()+EncodeColor(colorBlack) +" Open-
> > "+WriteVal
> > > > (Open)+" Hi-"+WriteVal(High)+" Lo-"+WriteVal(Low)+" Close-
> > "+WriteVal
> > > > (Close) +EncodeColor(colorBlue)+WriteVal((y1-y0)/(x1-x0)
+LastValue
> > > > (DEMAndline))+EncodeColor(colorRed)+WriteVal((y3-y2)/(x3-x2)
> > > +LastValue
> > > > (supplyline));
> > > > GraphXSpace=4;
> > > >
> > > > You may arrange also not to plot the shape when CondL, CondH 
are
> > > true
> > > > [they are at the very first bar]
> > > >
> > > > Dimitris Tsokakis
> > > >
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "marmal417" <marmal@xxxx> 
wrote:
> > > > > Hello Dimitris,
> > > > >
> > > > > I know it's like that. My question is if the code can be
> > modified
> > > > to
> > > > > draw no line if there are no valid pivot points to draw the
> > line
> > > > from?
> > > > >
> > > > > //Martin
> > > > > --- In amibroker@xxxxxxxxxxxxxxx, "DIMITRIS TSOKAKIS"
> > > > <TSOKAKIS@xxxx>
> > > > > wrote:
> > > > > > Nice code.
> > > > > > You ask although
> > > > > > x0=LastValue(ValueWhen(pivotlow AND L<y1,Cum(1)-1,1));
> > > > > > and, respectively
> > > > > > x2=LastValue(ValueWhen(pivothigh AND H>y3,Cum(1)-1,1));
> > > > > > In this way, some first points may go back more than 2 
years.
> > > > > > In the specific case when the recent pivothigh is the 
highest
> > > in
> > > > > the
> > > > > > available stock history the trendline will not be defined.
> > The
> > > > same
> > > > > > when the recent pivotlow is the lowest [many N100 stocks
> > would
> > > be
> > > > > > without support line back in Oct2002...].
> > > > > > Besides that, if the recent pivothigh is the highest, the
> > > > > resistance
> > > > > > line has a strange beginning.Try for example to import is
> > some
> > > > > > database APOL from Feb2001 till now to see what I mean.
> > > > > > Dimitris Tsokakis
> > > > > > --- In amibroker@xxxxxxxxxxxxxxx, "marmal417" 
<marmal@xxxx>
> > > wrote:
> > > > > > > Yes, that's it! Now it automatically draws the most 
recent
> > > > demand
> > > > > > > line. I took the liberty to add a supply line by 
mirroring
> > > your
> > > > > > code
> > > > > > > and making the small changes necessary, but I never
> > > understood
> > > > > what
> > > > > > I
> > > > > > > was doing :-) I noticed a weird thing when this 
indicator
> > is
> > > > > > applied
> > > > > > > to a stock making a new all time high. If the most 
recent
> > > > > pivothigh
> > > > > > > is higher than any other pivothigh in the database then 
a
> > > line
> > > > is
> > > > > > > drawn from the bottom in the middle of the chart through
> > the
> > > > most
> > > > > > > recent pivot high. It looks really strange. Can the 
code be
> > > > > > modified
> > > > > > > to draw no supplyline when there are no higher pivots to
> > draw
> > > > the
> > > > > > > line from and draw no demand line when there are no 
lower
> > > > pivots
> > > > > to
> > > > > > > draw the line from?
> > > > > > >
> > > > > > > The basis for the systems I have seen based on TD Lines 
is
> > > that
> > > > > you
> > > > > > > buy/cover when the supplyline is exceeded and sell/short
> > when
> > > > the
> > > > > > > demand line is broken. Trendlines let you know in 
advance
> > the
> > > > day
> > > > > > > before, the value of the trendline for the next trading 
day
> > > by
> > > > > > > calculating the slope of the line and adding it to 
today's
> > > > value
> > > > > of
> > > > > > > the line. Therefore, one can place the orders in the
> > evening
> > > as
> > > > > > stop
> > > > > > > orders so if a line is broken during the day a position 
is
> > > > taken.
> > > > > > > Anyway, I wrote the values of the lines for the next 
day in
> > > the
> > > > > > > title. I realise it's not perfect, because some lines 
are
> > no
> > > > > longer
> > > > > > > valid lines (for example a supply line that has been
> > exceeded
> > > > > > etc.).
> > > > > > > But more on that later.
> > > > > > >
> > > > > > > There are more improvements to be made, but I think it's
> > > > getting
> > > > > > > there :-)
> > > > > > > //Martin
> > > > > > >
> > > > > > > Here is the modified code with both a supply and demand
> > line:
> > > > > > >
> > > > > > > Plot(C,"",colorBlack,styleBar);
> > > > > > > pivothigh = Ref(H,-1)<H AND H>Ref(H,1);
> > > > > > > pivotlow = Ref(L,-1)>L AND L<Ref(L,1);
> > > > > > >
> > > > > > > x1=LastValue(ValueWhen(pivotlow,Cum(1)-1,1));
> > > > > > > y1=LastValue(ValueWhen(pivotlow,L,1));
> > > > > > > x0=LastValue(ValueWhen(pivotlow AND L<y1,Cum(1)-1,1));
> > > > > > > y0=LastValue(ValueWhen(pivotlow AND L<y1,L,1));
> > > > > > > x3=LastValue(ValueWhen(pivothigh,Cum(1)-1,1));
> > > > > > > y3=LastValue(ValueWhen(pivothigh,H,1));
> > > > > > > x2=LastValue(ValueWhen(pivothigh AND H>y3,Cum(1)-1,1));
> > > > > > > y2=LastValue(ValueWhen(pivothigh AND H>y3,H,1));
> > > > > > >
> > > > > > > supplyline=LineArray(x2,y2,x3,y3,1);
> > > > > > > Plot(supplyline,"",colorRed,styleLine|styleThick|
> > > > > > > styleNoRescale|styleNoLabel);
> > > > > > > demandLine=LineArray(x0,y0,x1,y1,1);
> > > > > > > Plot(demandLine,"",colorBlue,styleLine|
> > > > > > > styleThick|styleNoRescale|styleNoLabel);
> > > > > > >
> > > > > > > PlotShapes((Cum(1)-1==x0 OR Cum(1)-1==x1)
> > > > > > > *shapeSmallCircle,colorBlue,0,L);
> > > > > > > PlotShapes((Cross(Cum(C<demandLine AND Cum(1)-1>x1),0))
> > > > > > > *shapeDownArrow,colorRed,0,H);
> > > > > > > PlotShapes((Cum(1)-1==x2 OR Cum(1)-1==x3)
> > > > > > > *shapeSmallCircle,colorRed,0,H,12);
> > > > > > > PlotShapes((Cross(Cum(C>supplyline AND Cum(1)-1>x3),0))
> > > > > > > *shapeUpArrow,colorGreen,0,L);
> > > > > > >
> > > > > > > Title= Name()+" "+Date()+EncodeColor(colorBlack) +" 
Open-
> > > > > "+WriteVal
> > > > > > > (Open)+" Hi-"+WriteVal(High)+" Lo-"+WriteVal(Low)+" 
Close-
> > > > > "+WriteVal
> > > > > > > (Close) +EncodeColor(colorBlue)+WriteVal((y1-y0)/(x1-x0)
> > > > +LastValue
> > > > > > > (DEMAndline))+EncodeColor(colorRed)+WriteVal((y3-y2)/
(x3-x2)
> > > > > > +LastValue
> > > > > > > (supplyline));
> > > > > > > GraphXSpace=4;
> > > > > > > --- In amibroker@xxxxxxxxxxxxxxx, "johsun"
> > <johanskatt@xxxx>
> > > > > wrote:
> > > > > > > > OK, I think I get it. Is this what you're looking for?
> > > > > > > >
> > > > > > > > Johan
> > > > > > > >
> > > > > > > >
> > > > > > > > Plot(C,"",colorGreen,styleBar);
> > > > > > > > pivotlow = Ref(L,-1)>L AND L<Ref(L,1);
> > > > > > > >
> > > > > > > > x1=LastValue(ValueWhen(pivotlow,Cum(1)-1,1));
> > > > > > > > y1=LastValue(ValueWhen(pivotlow,L,1));
> > > > > > > > x0=LastValue(ValueWhen(pivotlow AND L<y1,Cum(1)-1,1));
> > > > > > > > y0=LastValue(ValueWhen(pivotlow AND L<y1,L,1));
> > > > > > > >
> > > > > > > > Line=LineArray(x0,y0,x1,y1,1);
> > > > > > > > Plot(Line,"",colorBlue,styleLine|
> > > > > > > > styleThick|styleNoRescale|styleNoLabel);
> > > > > > > > PlotShapes((Cum(1)-1==x0 OR Cum(1)-1==x1)
> > > > > > > > *shapeSmallCircle,colorBlue,0,L);
> > > > > > > > PlotShapes((Cross(Cum(C<Line AND Cum(1)-1>x1),0))
> > > > > > > > *shapeDownArrow,colorRed,0,H);
> > > > > > > >
> > > > > > > >
> > > > > > > > Title="TD Demand Line";
> > > > > > > > GraphXSpace=4;
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --- In amibroker@xxxxxxxxxxxxxxx, "marmal417"
> > <marmal@xxxx>
> > > > > wrote:
> > > > > > > > > Thank you very much, Johan. I replaced all the
> > > > SelectedValue
> > > > > > with
> > > > > > > > > Lastvalue to only get the most recent trendline. I
> > think
> > > > your
> > > > > > > > formula
> > > > > > > > > does exactly what I described. However, after 
looking
> > at
> > > > some
> > > > > > > > charts
> > > > > > > > > I realised my description was a bit wrong. You see,
> > there
> > > > > > should
> > > > > > > > > always be a demand line (upward sloping line)
> > connecting
> > > > the
> > > > > > most
> > > > > > > > > recent pivot with the second most recent pivot that 
is
> > > also
> > > > > > lower
> > > > > > > > > than the most recent. This code compares the two 
most
> > > > recent
> > > > > > > > > pivotpoints and if the second most recent is greater
> > than
> > > > the
> > > > > > > most
> > > > > > > > > recent, then no line is drawn. What it really 
should do
> > > is
> > > > > > first
> > > > > > > > > identify the most recent pivot, and then go back and
> > look
> > > > for
> > > > > > the
> > > > > > > > > next pivot that is lower and connect those two with 
a
> > > line,
> > > > > > > > wherever
> > > > > > > > > that next pivot is. The exception is when a stock 
makes
> > a
> > > > new
> > > > > > all
> > > > > > > > > time low, because then no lower pivot point can 
exist
> > to
> > > > draw
> > > > > a
> > > > > > > > line
> > > > > > > > > from.
> > > > > > > > >
> > > > > > > > > Maybe this requires a lot more programming, but can 
it
> > be
> > > > > done?
> > > > > > > > >
> > > > > > > > > So far I think it's a great start!
> > > > > > > > > //Martin
> >
> >
> >
> > Send BUG REPORTS to bugs@xxxx
> > Send SUGGESTIONS to suggest@xxxx
> > -----------------------------------------
> > Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
> > (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> > --------------------------------------------
> > Check group FAQ at:
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >



Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
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/