NexusFi: Find Your Edge


Home Menu

 





PriceActionSwing discussion


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one Silvester17 with 177 posts (570 thanks)
    2. looks_two dorschden with 99 posts (1,128 thanks)
    3. looks_3 Big Mike with 52 posts (90 thanks)
    4. looks_4 jmont1 with 51 posts (23 thanks)
      Best Posters
    1. looks_one dorschden with 11.4 thanks per post
    2. looks_two Silvester17 with 3.2 thanks per post
    3. looks_3 Big Mike with 1.7 thanks per post
    4. looks_4 sudhirc with 1.7 thanks per post
    1. trending_up 2,178,468 views
    2. thumb_up 2,963 thanks given
    3. group 625 followers
    1. forum 2,106 posts
    2. attach_file 616 attachments




 
Search this Thread
  #221 (permalink)
 
Big Mike's Avatar
 Big Mike 
Manta, Ecuador
Site Administrator
Developer
Swing Trader
 R.I.P. 1977-2026 
 
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,669 since Jun 2009
Thanks Given: 33,669
Thanks Received: 102,597

Tip


Harmonic and Pattern Traders might want to join the Suri Duddella webinar tomorrow, Tue 14th @ 4:30pm Eastern:



Ten autographed copies of his book will be given away during the webinar. You can also submit your questions and be part of the Q&A.

If you miss the webinar, it will be posted in our usual webinar archives section:
Trading Webinars, Trading Videos - Big Mike Trading Forum




Mike




We're here to help: just ask the community or contact our Help Desk

Quick Links: Change your Username or Register as a Vendor
Searching for trading reviews? Review this list
Lifetime Elite Membership: Sign-up for only $149 USD
Exclusive money saving offers from our Site Sponsors: Browse Offers
Report problems with the site: Using the NexusFi changelog thread
Follow me on X Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #222 (permalink)
 Felix trader 
California - USA/Rio grande do sul-Brasil.
 
Experience: Intermediate
Platform: tradestation, ninja trader
Trading: Futuros
Posts: 88 since Apr 2011
Thanks Given: 851
Thanks Received: 23

Hello,
I don't know if in some where of this forum we have this, but, was this Indicator also made for Trade Station?

Thanks for the information.
Felix Trader

PS: I installed it on NT and works pretty well, but I've started to have freezing and its very stressfull, thats why I've asked about TS. Nt told me that some indicators might be causing this problems, I have the pivot zonez dayly v31, weekly v33, the scalper and some that the platform provides, not 3rd party, they also asked me that I modifed some set up on chart properties (display up date inverval, from 05 sec to 1sec), also that the indicators be set up on Calculate Bar on Close to true.


Reply With Quote
  #223 (permalink)
 
Big Mike's Avatar
 Big Mike 
Manta, Ecuador
Site Administrator
Developer
Swing Trader
 R.I.P. 1977-2026 
 
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,669 since Jun 2009
Thanks Given: 33,669
Thanks Received: 102,597


Felix trader View Post
Hello,
I don't know if in some where of this forum we have this, but, was this Indicator also made for Trade Station?

The closest thing I know of I have attached here, for MultiCharts and TradeStation. Shown in top panel of my screen shot, it draws harmonic patterns and retracements.

I'm unsure of the original author.

 
Code
                            
// Pesavento Pattern

//


Inputs:
// Parameters for ZigZag.

depth(12),
ExtDeviation(5),
ExtBackstep(3),
zigzagLinesColor(blue),

// Parameters for Pesavento Patterns.
 
 
ExtFractalEnd(7),  // Number of Fractals (maximums and minimums), connected with Lines
 
ExtDelta     (0.04),  // max Percent of difference from Pessavento numbers
 
ExtLine      (DarkBlue),
 
ExtLine886   (lightgray),
 
ExtNotFibo   (darkgray),
 
ExtPesavento (Yellow),
 
ExtGartley886(Yellow);

//===================================

Vars:
bar_resolution(0),

ExtLine_(0),

colorPPattern(green),

num_bar(0),
HL(0),
HLp(0),
kk(0),
kj(0),
Angle(0),

LowPrim(0),
HighPrim(0),
LowLast(0),
HighLast(0),

numLowPrim(0),
numHighPrim(0),
numLowLast(0),
numHighLast(0),
    
k(0),
k1(0),
k2(0),
ki(0),
    
kiPRZ(0),
countLow1(0),
countHigh1(0),
    
shift(0),
shift1(0),
    
txtkk(""),

countFr(0),
countBarEnd(0),
numBar(0),


// For ZigZag

   
back(0),
   
lasthighpos(0),
   
lastlowpos(0),
   
res(0),
   
curlow(0),
   
curhigh(0),
   
lasthigh(0),
   
lastlow(0),
   
i_var(0),
   
j_var(0);



Arrays:

double zz[1000](0),
double zzL[1000](0),
double zzH[1000](0),
_time[1000](0),


number[64](0),
numbertxt[64](""),
numberGartley[64](0),
numberMix[64](0);


//---------------------------------------------------------------------//
//---------------------------------------------------------------------//
//---------------------------------------------------------------------//


if currentbar > 1000 then num_bar = 1000 else num_bar = currentbar;


for 
i_var = 0 to ( num_bar - 1 )
begin
_time
[i_var] = time_s[i_var];
end;


if ( 
LastCalcTime_s = time_s ) and ( LastCalcDate = date ) then

begin


if ( currentbar > depth ) then

begin


   
if (ExtDelta<=0) then raiseruntimeerror("ExtDelta parameter should be >0 and <=1");
   if (
ExtDelta>1) then raiseruntimeerror("ExtDelta parameter should be >0 and <=1");
   
   if ( 
ExtFractalEnd <= 0 ) then raiseruntimeerror("ExtFractalEnd parameter should be >=1");
   

   
number                [0]=0.111;
   
numbertxt             [0]=".111";

   
number                [1]=0.125;
   
numbertxt             [1]=".125";
   
numberMix             [1]=1;

   
number                [2]=0.146;
   
numbertxt             [2]=".146";

   
number                [3]=0.167;
   
numbertxt             [3]=".167";

   
number                [4]=0.177;
   
numbertxt             [4]=".177";

   
number                [5]=0.186;
   
numbertxt             [5]=".186";

   
number                [6]=0.192;
   
numbertxt             [6]=".192";

   
number                [7]=0.2;
   
numbertxt             [7]=".2";

   
number                [8]=0.236;
   
numbertxt             [8]=".236";
   
numberMix             [8]=1;

   
number                [9]=0.25;
   
numbertxt             [9]=".25";

   
number                [10]=0.3;
   
numbertxt             [10]=".3";

   
number                [11]=0.333;
   
numbertxt             [11]=".333";

   
number                [12]=0.354;
   
numbertxt             [12]=".354";

   
number                [13]=0.382;
   
numbertxt             [13]=".382";
   
numberGartley         [13]=1;

   
number                [14]=0.447;
   
numbertxt             [14]=".447";
   
numberGartley         [14]=1;

   
number                [15]=0.486;
   
numbertxt             [15]=".486";

   
number                [16]=0.5;
   
numbertxt             [16]=".5";
   
numberGartley         [16]=1;

   
number                [17]=0.526;
   
numbertxt             [17]=".526";

   
number                [18]=0.577;
   
numbertxt             [18]=".577";

   
number                [19]=0.618;
   
numbertxt             [19]=".618";
   
numberGartley         [19]=1;

   
number                [20]=0.667;
   
numbertxt             [20]=".667";

   
number                [21]=0.707;
   
numbertxt             [21]=".707";
   
numberGartley         [21]=1;

   
number                [22]=0.764;
   
numbertxt             [22]=".764";

   
number                [23]=0.786;
   
numbertxt             [23]=".786";
   
numberGartley         [23]=1;

   
number                [24]=0.809;
   
numbertxt             [24]=".809";

   
number                [25]=0.841;
   
numbertxt             [25]=".841";

   
number                [26]=0.854;
   
numbertxt             [26]=".854";
   
numberMix             [26]=1;

   
number                [27]=0.874;
   
numbertxt             [27]=".874";

   
number                [28]=0.886;
   
numbertxt             [28]=".886";
   
numberGartley         [28]=1;

   
number                [29]=1.0;
   
numbertxt             [29]="1.";
   
numberGartley         [29]=1;

   
number                [30]=1.128;
   
numbertxt             [30]="1.128";
   
numberGartley         [30]=1;

   
number                [31]=1.236;
   
numbertxt             [31]="1.236";

   
number                [32]=1.272;
   
numbertxt             [32]="1.272";
   
numberGartley         [32]=1;

   
number                [33]=1.309;
   
numbertxt             [33]="1.309";

   
number                [34]=1.414;
   
numbertxt             [34]="1.414";
   
numberGartley         [34]=1;

   
number                [35]=1.5;
   
numbertxt             [35]="1.5";


   
number                [36]=1.618;
   
numbertxt             [36]="1.618";
   
numberGartley         [36]=1;

   
number                [37]=1.732;
   
numbertxt             [37]="1.732";
   
numberMix             [37]=1;


   
number                [38]=1.75;
   
numbertxt             [38]="1.75";

   
number                [39]=1.902;
   
numbertxt             [39]="1.902";
   
numberMix             [39]=1;

   
number                [40]=2.0;
   
numbertxt             [40]="2.";
   
numberGartley         [40]=1;

   
number                [41]=2.058;
   
numbertxt             [41]="2.058";

   
number                [42]=2.236;
   
numbertxt             [42]="2.236";
   
numberGartley         [42]=1;

   
number                [43]=2.288;
   
numbertxt             [43]="2.288";

   
number                [44]=2.5;
   
numbertxt             [44]="2.5";

   
number                [45]=2.618;
   
numbertxt             [45]="2.618";
   
numberGartley         [45]=1;

   
number                [46]=2.828;
   
numbertxt             [46]="2.828";

   
number                [47]=3.0;

   
number                [48]=3.142;
   
numbertxt             [48]="3.142";
   
numberGartley         [48]=1;

   
number                [49]=3.236;
   
numbertxt             [49]="3.236";

   
number                [50]=3.33;
   
numbertxt             [50]="3.33";

   
number                [51]=3.464;
   
numbertxt             [51]="3.464";

   
number                [52]=3.618;
   
numbertxt             [52]="3.618";
   
numberGartley         [52]=1;

   
number                [53]=4.0;
   
numbertxt             [53]="4.";

   
number                [54]=4.236;
   
numbertxt             [54]="4.236";

   
number                [55]=4.472;
   
numbertxt             [55]="4.472";

   
number                [56]=5.0;
   
numbertxt             [56]="5.";

   
number                [57]=5.2;
   
numbertxt             [57]="5.2";

   
number                [58]=5.388;
   
numbertxt             [58]="5.388";

   
number                [59]=5.657;
   
numbertxt             [59]="5.657";

   
number                [60]=6.0;
   
numbertxt             [60]="6.";

   
number                [61]=6.854;
   
numbertxt             [61]="6.854";

   
number                [62]=8.0;
   
numbertxt             [62]="8.";

   
number                [63]=9.0;
   
numbertxt             [63]="9.";
  

value1 = 0; 
lasthighpos = -1;
lastlowpos = -1;
res = 0;
curlow = -1;
curhigh = -1;
lasthigh = -1;
lastlow = -1;


//  ZigZag plotting. Begin.


         
for shift = ( num_bar - 1 ) downto 0
           begin
            zz
[shift] = 0; 
            
zzL[shift] = 0; 
            
zzH[shift] = 0;
           
end;
           
      for 
shift = ( num_bar - depth ) downto 0
        begin
         value1 
= Low[ LowestBar(low, depth)[shift] ];
         if (
value1 = lastlow) then value1 = 0.0
         
else 
           
begin 
             lastlow 
= value1; 
            if ( ( 
Low[shift] - value1 ) > extdeviation*PointValue ) then value1 = 0.0
            
else
              
begin
               
for back = 1 to extbackstep
                 begin
                  res 
= zzL[shift+back];
                  if ( ( 
res <> 0 ) and ( res > value1 ) ) then zzL[shift+back] = 0.0; 
                 
end;
              
end;
           
end; 
          if ( 
Low[shift] = value1 ) then zzL[shift] = value1;

          
value1 = High[ HighestBar(high, depth)[shift] ];
          if ( 
value1 = lasthigh ) then value1 = 0.0
          
else 
            
begin
             lasthigh 
= value1;
             if ( ( 
value1 - High[shift] ) > extdeviation*pointValue ) then value1 = 0.0
             
else
               
begin
                
for back = 1 to extbackstep
                  begin
                   res 
= zzH[shift+back];
                   if ( ( 
res <> 0 ) and ( res < value1 ) ) then zzH[shift+back] = 0.0; 
                  
end; 
               
end;
            
end;
          if ( 
High[shift] = value1 ) then zzH[shift] = value1;
        
end;

      
lasthigh = -1; 
      
lasthighpos = -1;
      
lastlow = -1;  
      
lastlowpos = -1;

      for 
shift = (num_bar - depth) downto 0
        begin
         curlow 
= zzL[shift];
         
curhigh = zzH[shift];
         if ( ( 
curlow = 0 ) and ( curhigh = 0 ) ) then
         value1 
= value1
         
else
         
begin

         
if ( curhigh <> 0 ) then
           begin
            
if ( lasthigh > 0 ) then
              begin
                
if (lasthigh < curhigh ) then zzH[lasthighpos] = 0
               
else zzH[shift] = 0;
              
end;

            if ( (
lasthigh < curhigh) or (lasthigh < 0) ) then
              begin
               lasthigh 
= curhigh;
               
lasthighpos = shift;
              
end;
            
lastlow = -1;
           
end;

         if ( 
curlow <> 0 ) then
           begin
            
if ( lastlow > 0 ) then
              begin
               
if ( lastlow > curlow ) then zzL[lastlowpos] = 0
               
else zzL[shift] = 0;
              
end;

            if ( ( 
curlow < lastlow ) or ( lastlow < 0 ) ) then
              begin
               lastlow 
= curlow;
               
lastlowpos = shift;
              
end; 
            
lasthigh = -1;
           
end;
           
end;
        
end;
        
      for 
shift = num_bar - 1 downto 0
        begin
         zz
[shift] = zzL[shift];
         if ( 
shift >= num_bar-depth ) then
             begin
             zzH
[shift] = 0.0; 
             
zzL[shift] = 0.0; 
             
zz[shift]  = 0.0;
             
end
         
else
           
begin
            res 
= zzH[shift];
            if ( 
res <> 0.0 ) then zz[shift] = res;              
           
end;
        
end;


// Check for humpbacks and their removing. Begin.

vars:  vel1(0), 
    
vel2(0),
    
vel3(0), 
    
vel4(0),
    
bar_(0),
    
bar1(0), 
    
bar2(0), 
    
bar3(0), 
    
bar4(0),
       
count_(0);
       
   for 
bar_ = ( num_bar - depth ) downto 0
     begin
      
if ( zz[bar_] <> 0 ) then
        begin
         count_ 
= count_ + 1;
         
vel4 = vel3;
         
bar4 = bar3;
         
vel3 = vel2;
         
bar3 = bar2;
         
vel2 = vel1;
         
bar2 = bar1;
         
vel1 = zz[bar_];
         
bar1 = bar_;
         if ( 
count_>=3 ) then
             begin 
            
if ( ( vel3 < vel2 ) and ( vel2 < vel1 ) ) then
                begin
                zz
[bar2] = 0;
                
zzL[bar2] = 0;
                
zzH[bar2] = 0;
                
bar_ = bar3 + 1;
                
end;
             if ( ( 
vel3 > vel2 ) and ( vel2 > vel1 ) ) then
                 begin
                 zz
[bar2] = 0;
                 
zzL[bar2] = 0;
                 
zzH[bar2] = 0;
                 
bar_ = bar3 + 1;
                 
end;
             if ( ( 
vel2 = vel1 ) and ( vel1 <> 0 ) ) then
                 begin
                 zz
[bar1] = 0;
                 
zzL[bar1] = 0;
                 
zzH[bar1] = 0;
                 
bar_ = bar3 + 1;
                 
end;
             
end;
        
end;
    
end; 

// Check for humpbacks and their removing. End.


value1 = 0;

i_var = 1;
while(
i_var > 0)
begin
i_var 
= tl_getfirst(1);
tl_delete(i_var);
end;
        

for 
shift = (num_bar - 1) downto 0
begin
if zz[shift] <> 0 then
    begin
    
if (value1 <> 0) then 
        begin
        value11 
= date[value2];
        
value12 = time_s[value2];
        
value13 = value1;
        
value21 = date[shift];
        
value22 = time_s[shift];
        
value23 = zz[shift];  
        
        
j_var = TL_new_s(value11, value12, value13, value21, value22, value23);        
        
tl_setcolor(j_var, zigzagLinesColor);    

        
end;
    
value1 = zz[shift];
    
value2 = shift; 
    
end;
end;

//  ZigZag plotting. End.


         
if ( ExtFractalEnd > 0) then
           begin
            k 
= ExtFractalEnd;
            for 
shift = 0 to num_bar 
              begin 
               
if ( zz[shift] > 0 and zzH[shift] > 0 ) then
                   begin 
                   
if k > 0 then
                   begin
                     countBarEnd 
= shift; 
                     
k = k - 1;
                     
end;
                     
end;
              
end;
           
end;


// count Fractal ( count maximums and minimums ). Begin.

   
countLow1 = 0;
   
countHigh1 = 0;
     
begin
      
for shift = 0 to countBarEnd
        begin
         
if (zzL[shift] > 0.0) then countLow1 = countLow1 + 1;
         if (
zzH[shift] > 0.0) then countHigh1 = countHigh1 + 1;
        
end;
     
end;

// count Fractal ( count maximums and minimums ). End.


i_var = 1;
while(
i_var > 0)
begin
i_var 
= text_getfirst(1);
text_delete(i_var);
end;

//+--------------------------------------------------------------------------+
//| printing Pessavento and 0.886 for maximums of ZigZag
//+--------------------------------------------------------------------------+

   
numLowPrim = 0; 
   
numLowLast = 0;
   
numHighPrim = 0; 
   
numHighLast = 0;

   
LowPrim = 0.0; 
   
LowLast = 0.0;
   
HighPrim = 0.0; 
   
HighLast = 0.0;

   
Angle = -100;
   
   
 
countFr = ExtFractalend;

   for 
k = 0 to ( num_bar - 1 )
   
begin
     
if ( countHigh1 > 0 and countFr > 0 ) then
     begin
      
      
if ( zzL[k] > 0.0 and ( zzL[k] < LowPrim or LowPrim = 0.0 ) 
                    and 
HighPrim > 0 and zzL[k] = zz[k] ) then
        begin
         LowPrim 
= Low[k]; 
         
numLowPrim = k;
        
end;
      if ( 
zzH[k] > 0.0 and zzH[k] = zz[k] ) then
        begin
         
if ( HighPrim > 0 ) then
           begin

            HighLast 
= High[k];
            
numHighLast = k;

            
HL = HighLast - LowPrim;
            
kj = (HighPrim-HighLast)*1000/(numHighLast-numHighPrim);
            if ( 
HL > 0 and ( Angle >= kj or Angle = -100 ) ) then
              begin
               Angle 
= kj;

               
HLp = HighPrim - LowPrim;
               
k1 = ceiling((numHighPrim+numHighLast)/2);
               
kj = HLp/HL;
          
               
ExtLine_ = ExtLine;
               if ( 
kj > 0.1 and kj < 9.36 ) then
                 begin
                  kk 
= kj;
                  
k2 = 1;
        
                  
    
ki = 0;
    
colorPPattern = ExtNotFibo;
    
ki = kiPRZ;
    
condition1 = true;
    
while (
ki <= 63) and (condition1)
    
begin
       
if ( numberGartley[ki] > 0 ) then
              
if ( absvalue((number[ki]-kj)/number[ki]) <= ExtDelta ) then
                  begin
                     kk 
= number[ki]; 
                     
txtkk = numbertxt[ki]; 
                     
k2 = -1; 
                     
colorPPattern = ExtGartley886;
                     
condition1 = false;
                     
end
       
else if ( numberMix[ki] > 0 ) then
           
if ( absvalue((number[ki]-kj)/number[ki]) <= ExtDelta ) then
               begin
                     kk 
= number[ki]; 
                     
txtkk = numbertxt[ki]; 
                     
k2 = -1; 
                     
colorPPattern = ExtPesavento; 
                     
condition1 = false;
                     
end;
      
ki = ki + 1;
    
end;

                  
                  if ( 
k2 < 0 ) then
                    begin
                    ExtLine_ 
= ExtLine886;
                       
i_var = text_new_s(d[k1], time_s[k1], (HighPrim+highlast)/2, txtkk);
                       
text_setcolor(i_var, colorPpattern);
                       
text_setsize(i_var, 8);
                    
end
                  
else
                    
begin
                       txtkk 
= numtostr(kk, 3);
                       
i_var = text_new_s(d[k1], time_s[k1], (HighPrim+highlast)/2, txtkk);
                       
text_setcolor(i_var, colorPpattern);
                       
text_setsize(i_var, 8);
                    
end;

                    
i_var = tl_new_s(d[numHighLast], time_s[numHighLast], HighLast, d[numHighPrim], time_s[numHighPrim], HighPrim);
                    
tl_setstyle(i_var, 3);
                    
tl_setcolor(i_var, extline_);
                    
                 
end;
              
end;
           
end
         
else 
           
begin
            HighPrim 
= High[k];
            
numHighPrim = k;
           
end;
        
end;

       if ( 
k > countBarEnd ) then 
         begin
          k 
= numHighPrim + 1; 
          
countHigh1 = countHigh1 - 1; 
          
countFr = countFr - 1;
        
          
numLowPrim = 0; 
          
numLowLast = 0;
          
numHighPrim = 0; 
          
numHighLast = 0;

          
LowPrim = 0.0; 
          
LowLast = 0.0;
          
HighPrim = 0.0; 
          
HighLast = 0.0;
           
          
Angle = -100;
         
end;
         
     
end;
     
end;
     
//+-------------------------------------------------------------------------+
//| printing Pessavento and 0.886 for minimums of ZigZag
//+-------------------------------------------------------------------------+

   
numLowPrim = 0; 
   
numLowLast = 0;
   
numHighPrim = 0; 
   
numHighLast = 0;

   
LowPrim = 0.0; 
   
LowLast = 0.0;
   
HighPrim = 0.0; 
   
HighLast = 0.0;

   
Angle = -100;


 
countFr = ExtFractalend;
   
   for 
k = 0 to ( num_bar - 1 )
   
begin 
   
if ( countLow1 > 0 and countFr > 0 ) then
     begin
      
if ( zzH[k] > HighPrim and LowPrim > 0 ) then
        begin
         HighPrim 
= High[k];
         
numHighPrim = k;
        
end;

      if ( 
zzL[k] > 0.0 and zzL[k] = zz[k] ) then
        begin
         
if ( LowPrim > 0 ) then
           begin

            LowLast 
= Low[k];
            
numLowLast = k;

            
HL = HighPrim - LowLast;
            
kj = (LowPrim-LowLast)*1000/(numLowLast-numLowPrim);
            if ( 
HL > 0 and ( Angle <= kj  or  Angle = -100)) then
              begin
               Angle 
= kj;

               
HLp = HighPrim-LowPrim;
               
k1 = ceiling((numLowPrim+numLowLast)/2);
               
kj = HLp/HL;

               
ExtLine_ = ExtLine;
               if ( 
kj > 0.1 and kj < 9.36) then
                 begin
                  kk 
= kj;
                  
k2 = 1;
                  
                  
    
ki = 0;
    
colorPPattern = ExtNotFibo;
    
ki = kiPRZ;
    
condition1 = true;
    
while (
ki <= 63) and (condition1)
    
begin
       
if ( numberGartley[ki] > 0 ) then
              
if ( absvalue((number[ki]-kj)/number[ki]) <= ExtDelta ) then
                  begin
                     kk 
= number[ki]; 
                     
txtkk = numbertxt[ki]; 
                     
k2 = -1; 
                     
colorPPattern = ExtGartley886;
                     
condition1 = false;
                     
end
       
else if ( numberMix[ki] > 0 ) then
           
if ( absvalue((number[ki]-kj)/number[ki]) <= ExtDelta ) then
               begin
                     kk 
= number[ki]; 
                     
txtkk = numbertxt[ki]; 
                     
k2 = -1; 
                     
colorPPattern = ExtPesavento; 
                     
condition1 = false;
                     
end;
      
ki = ki + 1;
      
end;
  

                  
                  if ( 
k2 < 0 ) then
                    begin
                     ExtLine_ 
= ExtLine886;
                       
i_var = text_new_s(d[k1], time_s[k1], (lowprim+lowlast)/2, txtkk);
                       
text_setcolor(i_var, colorPpattern);
                       
text_setsize(i_var, 8);
                    
end
                  
else 
                    
begin 
              txtkk 
= NumToStr(kk, 3);
                       
i_var = text_new_s(d[k1], time_s[k1], (lowprim+lowlast)/2, txtkk);
                       
text_setcolor(i_var, colorPpattern);
                       
text_setsize(i_var, 8);
                    
end;
                     
                    
i_var = tl_new_s(d[numlowlast], time_s[numlowlast], lowLast, d[numlowPrim], time_s[numlowPrim], lowPrim);
                    
tl_setstyle(i_var, 3);
                    
tl_setcolor(i_var, extline_);
                    
                  
end;
               
end;
           
end
         
else
           
begin
            numLowPrim 
= k; 
            
LowPrim = Low[k];
           
end;
        
end;

       if (
k > countBarEnd) then
         begin
          k 
= numLowPrim + 1; 
          
countLow1 = countLow1 - 1; 
          
countFr = countFr - 1;

          
numLowPrim = 0; 
          
numLowLast = 0;
          
numHighPrim = 0; 
          
numHighLast = 0;

          
LowPrim = 0.0; 
          
LowLast = 0.0;
          
HighPrim = 0.0; 
          
HighLast = 0.0;
  
          
Angle = -100;
         
end;

     
end;
end;


end;


end; 
Mike




We're here to help: just ask the community or contact our Help Desk

Quick Links: Change your Username or Register as a Vendor
Searching for trading reviews? Review this list
Lifetime Elite Membership: Sign-up for only $149 USD
Exclusive money saving offers from our Site Sponsors: Browse Offers
Report problems with the site: Using the NexusFi changelog thread
Attached Thumbnails
Click image for larger version

Name:	6-16-2011 8-27-08 PM.png
Views:	666
Size:	45.4 KB
ID:	41292  
Attached Files
Elite Membership required to download: pesavento patterns.pla
Follow me on X Visit my NexusFi Trade Journal Reply With Quote
  #224 (permalink)
 Felix trader 
California - USA/Rio grande do sul-Brasil.
 
Experience: Intermediate
Platform: tradestation, ninja trader
Trading: Futuros
Posts: 88 since Apr 2011
Thanks Given: 851
Thanks Received: 23

Mike,
Thanks a lot for your indicator.
But the problem is that I don't know how to pu it into the platform. lol

Also congrats for the Forum Aniversary.

Thanks Again,
Felix.


Reply With Quote
Thanked by:
  #225 (permalink)
 
Big Mike's Avatar
 Big Mike 
Manta, Ecuador
Site Administrator
Developer
Swing Trader
 R.I.P. 1977-2026 
 
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,669 since Jun 2009
Thanks Given: 33,669
Thanks Received: 102,597


Felix trader View Post
Mike,
Thanks a lot for your indicator.
But the problem is that I don't know how to pu it into the platform. lol

Also congrats for the Forum Aniversary.

Thanks Again,
Felix.

I don't use TradeStation, but you should just open the easylanguage editor, paste the code, and compile it as an indicator. If you don't know how to do that then neither do, having never used the platform - and we are for this thread so you'll need to create a new thread in the TradeStation section of the forum to ask for help.

Mike




We're here to help: just ask the community or contact our Help Desk

Quick Links: Change your Username or Register as a Vendor
Searching for trading reviews? Review this list
Lifetime Elite Membership: Sign-up for only $149 USD
Exclusive money saving offers from our Site Sponsors: Browse Offers
Report problems with the site: Using the NexusFi changelog thread
Follow me on X Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #226 (permalink)
mystiq
new york, new york
 
Posts: 49 since Apr 2010
Thanks Given: 62
Thanks Received: 10

regarding using market analyzer...


"Hey mystiq,

you have to add DataSeries variables with the specific values to the indicator. The DataSeries must be public to get access from the marekt analyzer.

The download contains a second indicator called PriceActionSwingRelation. Look for long entries if the value is above 0 and for short vice versa.
-2 = DT
-1 = LL and LH
0 = price is nowhere
1 = HH and HL
2 = DB
...can you provide ONE example for (1 = HH and HL)..does it require modifying the code below:

// See where price is in relation to the swingsint priceSwingRelation;priceSwingRelation = PriceActionSwing(calcMode, calcSize, dtbStrength, psarAcceleration, psarAccelerationMax, psarAccelerationStep).PriceSwingRelation[0];
// True, if the indicator flips from searching swing lows to swing highsbool upFlip;upFlip = PriceActionSwing(calcMode, calcSize, dtbStrength, psarAcceleration, psarAccelerationMax, psarAccelerationStep).UpFlip[0];
// True, if the indicator flips from searching swing highs to swing lowsbool dnFlip;dnFlip = PriceActionSwing(calcMode, calcSize, dtbStrength, psarAcceleration, psarAccelerationMax, psarAccelerationStep).DnFlip[0];Thanks"


Reply With Quote
  #227 (permalink)
 maxreturn 
Grand Rapids, Michigan, United States
 
Experience: Intermediate
Platform: NinjaTrader
Trading: TF, 6E
Posts: 319 since Dec 2010
Thanks Given: 264
Thanks Received: 114

Hello Dorschden. First, I need to compliment you on this terrific indicator. I can see why it's the #1 download! I like using a previous version of the indi which allows for Zig Zag UTC. One of the most useful features in my view is the volume by swing. One thing that I have noticed is that if "calculate on bar close" is set to false, it is necessary to hit "f5" repeatedly to get it to update with the correct cumulative volume. I haven't noticed this problem when "calculate on bar close" is set to true. But then, of course you cannot see the volume update while the current bar is forming. Is there any way the code can be rewritten to update the volume intrabar?

Best Regards
Chuck


Reply With Quote
  #228 (permalink)
 dorschden 
Germany
 
Experience: Master
Platform: NinjaTrader
Posts: 112 since Jun 2009
Thanks Given: 62
Thanks Received: 1,147


sudhir12192 View Post
CAN THIS PRICE ACTION INDICATOR BE CONVERTED TO MT4


Felix trader View Post
was this Indicator also made for Trade Station?

I code this only for Ninjatrader and not planing to convert it in the near future to any other platform.


inmax View Post
Is there a chance to this indicator to identify swings of at least "x" pips ?
Is there any indicator to the NT which determine the swings by number of pips?

This indicator can't identify swings of at least "x" pips. Maybe I'll add this kind of swing calculation to a further update, but not in the next weeks. Try other zig zag indicators for NT until then.

dorschden


Started this thread Reply With Quote
  #229 (permalink)
 dorschden 
Germany
 
Experience: Master
Platform: NinjaTrader
Posts: 112 since Jun 2009
Thanks Given: 62
Thanks Received: 1,147


maxreturn View Post
I like using a previous version of the indi which allows for Zig Zag UTC.
One thing that I have noticed is that if "calculate on bar close" is set to false, it is necessary to hit "f5" repeatedly to get it to update with the correct cumulative volume.

Hi Chuck,

the volume used for the swings is the whole volume of all bars in the swing and the part of the volume of the bar, that makes the swing. For example on a 5 minute chart, the bar makes a new low after 1 minute, then only the volume of the first minute is used and the other 4 minutes aren't.

Do you see a big difference between the standard calculation mode and the Zig Zag UTC? Earlier I also used the Zig Zag UTC version but with the time I preferred the standard mode.


mystiq View Post
regarding using market analyzer...
can you provide ONE example for (1 = HH and HL)

Hi mystiq,

For this you don't need to change the code. Just open a market analyzer and add an indicator column with the PriceActionSwingIndicator and in the "Plot" line in choose "SwingRelation". See the picture.



dorschden


Started this thread Reply With Quote
Thanked by:
  #230 (permalink)
 
trendisyourfriend's Avatar
 trendisyourfriend 
Quebec Canada
 
Experience: Intermediate
Platform: NinjaTrader
Broker: AMP/CQG
Trading: ES, NQ, YM
Frequency: Daily
Duration: Minutes
Posts: 4,581 since Oct 2009
Thanks Given: 4,267
Thanks Received: 6,212

dorschden,

Is it possible to show the time it takes to form each leg of a swing ?


Reply With Quote




Last Updated on May 3, 2026


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top
no new posts