Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

Gartley 222

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Gartley 222

    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
    There is a Gartley indicator developed here:



    For ticks (instead of %) an alteration of the above :

    Comment


      #3
      Do you have this coded out for N7 in a zip file?

      Thanks,

      Marc

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by bortz, 11-06-2023, 08:04 AM
      47 responses
      1,606 views
      0 likes
      Last Post aligator  
      Started by jaybedreamin, Today, 05:56 PM
      0 responses
      8 views
      0 likes
      Last Post jaybedreamin  
      Started by DJ888, 04-16-2024, 06:09 PM
      6 responses
      18 views
      0 likes
      Last Post DJ888
      by DJ888
       
      Started by Jon17, Today, 04:33 PM
      0 responses
      4 views
      0 likes
      Last Post Jon17
      by Jon17
       
      Started by Javierw.ok, Today, 04:12 PM
      0 responses
      13 views
      0 likes
      Last Post Javierw.ok  
      Working...
      X