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

Re: Re Kagi,Renko,Three Line Break Charts


  • To: 11512022 <11512022@xxxxxxxxxxxx>
  • Subject: Re: Re Kagi,Renko,Three Line Break Charts
  • From: "Roger L. Shepherd" <mailrs@xxxxxxxxxx>
  • Date: Thu, 27 Dec 2001 12:35:46 -0800
  • In-reply-to: <200112262343.PAA29654@xxxxxxxxxxxxxx>

PureBytes Links

Trading Reference Links

Hello 11512022,

Thursday, December 27, 2001, 9:46:35 AM, you wrote:


1> Would any of our members know if it possible to create the above in TS2000i
1> My initial preference is for the Three Line Break
1> Anyone seen any ela's or could an indicater be designed

1> One thought may be to create a TS to Metastock-ascii file,and then somehow
1> try to have MS chart the data, which seems a messy way of doing it,as
1> opposed to an ELA

1> All thoughts and any leads greatly appreciated

1> Milton Cooper


Below is a 3 line break paint bar.  It wasn't written by me but I
don't have a record of who originally wrote it.

{TRADESTATION EASYLANGUAGE: 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." 
}
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;   
        MessageLog (Date,Open, High, Low, Close,FUBarHigh, FUBarLow, SUBarHigh, SUBarLow,
TUBarHigh, TUBarLow, FLBarHigh, FLBarLow, SLBarHigh,
SLBarLow, TLBarHigh, TLBarLow, UpCount, DownCount,
UpNew, DnNew, UpRev, DnRev, PlotHigh, PlotLow, 
Color);
                {Prints the variables to the message log}
                        Plot1(PlotHigh,"High Bar",Color);
Plot2(PlotLow,"Low Bar",Color);


-- 
Best regards,
 Roger                            mailto:mailrs@xxxxxxxxxx