Squelch Control Indicator

 

Hi,

I have the EasyLanguage code to implement the Squelch Control as a Paintbar and I need someone to write an indicator for MT4. This indicator was writen by John Ehlers. I think it's very useful.

Inputs: Price((H+L)/2),

Squelch(20);

Vars: InPhase(0),

Quadrature(0),

Phase(0),

DeltaPhase(0),

count(0),

InstPeriod(0),

Period(0);

If CurrentBar > 5 then begin

{Compute InPhase and Quadrature components}

Value1 = Price - Price[6];

Value2 =Value1[3];

Value3 =.75*(Value1 - Value1[6]) + .25*(Value1[2] - Value1[4]);

InPhase = .33*Value2 + .67*InPhase[1];

Quadrature = .2*Value3 + .8*Quadrature[1];

{Use ArcTangent to compute the current phase}

If AbsValue(InPhase +InPhase[1]) > 0 then Phase = ArcTangent(AbsValue((Quadrature+Quadrature[1]) / (InPhase+InPhase[1])));

{Resolve the ArcTangent ambiguity}

If InPhase 0 then Phase = 180 - Phase;

If InPhase < 0 and Quadrature < 0 then Phase = 180 + Phase;

If InPhase > 0 and Quadrature < 0 then Phase = 360 - Phase;

{Compute a differential phase, resolve phase wraparound, and limit delta phase errors}

DeltaPhase = Phase[1] - Phase;

If Phase[1] 270 then DeltaPhase = 360 + Phase[1] - Phase;

If DeltaPhase < 1 then DeltaPhase = 1;

If DeltaPhase > 60 then Deltaphase = 60;

{Sum DeltaPhases to reach 360 degrees. The sum is the instantaneous period.}

InstPeriod = 0;

Value4 = 0;

For count = 0 to 40 begin

Value4 = Value4 + DeltaPhase[count];

If Value4 > 360 and InstPeriod = 0 then begin

InstPeriod = count;

end;

end;

{Resolve Instantaneous Period errors and smooth}

If InstPeriod = 0 then InstPeriod = InstPeriod[1];

Period = .25*InstPeriod + .75*Period[1];

If Period < Squelch then begin

Plot1(High,"High");

Plot2(Low,"Low");

end;

end;

Files:
squelch.gif  27 kb
 

So this indicator paints the bars as in your attached screen? It looks nice as long as it is not painting past bars. I would like to try it out too but unfortunately I am not a programmer :[

 

Yes, it paints the bars as in attached screen but i haven't seen it "in action" so I don't know if it paints the past. I hope it doesn't.

 

Hi,

I rewrote this indicator for MQL4, but I think, that in it there is a bug.

I should check it on TS.

Igor

Files:
sci_v1.mq4  5 kb
 

Hi Igor,

Thank you for the indicator.

It seems though, there is something wrong with it. It suppose to paint blue all the bars of an uptrend and red for the rest(downtrend & ranging periods). I can see lots of downtrends in blue (instead of red). Maybe there was an error in the formula I posted.

If I can find that formula elsewhere, I will post the corrections.

Reason: