Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

indicator-master

Members
  • Content Count

    2
  • Joined

  • Last visited

Personal Information

  • First Name
    TradersLaboratory.com
  • Last Name
    User
  • City
    Riyadh
  • Country
    Saudi Arabia
  • Gender
    Male

Trading Information

  • Vendor
    No
  • Trading Years
    5
  • Trading Platform
    Metastock

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. { 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 © 1991-2003 TradeStation Technologies, Inc. All rights reserved. ** ** TradeStation reserves the right to modify or overwrite this analysis technique with each release. ** }
  2. this is what i have in my system: [LegacyColorValue = true]; {=======================================HEADER======================= Study based on Connors & Raschke's "Wolfe Waves" ================================== DECLARATIONS =======================} INPUTS: TICKCHG(0), {Change (number of ticks) required to set up a new swing high/low.} PCTCHG(.2), {Percent change in price to set up a new swing high/low} OCCUR(1), PLOTBARS(20), ETALINE(TRUE), ZIGZAG(TRUE); ARRAY: PBAR[50](0), P[50](0); VARS: X(0), PP(1), JA_SLOPE1(0), JLA_CTR(0), JLA_LINE(0), JAIRHBAR(0), { LAST SWING HIGH BAR} JAIRLBAR(0), {LAST SWING LOW BAR} LOWSEEK(FALSE), {LOOKING FOR A LOW OR A HIGH?} W(0), {COUNTER} JLA_IRH(0), {LAST SWING HIGH VALUE} JLA_IRL(99999), {LAST SWING LOW VALUE} JA_SLOPE2(0), JA_SLOPE3(0), JLA_PT1(0), WOLFE(0); {==================MAIN PROGRAM=========================} IF CURRENTBAR = 1 THEN P[50] = C; IF LOWSEEK = FALSE AND P[50] <= H THEN BEGIN P[50] = H; PBAR[50] = 0; END; IF LOWSEEK = TRUE AND P[50] >= L THEN BEGIN P[50] = L; PBAR[50] = 0; END; IF (LOWSEEK = FALSE AND PBAR[50] <> 0) THEN BEGIN IF (TICKCHG = 0 AND L < P[50] * ( 1 - PCTCHG / 100) ) OR (TICKCHG <> 0 AND L < ( P[50] - tickchg * minmove points)) THEN BEGIN IF ZIGZAG = TRUE THEN PLOT4[PBAR[50]](P[50],"SWINGS"); LOWSEEK = TRUE; FOR W = 1 TO 49 BEGIN PBAR[W] = PBAR[W+1]; P[W] = P[W+1]; END; P[50] = L; PBAR[50] = 0; END; END; IF (LOWSEEK = TRUE AND PBAR[50] <> 0) THEN BEGIN IF (TICKCHG = 0 AND H> P[50] * ( 1 + PCTCHG / 100)) OR (TICKCHG <> 0 AND H > (P[50] + tickchg * minmove points )) THEN BEGIN IF ZIGZAG = TRUE THEN PLOT4[PBAR[50]](P[50],"SWINGS"); LOWSEEK = FALSE; FOR W = 1 TO 49 BEGIN PBAR[W] = PBAR[W+1]; P[W] = P[W+1]; END; P[50] = H; PBAR[50] = 0; END; END; IF TIME = LASTCALCTIME AND DATE = LASTCALCDATE AND P[48 - PP] <> 0 THEN BEGIN PP = -1; WOLFE = 0; WHILE WOLFE < OCCUR AND PP < 46 BEGIN PP = PP + 1; VALUE1 = P[47-PP]; VALUE2 = P[48-PP]; VALUE3 = P[49-PP]; VALUE4 = P[50-PP]; CONDITION1 = VALUE2 > VALUE1 AND VALUE4 > VALUE3 AND VALUE4 < VALUE2 AND VALUE3 < VALUE1 AND VALUE4 > VALUE1; CONDITION2 = VALUE2 < VALUE1 AND VALUE4 < VALUE3 AND VALUE4 > VALUE2 AND VALUE3 > VALUE1 AND VALUE4 < VALUE1; IF CONDITION1 OR CONDITION2 THEN WOLFE = WOLFE + 1; END; JA_SLOPE1 = (P[49-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[49-PP]); JA_SLOPE2 = (P[50-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[50-PP]); {LINE 1-3} VALUE90 = TL_New(DATE[PBAR[47-PP]],TIME[PBAR[47-PP]],P[47-PP], DATE[PBAR[49-PP]], TIME[PBAR[49-PP]],P[49-PP]); Value14=TL_SetColor(VALUE90, 5); {VALUE93 = TL_SetExtRight(VALUE90,TRUE);} VALUE94 = TL_SETEND(VALUE90,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS],TL_GETVALUE(VALUE90,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS])); {LINE 1-4} VALUE91 = TL_NEW(DATE[PBAR[47-PP]],TIME[PBAR[47-PP]],P[47-PP], DATE[PBAR[50-PP]], TIME[PBAR[50-PP]],P[50-PP]); Value14=TL_SetColor(VALUE91, 16); TL_SETEND(VALUE91,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS],TL_GETVALUE(VALUE91,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS])); {ETA LINE} IF ETALINE THEN BEGIN VALUE92 = TL_NEW(DATE[PBAR[48-PP]],TIME[PBAR[48-PP]],P[48-PP], DATE[PBAR[50-PP]], TIME[PBAR[50-PP]],P[50-PP]); Value14=TL_SetColor(VALUE92, 4); TL_SETEND(VALUE92,DATE[PBAR[50-PP]-PLOTBARS],TIME[PBAR[50-PP]-PLOTBARS],TL_GETVALUE(VALUE92,DATE[PBAR[50-PP]-PLOTBARS],TIME[PBAR[50-PP]-PLOTBARS])); END; END; IF DATE = LASTCALCDATE AND TIME = LASTCALCTIME AND ZIGZAG = TRUE THEN BEGIN JA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]); FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGIN PLOT4[JLA_CTR](P[49] + (PBAR[49] - JLA_CTR) * JA_SLOPE3,"Swings"); END; END; FOR W = 1 TO 50 BEGIN PBAR[W] = PBAR[W]+1; END;
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.