| 
 PureBytes Links 
Trading Reference Links 
 | 
 Rakesh, 
  
Try this formula from the library.  It is based on some of JM Hurst's work.  He's written some good books on this subject - check out "Profit from transaction timing" ~ that's not the exact title but something along those lines. 
  
Jason 
  
Plot ( Close, "Price", colorWhite, styleCandle );
//------------------------------------------------------ 
// -------------------- HURST DE --------------------- 
// --- by Ace 
//------------------------------------------------------ 
// Hurst DE based on Centered SMA's with a forward projected 
// curve based on A parabolic fit  
//------------------------------------------------------ 
// SET THE S/T and I/T PERIODS 
periodicity= Interval();
p1= Param("1) S/T DE Period",20,3,373,1);
p2= Param("2) I/T DE Period",50,3,373,1);
p3= Param("3) L/T DE Period",144,3,373,1);
//------------------------------------------------------ 
// Moving Averages and Lags 
//------------------------------------------------------ 
p0=p1/ 2;
IIf (p1/2!=round(p1/2),p0=p0-1,p0=p0);
Ave0= MA(Avg,p0);
Ave1= MA(Avg,p1);
Ave2= MA(Avg,p2);
Ave3= MA(Avg,p3);
Lag0=(p0+ 1)/2;
Lag1=(p1+ 1)/2;
Lag2=(p2+ 1)/2;
Lag3=(p3+ 1)/2;
//------------------------------------------------------ 
// Center the MA's 
//------------------------------------------------------ 
cma0= Ref(Ave0,Lag0);
cma1= Ref(Ave1,Lag1);
cma2= Ref(Ave2,Lag2);
cma3= Ref(Ave3,Lag3);
//------------------------------------------------------ 
// Percentage Based Widths 
//------------------------------------------------------ 
k= 3;
dp1= LastValue(Ref(StDev( (Close-cma1)/cma1, k*p1 ),(p1+1)/2-1));
dp2= LastValue(Ref(StDev( (Close-cma2)/cma2, k*p2 ),(p2+1)/2-1));
dp3= LastValue(Ref(StDev( (Close-cma3)/cma3, k*p3 ),(p3+1)/2-1));
//------------------------------------------------------ 
// Arithmetic Widths 
//------------------------------------------------------ 
/* 
Hilo=IIf(H-cma1>=cma1-L,H-cma1,L-cma1); 
//dp1=LastValue(Ref(StDev( (Close-cma1), k*p1 ),-Lag1)); 
dp1=LastValue(Ref(StDev( Hilo, k*p1 ),-Lag1)); 
Hilo=IIf(H-cma2>=cma2-L,H-cma2,L-cma2); 
//dp2=LastValue(Ref(StDev( Close-cma2, k*p2 ),-Lag2)); 
dp2=LastValue(Ref(StDev( Hilo, k*p2 ),-Lag2)); 
Hilo=IIf(H-cma3>=cma3-L,H-cma3,L-cma3); 
//dp3=LastValue(Ref(StDev( Close-cma3, k*p3 ),-Lag3)); 
dp3=LastValue(Ref(StDev( Hilo, k*p3 ),-Lag3)); 
*/ 
//------------------------------------------------------ 
// Calculate a Parabolic Extension for the S/T DE 
//------------------------------------------------------ 
tn= round(p1/6);
fillforward= BarIndex() >= LastValue( BarIndex() )-Lag1;
t= BarIndex()-Ref(BarIndex(),Lag1)+Lag1;
// Get Constants for the Parabolic fit equation 
Sm= LastValue(Ref(Ave1,-2*tn));
// This coordinate is actually t=0 
So= LastValue(Ref(Ave1,-tn));
Sp= LastValue(Ave1);
// Calculate coeff's for the parabola 
Ak=So;  
Bk=(Sp-Sm)/ 2/tn; 
Ck=(Sp+Sm- 2*So)/2/tn^2; 
parabfit1=Ak+Bk*t+Ck*t^ 2;
dy1= LastValue(Ave1)-Ak;
cma1= IIf(fillforward,parabfit1+dy1,cma1);
//------------------------------------------------------ 
// Calculate a Parabolic Extension for the I/T DE 
//------------------------------------------------------ 
tn= round(p2/6);
fillforward= BarIndex() >= LastValue( BarIndex() )-Lag2;
t= BarIndex()-Ref(BarIndex(),Lag2)+Lag2;
// Get Constants for the Parabolic fit equation 
Sm= LastValue(Ref(Ave2,-2*tn));
// This coordinate is actually t=0 
So= LastValue(Ref(Ave2,-tn));
Sp= LastValue(Ave2);
// Calculate coeff's for the parabola 
Ak=So;  
Bk=(Sp-Sm)/ 2/tn; 
Ck=(Sp+Sm- 2*So)/2/tn^2; 
parabfit2=Ak+Bk*t+Ck*t^ 2;
dy2= LastValue(Ave2)-Ak;
cma2= IIf(fillforward,parabfit2+dy2,cma2);
//------------------------------------------------------ 
// Calculate a Parabolic Extension for the L/T DE 
//------------------------------------------------------ 
tn= round(p3/6);
fillforward= BarIndex() >= LastValue( BarIndex() )-Lag3;
t= BarIndex()-Ref(BarIndex(),Lag3)+Lag3;
// Get Constants for the Parabolic fit equation 
Sm= LastValue(Ref(Ave3,-2*tn));
// This coordinate is actually t=0 
So= LastValue(Ref(Ave3,-tn));
Sp= LastValue(Ave3);
// Calculate coeff's for the parabola 
Ak=So;  
Bk=(Sp-Sm)/ 2/tn; 
Ck=(Sp+Sm- 2*So)/2/tn^2; 
parabfit3=Ak+Bk*t+Ck*t^ 2;
dy3= LastValue(Ave3)-Ak;
cma3= IIf(fillforward,parabfit3+dy3,cma3);
//------------------------------------------------------ 
// Fast MA with parabolic fit - p1/2 period 
//------------------------------------------------------ 
tn= round(p0/6);
fillforward= BarIndex() >= LastValue( BarIndex() )-Lag0;
t= BarIndex()-Ref(BarIndex(),Lag0)+Lag0;
// Get Constants for the Parabolic fit equation 
Sm= LastValue(Ref(Ave0,-2*tn));
// This coordinate is actually t=0 
So= LastValue(Ref(Ave0,-tn));
Sp= LastValue(Ave0);
// Calculate coeff's for the parabola 
Ak=So;  
Bk=(Sp-Sm)/ 2/tn; 
Ck=(Sp+Sm- 2*So)/2/tn^2; 
parabfit0=Ak+Bk*t+Ck*t^ 2;
dy0= LastValue(Ave0)-Ak;
cma0= IIf(fillforward,parabfit0+dy0,cma0);
//------------------------------------------------------ 
Plot ( Close, "OHLC", colorBlack, styleCandle);
//------------------------------------------------------ 
// Plot Arithmetic Bands 
//------------------------------------------------------ 
/* 
//Plot(cma1,"I/T-CTR",colorRed,styleLine);  
Plot(cma1+2*dp1,"S/T-UB",colorRed,styleLine); 
Plot(cma1-2*dp1,"S/T-LB",colorRed,styleLine); 
//Plot(cma2,"I/T-CTR",colorBlue,styleLine); 
Plot(cma2+2*dp2,"I/T-UB",colorBlue,styleLine); 
Plot(cma2-2*dp2,"I/T-LB",colorBlue,styleLine); 
//Plot(cma3,"L/T-CTR",colorGreen,styleLine); 
Plot(cma3+2*dp3,"L/T-UB",colorGreen,styleLine); 
Plot(cma3-2*dp3,"L/T-LB",colorGreen,styleLine); 
Plot(cma0,"Zline",colorBrown,styleLine); 
*/ 
//------------------------------------------------------ 
// Write the selected bar lengths to the window 
//------------------------------------------------------ 
"HURST DOMINANCY ENVELOPES" ;
"Current Periods are set to: " ;
"S/T Period: " +WriteVal(p1,3.0);
"I/T Period: " +WriteVal(p2,3.0);
"L/T Period: " +WriteVal(p3,3.0);
" " ;
"Select a range on the screen to calculate a period." ;
" " ;
rangelength =  EndValue( BarIndex() ) - BeginValue( BarIndex() );
"Selected Range is " +
WriteVal ( rangelength, format = 3.0 )+
" bars" ;
//------------------------------------------------------ 
// Use the below plotting for % Width Bands  
//------------------------------------------------------ 
m= 2.2;
Plot (cma1*(1+m*dp1),WriteVal(p1,3.0)+"p"+" UB",colorRed,styleLine);
Plot (cma1*(1-m*dp1),"LB",colorRed,styleLine);
Plot (cma2*(1+m*dp2),WriteVal(p2,3.0)+"p"+" UB",colorBlue,styleLine);
Plot (cma2*(1-m*dp2),"LB",colorBlue,styleLine);
Plot (cma3*(1+m*dp3),WriteVal(p3,3.0)+"p"+" UB",colorGreen,styleLine);
Plot (cma3*(1-m*dp3),"LB",colorGreen,styleLine);
ub=cma1*( 1+m*dp1);
Lb=cma1*( 1-m*dp1);
inpercentage1= Sum(IIf(H<ub AND H>lb AND L<ub AND 
L>lb, 1,0),3*p1)/3/p1*100;
"" ;
ub=cma2*( 1+2*dp2);
Lb=cma2*( 1-2*dp2);
inpercentage2= Sum(IIf(H<ub AND H>lb AND L<ub AND 
L>lb, 1,0),3*p2)/3/p2*100;
ub=cma3*( 1+2*dp3);
Lb=cma3*( 1-2*dp3);
inpercentage3= Sum(IIf(H<ub AND H>lb AND L<ub AND 
L>lb, 1,0),3*p3)/3/p3*100;
"" ;
WriteVal (inpercentage1,3.0)+"% prices within 1st DE over 3 Periods";
WriteVal (inpercentage2,3.0)+"% prices within 2nd DE over 3 Periods";
WriteVal (inpercentage3,3.0)+"% prices within 3rd DE over 3 Periods";
PlotShapes (IIf(Cross(BarIndex(),BarCount-1-
(p1+ 1)/2),shapeSmallUpTriangle,0), colorRed, 0, cma1*(1-2*dp1));
PlotShapes (IIf(Cross(BarIndex(),BarCount-1-
(p2+ 1)/2),shapeSmallUpTriangle,0), colorBlue, 0, cma2*(1-2*dp2));
PlotShapes (IIf(Cross(BarIndex(),BarCount-1-
(p3+ 1)/2),shapeSmallUpTriangle,0), colorGreen, 0, cma3*(1-2*dp3));
//------------------------------------------------------ 
// Clyde Lee said that Hurst recommended going back one  
// full cycle to and copy that centerline shape to the  
// shifted CMA to project forward for the envelopes. 
//------------------------------------------------------ 
dy1= LastValue(Ref(cma1,-3*p1/2))-LastValue(Ref(cma1,-p1/2));
RefCMA1= IIf(BarIndex()>=BarCount-p1/2-1,Ref(cma1,-p1),Null)-dy1;
Plot (RefCMA1*(1+m*dp1),"RefUB1",colorOrange);
Plot (RefCMA1*(1-m*dp1),"RefLB1",colorOrange);
  
dy2= LastValue(Ref(cma2,-3*p2/2))-LastValue(Ref(cma2,-p2/2));
Refcma2= IIf(BarIndex()>=BarCount-p2/2-1,Ref(cma2,-p2),Null)-dy2;
Plot (Refcma2*(1+m*dp2),"RefUB1",colorLightBlue);
Plot (Refcma2*(1-m*dp2),"RefLB1",colorLightBlue);
dy3= LastValue(Ref(cma3,-3*p3/2))-LastValue(Ref(cma3,-p3/2));
Refcma3= IIf(BarIndex()>=BarCount-p3/2-1,Ref(cma3,-p3),Null)-dy3;
Plot (Refcma3*(1+m*dp3),"RefUB1",colorSeaGreen);
Plot (Refcma3*(1-m*dp3),"RefLB1",colorSeaGreen);
a1=(C- Ref(C,-1))/(Ref(C,-1))*100;
b =  1041231;
a= DateNum()==b;
i= ValueWhen(a,C);
ii = ((C-i)/i)* 100;
Title =  Name() + " - " + WriteVal( DateTime(), formatDateTime ) + " - " + " Open: " + O + ", Hi: " + H + ", Low: " + L + ", Close: " + C + " " + NumToStr(a1,1.2) + "%" + ", Volume: " + Writeb =
 ________________________________________________________ Rakesh Sahgal <rakeshsahgal@xxxxxxxxx> wrote:  
Hi All
 
  Has anyone done any work on identifying the cycle prevalent in any market at a given point in time, that they would not mind sharing?
  TIA
 
  Rakesh
 
 
               __________________________________  Yahoo! Messenger  Show us what our next emoticon should look like. Join the fun.  http://www.advision.webevents.yahoo.com/emoticontest
 
  Please note that this group is for discussion between users only.
  To get support from AmiBroker please send an e-mail directly to  SUPPORT {at} amibroker.com
  For other support material please check also: http://www.amibroker.com/support.html
 
 
 
  
 
Yahoo! Groups Links 
  __________________________________________________ Do You Yahoo!? Tired of spam?  Yahoo! Mail has the best spam protection around  http://mail.yahoo.com 
  
Please note that this group is for discussion between users only. 
 
To get support from AmiBroker please send an e-mail directly to  
SUPPORT {at} amibroker.com 
 
For other support material please check also: 
http://www.amibroker.com/support.html 
 
  
 
 
Yahoo! Groups Links 
  |