gigiocean Posted April 13, 2013 Report Share Posted April 13, 2013 Please Can anyone give me the correct settings for the automatic trendlines tool on tradestation? Or if there is one tool better. Thanks in advance. Quote Link to comment Share on other sites More sharing options...
FX_SuperTrader Posted April 14, 2013 Report Share Posted April 14, 2013 Hi gigiocean; Automatic Trendlines?? I don´t know this indicator; share a code please, for that any one can help you. Quote Link to comment Share on other sites More sharing options...
gigiocean Posted April 15, 2013 Author Report Share Posted April 15, 2013 { 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. } inputs: SwHiStrength( 4 ), SwLoStrength( 4 ), BarsPast( 10 ), History( "Yes" ), DnTLColor( Red ), UpTLColor( Cyan ), AlertType( "IntraBar" ) ; variables: 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 } BarNum = BarNumber ; if SwingHighBar( 1, High, 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] = High[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 ) ; end ; end ; if SwingLowBar( 1, Low, 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] = Low[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 ) ; 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 } if DnTLRef >= 0 and DnTLBreak = false and BarNum > DnTLEndBar + SwHiStrength + BarsPast and ( Close > TL_GetValue( DnTLRef, Date, Time ) )[barsPast] then begin TL_SetEnd( DnTLRef, Date, Time, TL_GetValue( DnTLRef, Date, Time ) ) ; TL_SetExtRight( DnTLRef, false ) ; DnTLBreak = true ; end ; if UpTLRef >= 0 and UpTLBreak = false and BarNum > UpTLEndBar + SwLoStrength + BarsPast and ( Close < TL_GetValue( UpTLRef, Date, Time ) )[barsPast] then begin TL_SetEnd( UpTLRef, Date, Time, TL_GetValue( UpTLRef, Date, Time ) ) ; TL_SetExtRight( UpTLRef, false ) ; UpTLBreak = true ; end ; Quote Link to comment Share on other sites More sharing options...
⭐ nevergiveup Posted April 15, 2013 Report Share Posted April 15, 2013 { 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. } inputs: SwHiStrength( 4 ), SwLoStrength( 4 ), BarsPast( 10 ), History( "Yes" ), DnTLColor( Red ), UpTLColor( Cyan ), AlertType( "IntraBar" ) ; variables: 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 } BarNum = BarNumber ; if SwingHighBar( 1, High, 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] = High[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 ) ; end ; end ; if SwingLowBar( 1, Low, 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] = Low[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 ) ; 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 } if DnTLRef >= 0 and DnTLBreak = false and BarNum > DnTLEndBar + SwHiStrength + BarsPast and ( Close > TL_GetValue( DnTLRef, Date, Time ) )[barsPast] then begin TL_SetEnd( DnTLRef, Date, Time, TL_GetValue( DnTLRef, Date, Time ) ) ; TL_SetExtRight( DnTLRef, false ) ; DnTLBreak = true ; end ; if UpTLRef >= 0 and UpTLBreak = false and BarNum > UpTLEndBar + SwLoStrength + BarsPast and ( Close < TL_GetValue( UpTLRef, Date, Time ) )[barsPast] then begin TL_SetEnd( UpTLRef, Date, Time, TL_GetValue( UpTLRef, Date, Time ) ) ; TL_SetExtRight( UpTLRef, false ) ; UpTLBreak = true ; end ; This was already available with Andreybbrv's MC.Just check the indicators list for Trendline Automatic Quote be helpful Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.