| Technical Analysis The technical discussion forum for traders. |
![]() | | Tweet | |
| | #1 | ||
![]() | Auto Trendlines Does anyone know of an auto trendline AFL they really like? There are a couple in the Amibroker library but they are not what I am looking for. tradestation has an auto trendline indicator that is quite good I hear and so does Ensign. I tried the Ensign and it is excellent. I would be very grateful if someone knew of such an AFL or would share it with me. Thank you for any and all help. Kindest regards, Tim | ||
| |
|
| | #2 | ||
![]() | Re: Auto Trendlines | ||
| |
|
| | #3 | ||
![]() | Re: Auto Trendlines Quote:
| ||
| |
|
| | #4 | ||
![]() | Re: Auto Trendlines kindest regards, Tim | ||
| |
|
| | #5 | ||
![]() | Re: Auto Trendlines 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 ; { ** Copyright (c) 1991-2003 tradestation Technologies, Inc. All rights reserved. ** ** tradestation reserves the right to modify or overwrite this analysis technique with each release. ** } | ||
| |
|
| The Following User Says Thank You to indicator-master For This Useful Post: | ||
JCII100 (08-06-2011) | ||
| | #6 | ||
![]() | Re: Auto Trendlines Kindest regards, Tim | ||
| |
|
| | #7 | ||
![]() | Re: Auto Trendlines Thanks & Regards | ||
| |
|
![]() |
| Thread Tools | |
| Display Modes | Help Others By Rating This Thread |
| |
| ∧ Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| How to Trade Using Trendlines | Soultrader | Technical Analysis | 18 | 09-22-2011 09:38 PM |
| Auto Trendlines | raven4ns | Coding Forum | 0 | 11-28-2008 11:44 AM |
| Auto-refresh | brownsfan019 | Support Center | 6 | 07-31-2007 04:49 PM |
| Trendlines on indicator (rsi) | vsmirnov | Coding Forum | 1 | 06-18-2007 08:45 AM |
| [Trendlines and TICK's on ER2] | Soultrader | Trading Videos | 0 | 01-23-2007 10:48 PM |