![]() |
This website will be down for maintenance from Friday May 24th at 6PM MDT until Saturday May 25th at 11AM MDT. We apologize for the inconvenience. If you need assistance during this time, please email sales@ninjatrader.com
|
|||||||
| Indicator Development Support for the development of custom indicators using NinjaScript. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Junior Member
Join Date: Dec 2008
Posts: 6
Thanks: 0
Thanked 0 times in 0 posts
|
I've been looking for a Pesavento indicator for a long time now. Unfortunately there aren't any out there for Ninja. But there are some things made for Multi Charts. I've found the code and here it is. Is anyone interested in converting this code into NT?
Thank you in advance! [/code][LegacyColorValue = true]; {Gartley 222 Original Code written by Mark Conway ================= Modified by deMicron Oct. 09, 2004 1. Option to Delete Multiple Re-Draw Lines 2. Added 2-more Lines to complete the pattern ================ } Inputs: Length(100), Strength(8), Tolerance(0.10), BullColor(Blue), BearColor(Red), thickness(2), DelMulti(TRUE); { Deletes Multiple Re-Draw Lines} Variables: F1(0.618), F2(0.786), F3(1.27), F4(1.618), P1Bar(-1), P2Bar(-1), T1Bar(-1), T2Bar(-1), P1(0.0), P2(0.0), T1(0.0), T2(0.0), PTValid(False), HLValid(False), InZone(False), GD(0.0), XA(0.0), AB(0.0), BC(0.0), CD(0.0), AD(0.0), C1(False), C2(False), C3(False), C4(False), ABdXA(0.0), BCdAB(0.0), CDdBC(0.0), ADdXA(0.0), TL1(-1), TL2(-1), TL3(-1), TL4(-1), TL5(-1), TL6(-1), TL7(-1), TL8(-1); P1Bar = SwingHighBar(1, High, Strength, Length); P2Bar = SwingHighBar(2, High, Strength, Length); T1Bar = SwingLowBar(1, Low, Strength, Length); T2Bar = SwingLowBar(2, Low, Strength, Length); If P1Bar <> -1 and P2Bar <> -1 and T1Bar <> -1 and T2Bar <> -1 Then Begin {Test for a bullish 222} {Trough X is T2} T2 = Low[T2Bar]; {Peak A is P2} P2 = High[P2Bar]; {Trough B is T1} T1 = Low[T1Bar]; {Peak C is P1} P1 = High[P1Bar]; {D is the buy point} GD = Low; PTValid = P1Bar < T1Bar and T1Bar < P2Bar and P2Bar < T2Bar; HLValid = P1 < P2 and T1 > T2 and P1 > T1; InZone = GD < T1 and GD > T2 and P2 >= Highest(High, T2Bar); If PTValid and HLValid and InZone Then Begin XA = P2 - T2; AB = P2 - T1; BC = P1 - T1; CD = P1 - GD; AD = P2 - GD; ABdXA = AB / XA; {AB should be 61.8% of XA} C1 = ABdXA > F1 - Tolerance and ABdXA < F1 + Tolerance; BCdAB = BC / AB; {BC should be 61.8-78.6% of AB} C2 = BCdAB > F1 - Tolerance and BCdAB < F2 + Tolerance; CDdBC = CD / BC; {CD should be 127-161.8% of BC} C3 = CDdBC > F3 - Tolerance and CDdBC < F4 + Tolerance; ADdXA = AD / XA; {AD should be 78.6% of XA} C4 = ADdXA > F2 - Tolerance and ADdXA < F2 + Tolerance; If C1 and C2 and C3 and C4 Then Begin TL1 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P2Bar], Time[P2Bar], P2); If TL1 >= 0 Then Begin TL_SetColor(TL1, BullColor); TL_SetStyle(TL1, Tool_Solid); TL_SetSize(TL1, 2); End; TL2 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T1Bar], Time[T1Bar], T1); If TL2 >= 0 Then Begin TL_SetColor(TL2, BullColor); TL_SetStyle(TL2, Tool_Solid); TL_SetSize(TL2, 2); End; TL3 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date[P1Bar], Time[P1Bar], P1); If TL3 >= 0 Then Begin TL_SetColor(TL3, BullColor); TL_SetStyle(TL3, Tool_Solid); TL_SetSize(TL3, 2); End; if (DelMULTI) then begin if (TL4>0) then TL_Delete(TL4); if (TL5>0) then TL_Delete(TL5); if (TL5>0) then TL_Delete(TL6); end; TL4 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, GD); If TL4 >= 0 Then Begin TL_SetColor(TL4, BullColor); TL_SetStyle(TL4, Tool_Solid); TL_SetSize(TL4, thickness); End; TL5 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, GD); If TL5 >= 0 Then Begin TL_SetColor(TL5, BullColor); TL_SetStyle(TL5, Tool_Dotted); TL_SetSize(TL5, thickness); End; TL6 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date, Time, GD); If TL6 >= 0 Then Begin TL_SetColor(TL6, BullColor); TL_SetStyle(TL6, Tool_Dotted); TL_SetSize(TL6, thickness); End; TL7 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[P1Bar], Time[P1Bar], P1); If TL7 >= 0 Then Begin TL_SetColor(TL7, BullColor); TL_SetStyle(TL7, Tool_Dotted); TL_SetSize(TL7, thickness); End; TL8 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[T1Bar], Time[T1Bar], T1); If TL8 >= 0 Then Begin TL_SetColor(TL8, BullColor); TL_SetStyle(TL8, Tool_Dotted); TL_SetSize(TL8,thickness); End; End; End; {Test for a bearish 222} {Peak X is P2} {Trough A is T2} {Peak B is P1} {Trough C is T1} {GD is the short point} GD = High; PTValid = T1Bar < P1Bar and P1Bar < T2Bar and T2Bar < P2Bar; HLValid = T1 > T2 and P1 < P2 and T1 < P1; InZone = GD > P1 and GD < P2 and T2 <= Lowest(Low, P2Bar); If PTValid and HLValid and InZone Then Begin XA = P2 - T2; AB = P1 - T2; BC = P1 - T1; CD = GD - T1; AD = GD - T2; ABdXA = AB / XA; {AB should be 61.8% of XA} C1 = ABdXA > F1 - Tolerance and ABdXA < F1 + Tolerance; BCdAB = BC / AB; {BC should be 61.8-78.6% of AB} C2 = BCdAB > F1 - Tolerance and BCdAB < F2 + Tolerance; CDdBC = CD / BC; {CD should be 127-161.8% of BC} C3 = CDdBC > F3 - Tolerance and CDdBC < F4 + Tolerance; ADdXA = AD / XA; {AD should be 78.6% of XA} C4 = ADdXA > F2 - Tolerance and ADdXA < F2 + Tolerance; If C1 and C2 and C3 and C4 Then Begin TL1 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[T2Bar], Time[T2Bar], T2); If TL1 >= 0 Then Begin TL_SetColor(TL1, BearColor); TL_SetStyle(TL1, Tool_Solid); TL_SetSize(TL1, thickness); End; TL2 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[P1Bar], Time[P1Bar], P1); If TL2 >= 0 Then Begin TL_SetColor(TL2, BearColor); TL_SetStyle(TL2, Tool_Solid); TL_SetSize(TL1, thickness); End; TL3 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date[T1Bar], Time[T1Bar], T1); If TL3 >= 0 Then Begin TL_SetColor(TL3, BearColor); TL_SetStyle(TL3, Tool_Solid); TL_SetSize(TL3, thickness); End; if (DelMULTI) then begin if (TL4>0) then TL_Delete(TL4); if (TL5>0) then TL_Delete(TL5); if (TL5>0) then TL_Delete(TL6); end; TL4 = TL_New(Date[T1Bar], Time[T1Bar], T1, Date, Time, GD); If TL4 >= 0 Then Begin TL_SetColor(TL4, BearColor); TL_SetStyle(TL4, Tool_Solid); TL_SetSize(TL4, thickness); End; TL5 = TL_New(Date[P1Bar], Time[P1Bar], P1, Date, Time, GD); If TL5 >= 0 Then Begin TL_SetColor(TL5, BearColor); TL_SetStyle(TL5, Tool_Dotted); TL_SetSize(TL5, thickness); End; TL6 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date, Time, GD); If TL6 >= 0 Then Begin TL_SetColor(TL6, BearColor); TL_SetStyle(TL6, Tool_Dotted); TL_SetSize(TL6, thickness); End; TL7 = TL_New(Date[P2Bar], Time[P2Bar], P2, Date[P1Bar], Time[P1Bar], P1); If TL7 >= 0 Then Begin TL_SetColor(TL7, BearColor); TL_SetStyle(TL7, Tool_Dotted); TL_SetSize(TL7, thickness); End; TL8 = TL_New(Date[T2Bar], Time[T2Bar], T2, Date[T1Bar], Time[T1Bar], T1); If TL8 >= 0 Then Begin TL_SetColor(TL8, BearColor); TL_SetStyle(TL8, Tool_Dotted); TL_SetSize(TL8,thickness); End; End; End; End; |
|
|
|
|
|
#2 |
|
Senior Member
Join Date: Mar 2008
Posts: 142
Thanks: 0
Thanked 0 times in 0 posts
|
There is a Gartley indicator developed here:
http://www.ninjatrader-support2.com/...hlight=gartley For ticks (instead of %) an alteration of the above : http://www.ninjatrader-support2.com/...hlight=gartley |
|
|
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Gartley Patern indicatior | price777999 | NinjaScript File Sharing Discussion | 61 | 09-18-2012 02:29 PM |