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.

# EasyLanguage Convolution Indicator by John F. Ehlers

## Recommended Posts

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

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

hth

zdo

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

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your previous content has been restored.   Clear editor

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

×

• 2
• 54
• 1
• 18
• 18
• ### Posts

• Forex is related to foreign currency and exchange, which is the course of changing one currency into another currency for different reasons, generally for commerce, trading, or tourism.