Does anyone know of a good automatic trendline indicator?

post your indicators here

Moderator: moderators

Lynx
rank: <50 posts
rank: <50 posts
Posts: 34
Joined: Mon May 14, 2007 3:27 pm
Reputation: 0
Gender: None specified

Does anyone know of a good automatic trendline indicator?

Postby Lynx » Wed Aug 08, 2007 12:40 am

I have been searching for a good trenline indicator but have not found any yet. Has any of you made or seen a good one? Thank you.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.

sai20_2000
rank: <50 posts
rank: <50 posts
Posts: 2
Joined: Sun Aug 05, 2007 1:12 pm
Reputation: 0
Gender: None specified

TL Auto

Postby sai20_2000 » Wed Aug 08, 2007 8:48 am

Hope You will find tis TRO,s indicator helpful

[LegacyColorValue = true];

{ _TrendLinesAUTO3 }

{
This indicator:
(1) INSERTS DnTL's/UpTL's connecting each new SwingHi/SwingLo with the next most
recent higher/lower SwingHi/SwingLo within the last 10 SwingHi's/SwingLo's;
(2) EXTENDS each new TL to the right and SETS it's color and alert type;
(3) TRUNCATES a DnTL/UpTL on the right when the next new DnTL/UpTL is drawn (if the
History input is set to "Yes"), or BarsPast bars after it has been breached,
whichever comes first.
(4) DELETES a DnTL/UpTL when the next new DnTL/UpTL is drawn, if the History input
is set to "No".

NOTE: This indicator may not work well with low-count tick bars, such as 10-tick bars,
etc., because the time resolution of the bars may not be high enough for each bar to
have a distinct time stamp.
}


{ Modifying Programmer: Avery T. Horton, Jr. aka TheRumpledOne,
gifts and donations accepted, PO Box 43575, Tucson, AZ 85733 }

{ ? Copyright 2006 Avery T. Horton, Jr.}

inputs:
iHigh( HIGH ),
iLow( LOW ),
SwHiStrength( 3 ),
SwLoStrength( 3 ),
BarsPast( 10 ),
History( "No" ),
DnTLColor( Red ),
UpTLColor( Cyan ),
AlertType( "NoAlert" ) ;

variables:

tDnTLBreak( "" ),
tUpTLBreak( "" ),

xBarsPast( 0 ),

DnTLRef( -1 ),
DnTLEndBar( 0 ),
DnTLBreak( false ),
DnTLColorNum( DnTLColor ),

UpTLRef( -1 ),
UpTLEndBar( 0 ),
UpTLBreak( false ),
UpTLColorNum( UpTLColor ),

Index( 0 ),
BarNum( 0 ),
HistoryTF( false ),
AlertTypeCAPS( UpperStr( AlertType ) ) ;

arrays:
SwHiDate[10]( 0 ),
SwHiTime[10]( 0 ),
SwHiVal[10]( -1000000 ),
SwLoDate[10]( 0 ),
SwLoTime[10]( 0 ),
SwLoVal[10]( 1000000 ) ;

if CurrentBar = 1 then
HistoryTF = UpperStr( History ) = "YES" or UpperStr( History ) = "Y" ;
{ should also be able to do this via declaration above }


if d > d[1]
then begin

{ clear arrays }

for Value1 = 9 downto 0
begin

SwHiDate[ Value1 + 1 ] = 0 ;
SwHiTime[ Value1 + 1 ] = 0 ;
SwHiVal[ Value1 + 1 ] = 0 ;

SwLoDate[Value1+1] = 0 ;
SwLoTime[Value1+1] = 0 ;
SwLoVal[Value1+1] = 0 ;

end ;

xBarsPast = 0 ;

end;

If xBarsPast < BarsPast
then xBarsPast = xBarsPast + 1 ;



BarNum = BarNumber ;

if SwingHighBar( 1, iHigh, SwHiStrength, SwHiStrength + 1 ) = SwHiStrength then
{ ie, if just confirmed SwHi }
begin

{ push arrays back }
for Value1 = 9 downto 0
begin

SwHiDate[ Value1 + 1 ] = SwHiDate[Value1] ;
SwHiTime[ Value1 + 1 ] = SwHiTime[Value1] ;
SwHiVal[ Value1 + 1 ] = SwHiVal[Value1] ;

end ;
{ read in parameters of new SwHi into 0-elements of arrays }
SwHiDate[0] = Date[SwHiStrength] ;
SwHiTime[0] = Time[SwHiStrength] ;
SwHiVal[0] = iHigh[SwHiStrength] ;

{ find and save the index of the next-most-recent higher SwHi if it exists }
for Value2 = 1 to 10
begin
if SwHiVal[Value2] > SwHiVal[0] then
begin
Index = Value2 ;
Value2 = 11 ; { short circuit the looping with 11 instead of 10; the 11
will become 12 in the final pass }
end ;
end ;

if Value2 = 12 then { ie, if next-most-recent higher SwHi exists }
begin
if DnTLRef >= 0 then { ie, if previous DnTL exists }
begin
if HistoryTF and DnTLBreak = false then
{ if history reqd and most recent DnTL not already truncated
elsewhere, truncate it now }
begin
TL_SetEnd( DnTLRef, Date, Time, TL_GetValue( DnTLRef, Date, Time ) ) ;
TL_SetExtRight( DnTLRef, false ) ;
end
else if HistoryTF = false then
{ if history not reqd, delete most recent DnTL }
TL_Delete( DnTLRef ) ;
end ;
{ draw new DnTL, reset break flag, save endbar, set extents/color/alert }
DnTLRef = TL_New( SwHiDate[Index], SwHiTime[Index], SwHiVal[Index],
SwHiDate[0], SwHiTime[0], SwHiVal[0] ) ;
if DnTLBreak = true then
DnTLBreak = false ;
DnTLEndBar = BarNum - SwHiStrength ;
TL_SetExtLeft( DnTLRef, false ) ;
TL_SetExtRight( DnTLRef, true ) ;
if DnTLColorNum <> 99 then
TL_SetColor( DnTLRef, DnTLColorNum ) ;
if AlertTypeCAPS = "ONCLOSE" then
TL_SetAlert( DnTLRef, 2 )
else if AlertTypeCAPS = "INTRABAR" then
TL_SetAlert( DnTLRef, 1 )
else
// TL_SetAlert( DnTLRef, 0 ) ;
value10 = value10;
end ;
end ;

if SwingLowBar( 1, iLow, SwLoStrength, SwLoStrength + 1 ) = SwLoStrength then
{ ie, if just confirmed SwLo }
begin

{ push arrays back }
for Value1 = 9 downto 0
begin

SwLoDate[Value1+1] = SwLoDate[Value1] ;
SwLoTime[Value1+1] = SwLoTime[Value1] ;
SwLoVal[Value1+1] = SwLoVal[Value1] ;

end ;

{ read in parameters of new SwLo into 0-elements of arrays }
SwLoDate[0] = Date[SwLoStrength] ;
SwLoTime[0] = Time[SwLoStrength] ;
SwLoVal[0] = iLow[SwLoStrength] ;

{ find and save the index of the next-most-recent lower SwLo if it exists }
for Value2 = 1 to 10
begin
if SwLoVal[Value2] < SwLoVal[0] then
begin
Index = Value2 ;
Value2 = 11 ;{ short circuit the looping with 11 instead of 10; the 11
will become 12 in the final pass }
end ;
end ;

if Value2 = 12 then { ie, if next-most-recent lower SwLo exists }
begin
if UpTLRef >= 0 then { ie, if previous UpTL exists }
begin
if HistoryTF and UpTLBreak = false then
{ if history reqd and most recent UpTL not already truncated
elsewhere, truncate it now }
begin
TL_SetEnd( UpTLRef, Date, Time, TL_GetValue( UpTLRef, Date, Time ) ) ;
TL_SetExtRight( UpTLRef, false ) ;
end
else if HistoryTF = false then
{ if history not reqd, delete most recent UpTL }
TL_Delete( UpTLRef ) ;
end ;
{ draw new UpTL, reset break flag, save endbar, set extents/color/alert }
UpTLRef = TL_New( SwLoDate[Index], SwLoTime[Index], SwLoVal[Index],
SwLoDate[0], SwLoTime[0], SwLoVal[0] ) ;
if UpTLBreak = true then
UpTLBreak = false ;
UpTLEndBar = BarNum - SwLoStrength ;
TL_SetExtLeft( UpTLRef, false ) ;
TL_SetExtRight( UpTLRef, true ) ;
if UpTLColorNum <> 99 then
TL_SetColor( UpTLRef, UpTLColorNum ) ;
if AlertTypeCAPS = "ONCLOSE" then
TL_SetAlert( UpTLRef, 2 )
else if AlertTypeCAPS = "INTRABAR" then
TL_SetAlert( UpTLRef, 1 )
else
// TL_SetAlert( UpTLRef, 0 ) ;
value10 = value10;
end ;
end ;

{ if most recent DnTL/UpTL exists AND has not yet been truncated here AND was drawn
at least BarsPast ago AND was breached BarsPast bars ago THEN truncate it here and
set break flag }


tDnTLBreak = "" ;
tUpTLBreak = "" ;


if DnTLRef >= 0
and DnTLBreak = false
and BarNum > DnTLEndBar + SwHiStrength + xBarsPast
and ( Close > TL_GetValue( DnTLRef, Date, Time ) )[xBarsPast]
then
begin
TL_SetEnd( DnTLRef, Date, Time, TL_GetValue( DnTLRef, Date, Time ) ) ;
TL_SetExtRight( DnTLRef, false ) ;
DnTLBreak = true ;

tDnTLBreak = "Break Dn" ;

end ;

if UpTLRef >= 0
and UpTLBreak = false
and BarNum > UpTLEndBar + SwLoStrength + xBarsPast
and ( Close < TL_GetValue( UpTLRef, Date, Time ) )[xBarsPast]
then
begin
TL_SetEnd( UpTLRef, Date, Time, TL_GetValue( UpTLRef, Date, Time ) ) ;
TL_SetExtRight( UpTLRef, false ) ;
UpTLBreak = true ;

tUpTLBreak = "Break Up" ;

end ;

Plot1( tUpTLBreak , "Up" ) ;

Plot2( tDnTLBreak , "Down" ) ;

Lynx
rank: <50 posts
rank: <50 posts
Posts: 34
Joined: Mon May 14, 2007 3:27 pm
Reputation: 0
Gender: None specified

Postby Lynx » Wed Aug 08, 2007 1:31 pm

Thank you very much.

Lynx
rank: <50 posts
rank: <50 posts
Posts: 34
Joined: Mon May 14, 2007 3:27 pm
Reputation: 0
Gender: None specified

Postby Lynx » Wed Aug 08, 2007 7:10 pm

If you dont mind I need to ask you for some additional help as to what the inputs are so that I can tweak it for my particular needs. Thank you.

sai20_2000
rank: <50 posts
rank: <50 posts
Posts: 2
Joined: Sun Aug 05, 2007 1:12 pm
Reputation: 0
Gender: None specified

Postby sai20_2000 » Thu Aug 09, 2007 3:29 pm

I use the strength of 5 for both 5min and 30 min symbol on same chart.
the higher time frame enables analyze more strong sup and res.

Please add www.kreslik.com to your ad blocker white list.
Thank you for your support.


Return to “Tradestation indicators”