MetaStock™ Zone Forum & FAQ Artykuły Linki Elliott Waves EasyLanguage™ Zone

 

Three-Line Break Chart
The 2001 Bonus Issue of STOCKS & COMMODITIES contained an article titled "Three-Line
Break Reversal Signals." No EasyLanguage code was included with the article, and TradeStation doesn't provide an option to create a three-line break chart. Thus, I'd like to share the following EasyLanguage code for a PaintBar study that simulates a three-line break chart.

But first, let me provide a refresher on three-line break charts. To draw line break blocks, today's close is compared to the high and low of the previous block. A block is drawn only when today's close exceeds the high or low of the previous block. If today's close is higher than the top of the previous block, a new up block is drawn in the next column from the prior high to the new high price (today's close). If today's close is lower than the bottom of the previous block, a new down block is drawn in the next column from the prior low to the new low price (today's close). If the close fails to move outside the range of the previous block's high or low, then nothing is drawn.

In a three-line break chart, if rallies are strong enough to display three consecutive blocks in the same direction, then prices must reverse by the extreme price of the last three blocks in order to create a new block.

If a rally is powerful enough to form three consecutive up blocks, then prices must fall below the lowest point of the last three up blocks before a new down block is drawn. If a selloff is powerful enough to form three consecutive down blocks, then prices must rise above the highest point of the last three down blocks before a new up block is drawn.

I have written this PaintBar study in which up block colors rotate between white and yellow, and down block colors rotate between red and magenta. Each time the rules call for a new block to be drawn, the PaintBar colors change, indicating the new block. The chart is best viewed when setting the bar type to "line on close."


Type : PaintBar, Name : Three-Line Break Chart

Variables:
FUBarHigh(0),
FUBarLow(0),
SUBarHigh(0),
SUBarLow(0),
TUBarHigh(0),
TUBarLow(0),
FLBarHigh(0),
FLBarLow(0),
SLBarHigh(0),
SLBarLow(0),
TLBarHigh(0),
TLBarLow(0),
UpCount(0),
DownCount(0),
UpNew(0),
DnNew(0),
UpRev(0),
DnRev(0),
PlotHigh(0),
PlotLow(0),
Color(0);

If Close > UpNew Then Begin
If DownCount < 3 Then Begin
If UpCount = 0 Then Begin
UpCount = UpCount + 1;
DownCount = 0;
FUBarHigh = Close;
FUBarLow = UpNew;
SUBarHigh = 0;
SUBarLow = 0;
TUBarHigh = 0;
TUBarLow = 0;
FLBarHigh = 0;
FLBarLow = 0;
SLBarHigh = 0;
SLBarLow = 0;
TLBarHigh = 0;
TLBarLow = 0;
UpNew = FUBarHigh;
DnNew = FUBarLow;
PlotHigh = FUBarHigh;
PlotLow = FUBarLow;
Color = 7;
End;

If UpCount = 1 Then
If Close > UpNew Then Begin
UpCount = UpCount + 1;
SUBarHigh = Close;
SUBarLow = FUBarHigh;
UpNew = SUBarHigh;
DnNew = SUBarLow;
PlotHigh = SUBarHigh;
PlotLow = SUBarLow;
Color = 8;
End;

If UpCount = 2 Then
If Close > UpNew Then Begin
UpCount = UpCount + 1;
TUBarHigh = Close;
TUBarLow = SUBarHigh;
UpNew = TUBarHigh;
DnNew = TUBarLow;
PlotHigh = TUBarHigh;
PlotLow = TUBarLow;
Color = 7;
End;

If UpCount = 3 Then
If Close > UpNew Then Begin
FUBarHigh = SUBarHigh;
FUBarLow = SUBarLow;
SUBarHigh = TUBarHigh;
SUBarLow = TUBarLow;
TUBarHigh = Close;
TUBarLow = SUBarHigh;
UpNew = TUBarHigh;
DnNew = TUBarLow;
PlotHigh = TUBarHigh;
PlotLow = TUBarLow;
If Color = 7 Then
Color = 8
Else
Color = 7;
End;
End;

If DownCount = 3 Then Begin
UpRev = FLBarHigh;
If Close > UpRev Then Begin
UpCount = UpCount + 1;
DownCount = 0;
FUBarHigh = Close;
FUBarLow = TLBarHigh;
SUBarHigh = 0;
SUBarLow = 0;
TUBarHigh = 0;
TUBarLow = 0;
FLBarHigh = 0;
FLBarLow = 0;
SLBarHigh = 0;
SLBarLow = 0;
TLBarHigh = 0;
TLBarLow = 0;
UpNew = FUBarHigh;
DnNew = FUBarLow;
PlotHigh = FUBarHigh;
PlotLow = FUBarLow;
Color = 7;
End;
End;
End;

If Close < DnNew Then Begin
If UpCount < 3 Then Begin
If DownCount = 0 Then Begin
DownCount = DownCount + 1;
UpCount = 0;
FLBarHigh = DnNew;
FLBarLow = Close;
SLBarHigh = 0;
SLBarLow = 0;
TLBarHigh = 0;
TLBarLow = 0;
FUBarHigh = 0;
FUBarLow = 0;
SUBarHigh = 0;
SUBarLow = 0;
TUBarHigh = 0;
TUBarLow = 0;
UpNew = FLBarHigh;
DnNew = FLBarLow;
PlotHigh = FLBarHigh;
PlotLow = FLBarLow;
Color = 6;
End;

If DownCount = 1 Then
If Close < DnNew Then Begin
DownCount = DownCount + 1;
SLBarHigh = FLBarLow;
SLBarLow = Close;
UpNew = SLBarHigh;
DnNew = SLBarLow;
PlotHigh = SLBarHigh;
PlotLow = SLbarLow;
Color = 5;
End;

If DownCount = 2 Then
If Close < DnNew Then Begin
DownCount = DownCount + 1;
TLBarHigh = SLBarLow;
TLBarLow = Close;
UpNew = TLBarHigh;
DnNew = TLBarLow;
PlotHigh = TLBarHigh;
PlotLow = TLBarLow;
Color = 6;
End;

If DownCount = 3 Then
If Close < DnNew Then Begin
FLBarHigh = SLBarHigh;
FLBarLow = SLBarLow;
SLBarHigh = TLBarHigh;
SLBarLow = TLBarLow;
TLBarHigh = SLBarLow;
TLBarLow = Close;
UpNew = TLBarHigh;
DnNew = TLBarLow;
PlotHigh = TLBarHigh;
PlotLow = TLBarLow;
If Color = 6 Then
Color = 5
Else
Color = 6;
End;
End;

If UpCount = 3 Then Begin
DnRev = FUBarLow;
If Close < DnRev Then Begin
DownCount = DownCount + 1;
UpCount = 0;
FLBarHigh = TUBarLow;
FLBarLow = Close;
SLBarHigh = 0;
SLBarLow = 0;
TLBarHigh = 0;
TLBarLow = 0;
FUBarHigh = 0;
FUBarLow = 0;
SUBarHigh = 0;
SUBarLow = 0;
TUBarHigh = 0;
TUBarLow = 0;
UpNew = FLBarHigh;
DnNew = FLBarLow;
PlotHigh = FLBarHigh;
PlotLow = FLBarLow;
Color = 6;
End;
End;

End; Plot1(PlotHigh,"High Bar",Color);

Plot2(PlotLow,"Low Bar",Color);

 

t-pb-Three-Line_Break_Chart.gif
--John M. Snyder

Editor: This was ingenious and a generous gesture. Thanks for sending it in, John! Note: This code is also available as a downloadable .Ela file from the STOCKS & COMMODITIES website, Traders.com.

Source / From: TOP
http://www.traders.com

TradeStation® Pro, TradeStation® 2000i, OptionStation®, SuperCharts®, PowerEditor® and EasyLanguage®
are registered trademarks of TradeStation Technologies, Inc. Other names and marks referred to are the property of their respective owners.

All information provided on this website is for educational purposes only. Trading involves risk, including possible loss of principal and other losses.

Ten i inne materiały na tej stronie zostały zamieszczone zostały jedynie w celach edukacyjnych, nie ponoszę żadnej odpowiedzialno¶ci za ich stosowanie.

Gra na giełdzie i rynkach walutowych (FOREX) niesie ze sob± ryzyko poważnych strat finansowych!