Jump to content

Hurst Cycles Profile (HCP)


Maggoo

Recommended Posts

Hi great forum,

 

I am looking for easylanguage code for Hurst Cycles.

It is a free code, I found it for MT4 and others platforms but not for TS or MC.

I believe that I saw him on the TradeStation forum but I'm no longer a customer (for 2 years now) and this subject interests me.

If someone could help me !

 

Thanks in advance.

Link to comment
Share on other sites

  • 8 months later...
  • 1 month later...

Hurst Channel

 

Hi, here a TS code for Hurst Channel. This code work in TS and MCH.

 

[LegacyColorValue = TRUE];

 

{Hurst_Channel Indicator

 

Author: Clyde Lee, www.theswingmachine.com

[email protected]

 

Purpose: This indicator will plot two different

channels based on the centered moving

average of the median price of each day

plus & minus a selected multiple of the

N day average true range.

 

Suggested initial values have been supplied.

 

Reference: the Profit Magic of STOCK TRANSACTION TIMING

J.M. Hurst, Prentice-Hall, Inc. 1970 ....

 

Copyrighted 4/2001 by Clyde Lee. Permission to use for

personal evaluations granted so long as credit is given

if such evaluations are published.

 

Please let me know if you find useful changes or errors.

 

}

Input: Price1(MedianPrice of Data1);

Input: Length1(10),

ChanWid1(1); {Multiplier for ATR is positive }

{Percent*100 of Current price if Negative}

Input: Price2(MedianPrice of Data1);

Input: Length2(60),

ChanWid2(3);

Input: CompMode(0); {Compute mode for extension}

{0 = CMA shortening }

{>0= 2nd degree polynomial }

Input: StopDate(0);

 

Vars: ChanHi1(0), ChanLo1(0), WidChan1(Iff(ChanWid1>0,ChanWid1,-ChanWid1*.001)),

Ave1(0), ATR1(0),

SetBack1(IntPortion((Length1-1)/2)+1);

Vars: ChanHi2(0), ChanLo2(0), WidChan2(Iff(ChanWid2>0,ChanWid2,-ChanWid2*.001)),

Ave2(0), ATR2(0),

SetBack2(IntPortion((Length2-1)/2)+1);

Vars: DateStop(iff(stopdate<=0,1211231,StopDate)),Ipass(0);

 

 

If Length1>0 and Ipass=0 then begin

 

Ave1 = Average(Price1,Length1);

If ChanWid1>0

then ATR1 = AvgTrueRange(Length1)

else ATR1 = C;

ChanHi1= Ave1+ATR1*WidChan1;

ChanLo1= Ave1-ATR1*WidChan1;

 

 

Plot1[setBack1](ChanHi1,"HH1");

Plot2[setBack1](ChanLo1,"HL1");

 

If LastBarOnChart or Date>=DateStop then Begin

Value5 = (Ave1-Ave1[setBack1])/SetBack1;

For Value1 = SetBack1-1 downto 0 begin

Value3=0;

Value4=Value1*2;

For Value2=0 to Value4 begin

Value3=Value3+Price1[Value2];

End;

Ave1=Value3/(Value4+1);

If CompMode>0 then Ave1=Ave1*.33+(Ave1[1]+Value5*(SetBack1-Value1))*.67;

ChanHi1= Ave1+ATR1*WidChan1;

ChanLo1= Ave1-ATR1*WidChan1;

Plot1[Value1](ChanHi1,"HH1");

Plot2[Value1](ChanLo1,"HL1");

End;

If Length2=0 then IPass=1;

End;

End;

 

 

 

{Now for second channel}

If Length2>0 and Ipass=0 then begin

Ave2 = Average(Price2,Length2);

If ChanWid2>0

then ATR2 = AvgTrueRange(Length2)

else ATR2 = C;

ChanHi2= Ave2+ATR2*WidChan2;

ChanLo2= Ave2-ATR2*WidChan2;

 

Plot3[setBack2](ChanHi2,"HH2");

Plot4[setBack2](ChanLo2,"HL2");

 

If LastBarOnChart or Date>=DateStop then Begin

Value5 = (Ave2-Ave2[setBack2])/SetBack2;

For Value1 = SetBack2-1 downto 0 begin

Value3=0;

Value4=Value1*2;

For Value2=0 to Value4 begin

Value3=Value3+Price2[Value2];

End;

Ave2=Value3/(Value4+1);

If CompMode>0 then Ave2=Ave2*.33+(Ave2[1]+Value5*(SetBack2-Value1))*.67;

ChanHi2= Ave2+ATR2*WidChan2;

ChanLo2= Ave2-ATR2*WidChan2;

Plot3[Value1](ChanHi2,"HH2");

Plot4[Value1](ChanLo2,"HL2");

End;

IPass=1;

End;

End;

Link to comment
Share on other sites

  • 4 months later...
  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...