Dark Theme
Light Theme
Trading Articles
Article Categories
Article Tools
Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to
register in order to view the content of the threads and start contributing to our community.
It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
Updated May 20, 2024
Top Posters
looks_one
Silvester17
with 177 posts (570 thanks)
looks_two
dorschden
with 99 posts (1,125 thanks)
looks_3
Big Mike
with 52 posts (90 thanks)
looks_4
jmont1
with 51 posts (23 thanks)
Best Posters
looks_one
dorschden
with 11.4 thanks per post
looks_two
Silvester17
with 3.2 thanks per post
looks_3
Big Mike
with 1.7 thanks per post
looks_4
sudhirc
with 1.7 thanks per post
trending_up
1,075,271 views
thumb_up
2,948 thanks given
group
613 followers
forum
2,094 posts
attach_file
615 attachments
June 13th, 2011, 08:44 PM
Manta, Ecuador
Site Administrator Developer Swing Trader
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,621 since Jun 2009
Thanks Given: 33,356
Thanks Received: 101,989
Can you help answer these questions from other members on NexusFi?
Best Threads (Most Thanked) in the last 7 days on NexusFi
June 16th, 2011, 02:37 PM
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.
June 16th, 2011, 09:29 PM
Manta, Ecuador
Site Administrator Developer Swing Trader
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,621 since Jun 2009
Thanks Given: 33,356
Thanks Received: 101,989
Felix trader
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
Attached Thumbnails
Attached Files
Elite Membership required to download: pesavento patterns.pla
June 16th, 2011, 11:21 PM
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.
June 16th, 2011, 11:38 PM
Manta, Ecuador
Site Administrator Developer Swing Trader
Experience: Advanced
Platform: Custom solution
Broker: IBKR
Trading: Stocks & Futures
Frequency: Every few days
Duration: Weeks
Posts: 50,621 since Jun 2009
Thanks Given: 33,356
Thanks Received: 101,989
Felix trader
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
June 17th, 2011, 02:49 AM
new york, new york
Posts: 49 since Apr 2010
Thanks Given: 62
Thanks Received: 9
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"
June 17th, 2011, 04:11 PM
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
June 18th, 2011, 02:47 PM
Germany
Experience: Master
Platform: NinjaTrader
Posts: 112 since Jun 2009
Thanks Given: 59
Thanks Received: 1,144
sudhir12192
Felix trader
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
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
June 18th, 2011, 02:50 PM
Germany
Experience: Master
Platform: NinjaTrader
Posts: 112 since Jun 2009
Thanks Given: 59
Thanks Received: 1,144
maxreturn
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
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
June 18th, 2011, 04:11 PM
Quebec Canada
Market Wizard
Experience: Intermediate
Platform: NinjaTrader
Broker: AMP/CQG
Trading: ES, NQ, YM
Frequency: Daily
Duration: Minutes
Posts: 4,530 since Oct 2009
Thanks Given: 4,183
Thanks Received: 6,030
dorschden,
Is it possible to show the time it takes to form each leg of a swing ?
Last Updated on May 20, 2024