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

[EquisMetaStock Group] How do you code three line break in metastock



PureBytes Links

Trading Reference Links

Users,

  I want to use the three line break in metastock system tester. How 
do you code it for BUY and SELL signals in Metastock?  

See below

Thanks,
 


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




 
Yahoo! Groups Links

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

<*> To unsubscribe from this group, send an email to:
     equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
     http://docs.yahoo.com/info/terms/