Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

derek2209

EasyLanguage Convolution Indicator by John F. Ehlers

Recommended Posts

Hi Traderslaboratory

 

In John F Ehlers Book " Cycle-Analytics-for-Traders "

The EasyLanguage code to compute the Convolution indicator is given in

Code Listing 13-1.

EasyLanguage Code to Compute and Display Convolution

 

/////////////////////////////////////////////////////////////////////////////

the line in the book and below is incomplete

i.e.

<<< If Filt[intPortion(.5*N)] < Filt Convolution[N] = (1 + (ExpValue Blank >>>

 

To get Indicator to run inserted the line below

 

<<< If (IntPortion(.5*N))>Filt then Convolution[N]=(1+ExpValue(N)); >>>

Could someone please correct this effort

///////////////////////////////////////////////////////////////////////////

 

See attached pdf " Ehlers Convolution Indicator" for the original code

 

Thank you in advance

Derek

 

The EasyLanguage code to compute the Convolution 
indicator is given in Code Listing 13-1. 
Code Listing 13-1.
EasyLanguage
Code to Compute
and Display
Convolution
{ Convolution Indicator 
(c) 2013 John F. Ehlers 

} 
Inputs: 
ShortestPeriod(40), 
LongestPeriod(80); 
Vars: 
alpha1(0), 
HP(0), 
a1(0), 
b1(0), 
c1(0), 
c2(0), 
c3(0), 
Filt(0), 
N(0), 
II(0), 
X(0), 
Y(0), 
Sx(0), 
Sy(0), 
Sxx(0), 
Syy(0), 
Sxy(0), 
Color1(0), 
Color2(0), 
Color3(0); 
Arrays: 

Corr[48](0), 
Slope[48](0), 
Convolution[48](0); 
//HighPass filter cyclic component 
alpha1 = (Cosine(1.414*360 / Longe 
HP = (1 - alpha1 / 2)* 
(1 - alpha1 / 2)* 
(Close - 2*Close[1] + Close[2]) + 
(1 - alpha1)*HP[1] - (1 - alpha1)* 
(1 - alpha1)*HP[2]; 
//Smooth with a Super Smoother Fil 
a1 = expvalue(-1.414*3.14159 / Sho
b1 = 2*a1*Cosine(1.414*180 / Short
c2 = b1;
c3 = -a1*a1;
c1 = 1 - c2 - c3;
Filt = c1*
(HP + HP[1]) / 2 + c2*Filt[1] + c3

For N = 1 to 48 Begin 
Sx = 0; 
Sy = 0; 
Sxx = 0; 
Syy = 0; 
Sxy = 0; 
For II = 1 to N Begin
X = Filt[iI - 1];
Y = Filt[N - II];
Sx = Sx + X;
Sy = Sy + Y;
Sxx = Sxx + X*X;
Sxy = Sxy + X*Y;
Syy = Syy + Y*Y; 
End; 
If (N*Sxx - Sx*Sx)*
(N*Syy - Sy*Sy) > 0 Then Corr[N] =
(N*Syy - Sy*Sy)); 
Slope[N] = 1; 

{//////////////////////////////////////////////////////////////////////////////////////////

In John  F Ehlers Book  " Cycle-Analytics-for-Traders"
The EasyLanguage code to compute the Convolution indicator is given in Code Listing 13-1.

the line in the book and below is incomplete
i.e.
<<<  If Filt[intPortion(.5*N)] < Filt Convolution[N] = (1 + (ExpValue  >>>

To get Indicator to run   substitued the line below

<<<  If (IntPortion(.5*N))>Filt then Convolution[N]=(1+ExpValue(N));  >>>
Could someone please correct this effort

/////////////////////////////////////////////////////////////////////////////////////////////}


If (IntPortion(.5*N))>Filt then Convolution[N]=(1+ExpValue(N));
End;
//Plot as a Heatmap
For N = 3 to 48 Begin 
If Slope[N] > 0 Then Begin

Color1 = 255*Convolution[N];
Color2 = 0; 
End; 
If Slope[N] < 0 Then Begin
Color1 = 0;
Color2 = 255*Convolution[N]; 
End; 
Color3 = 0; 
If N = 2 Then Plot2[4]
(2, “S2”, RGB(Color1, Color2, Colo 
If N = 3 Then Plot3[4]
(3, “S3”, RGB(Color1, Color2, Colo 
If N = 4 Then Plot4[4]
(4, “S4”, RGB(Color1, Color2, Colo 
If N = 5 Then Plot5[4]
(5, “S5”, RGB(Color1, Color2, Colo 
If N = 6 Then Plot6[4]
(6, “S6”, RGB(Color1, Color2, Colo 
If N = 7 Then Plot7[4]
(7, “S7”, RGB(Color1, Color2, Colo 
If N = 8 Then Plot8[4]
(8, “S8”, RGB(Color1, Color2, Colo 
If N = 9 Then Plot9[4]
(9, “S9”, RGB(Color1, Color2, Colo 
If N = 10 Then Plot10[4]
(10, “S10”, RGB(Color1, Color2, Co 
If N = 11 Then Plot11[4]
(11, “S11”, RGB(Color1, Color2, Co 
If N = 12 Then Plot12[4]

(12, “S12”, RGB(Color1, Color2, Co 
If N = 13 Then Plot13[4] 
(13, “S13”, RGB(Color1, Color2, Co 
If N = 14 Then Plot14[4] 
(14, “S14”, RGB(Color1, Color2, Co 
If N = 15 Then Plot15[4] 
(15, “S15”, RGB(Color1, Color2, Co 
If N = 16 Then Plot16[4] 
(16, “S16”, RGB(Color1, Color2, Co 
If N = 17 Then Plot17[4] 
(17, “S17”, RGB(Color1, Color2, Co 
If N = 18 Then Plot18[4] 
(18, “S18”, RGB(Color1, Color2, Co 
If N = 19 Then Plot19[4] 
(19, “S19”, RGB(Color1, Color2, Co 
If N = 20 Then Plot20[4] 
(20, “S20”, RGB(Color1, Color2, Co 
If N = 21 Then Plot21[4] 
(21, “S21”, RGB(Color1, Color2, Co 
If N = 22 Then Plot22[4] 
(22, “S22”, RGB(Color1, Color2, Co 
If N = 23 Then Plot23[4] 
(23, “S23”, RGB(Color1, Color2, Co 
If N = 24 Then Plot24[4] 
(24, “S24”, RGB(Color1, Color2, Co 
If N = 25 Then Plot25[4] 
(25, “S25”, RGB(Color1, Color2, Co 
If N = 26 Then Plot26[4] 
(26, “S26”, RGB(Color1, Color2, Co 

If N = 27 Then Plot27[4] 
(27, “S27”, RGB(Color1, Color2, Co 
If N = 28 Then Plot28[4] 
(28, “S28”, RGB(Color1, Color2, Co 
If N = 29 Then Plot29[4] 
(29, “S29”, RGB(Color1, Color2, Co 
If N = 30 Then Plot30[4] 
(30, “S30”, RGB(Color1, Color2, Co 
If N = 31 Then Plot31[4] 
(31, “S31”, RGB(Color1, Color2, Co 
If N = 32 Then Plot32[4] 
(32, “S32”, RGB(Color1, Color2, Co 
If N = 33 Then Plot33[4] 
(33, “S33”, RGB(Color1, Color2, Co 
If N = 34 Then Plot34[4] 
(34, “S34”, RGB(Color1, Color2, Co 
If N = 35 Then Plot35[4] 
(35, “S35”, RGB(Color1, Color2, Co 
If N = 36 Then Plot36[4] 
(36, “S36”, RGB(Color1, Color2, Co 
If N = 37 Then Plot37[4] 
(37, “S37”, RGB(Color1, Color2, Co 
If N = 38 Then Plot38[4] 
(38, “S38”, RGB(Color1, Color2, Co 
If N = 39 Then Plot39[4] 
(39, “S39”, RGB(Color1, Color2, Co 
If N = 40 Then Plot40[4] 
(40, “S40”, RGB(Color1, Color2, Co 
If N = 41 Then Plot41[4] 

(4 , “S4 ”, RGB(Color1, Color2, Co 
If N = 42 Then Plot42[4] 
(4 , “S4 ”, RGB(Color1, Color2, Co 
If N = 43 Then Plot43[4] 
(4 , “S4 ”, RGB(Color1, Color2, Co 
If N = 44 Then Plot44[4] 
( 4, “S 4”, RGB(Color1, Color2, Co 
If N = 45 Then Plot45[4] 
(4 , “S4 ”, RGB(Color1, Color2, Co 
If N = 46 Then Plot46[4] 
(4 , “S4 ”, RGB(Color1, Color2, Co 
If N = 47 Then Plot47[4] 
(4 , “S4 ”, RGB(Color1, Color2, Co 
If N = 48 Then Plot48[4] 
(4 , “S4 ”, RGB(Color1, Color2, Co 
End; 

Ehlers Convolution.pdf

Edited by derek2209

Share this post


Link to post
Share on other sites

Derek,

 

I think you may have to buy the book. The PDF you posted is cropped on the right after ~30 chars so who knows what else may be missing...

 

What happens when you run your

"If (IntPortion(.5*N))>Filt then Convolution[N]=(1+ExpValue(N));"

version?

'Filt' is a function call. You'd have to have the code for that to get this working...

 

Have you found complete .pla code for this? Your missing code and the Filt function might be an easy translation

 

Here is a contact who may be able to get you all the original code... He no longer uses TS so emphasis on may be

John Ehlers code links

 

hth

 

zdo

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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...

Important Information

By using this site, you agree to our Terms of Use.