СЛИЯНИЕ

СЛИЯНИЕ

Type : Function, Name : DerivativeMA

Inputs: Price(numeric), Length(Numeric);
VARS: DERIV(0),SUMD(0),LENG2(0),N1(0),DR(0);
DERIV= (AVERAGE(Price,Length)*2) — AVERAGE(Price,Length)[1];
SUMD=Length*DERIV;
LENG2=length — 1 ;
N1= (AVERAGE(Price,LENG2))*LENG2;
DR=SUMD-N1;
DerivativeMA = DR;

Type : Function, Name : Confluence

Input: price(Numeric),Harmonic(Numeric);

vars: STL(0),ITL(0),LTL(0),HOFF(0),SOFF(0),IOFF(0),LTOFF(0),Phase(1);
vars: mtl(0),momsig(0),mom(0),HT(0),HTA(0);
vars: ST(0),STA(0),IT(0),ITA(0),SUM(0),ERR(0),ERRSUM(0),ERRSIG(0),TC(0),TCSIG(0);
vars: ERRNUM(0),MOMNUM(0),TCNUM(0);
Vars: Havg(0), Savg(0), Iavg(0), Lavg(0);

{Calculate Lengths}
if (BarNumber = 1) then begin
MTL=harmonic/2;
STL= IntPortion((harmonic*2)-1); {11}
ITL= IntPortion((STL*2)-1); {21}
LTL= IntPortion((ITL*2)-1); {41}

HOFF=intportion(harmonic/2); {3}
SOFF=intportion(STL/2); {5}
IOFF=intportion(ITL/2); {10}
LTOFF=intportion(LTL/2); {20}
end;

{ Averages }

Havg = average(price, Harmonic);
Savg = average(price, STL);
Iavg = average(price, ITL);
Lavg = average(price, LTL);

{Cycle Momentum}

value2 = Savg — Havg[HOFF];
value3 = Iavg — Savg[SOFF];
value12 = Lavg — Iavg[IOFF];

momsig = value2 + value3 + value12; {Momentum Signal Line}

value5= ((summation(price,harmonic-1) + derivativema(price,harmonic))/harmonic);
value6= ((summation(price,STL-1) + derivativema(price,STL))/STL);
value7= ((summation(price,ITL-1) + derivativema(price,ITL))/ITL);
value13=((summation(avgprice,LTL-1) + derivativema(price,LTL))/LTL);

value9 = value6 — value5[HOFF];
value10=value7 — value6[SOFF];
value14=value13 — value7[IOFF];
mom = value9 + value10 + value14;
HT = sine(value5) + cosine(value5);
HTA= sine(Havg) + cosine(Havg);
ST = sine(value6) + cosine(value6);
STA = sine(Savg) + cosine(Savg);
IT = sine(value7) + cosine(value7);
ITA=sine(Iavg)+ cosine(Iavg);

Sum= HT+ST+IT; {Est in Cyc Estimator/ Cycle Est Err = Sum — Err }
Err =HTA + STA +ITA;

{phase detect}

Condition2= (Sum > Sum[SOFF]
and Havg < Havg[SOFF])
OR (Sum < Sum[SOFF]
and Havg > Havg[SOFF]) ;
Phase=1;
if Condition2 then Phase=-1;

ErrSum = (Sum — Err)*phase; { ERROR OF THE CYCLE}
ErrSig=average(ErrSum,SOFF); { ERROR SIGNAL LINE}

{Trend Catcher}

value68=value5;
{( (summation(price,(harmonic-1)) + derivativema(price,harmonic)) / harmonic );}
value69=value13;
{( (summation(avgprice,(LTL-1)) + derivativema(price,LTL)) / LTL );}

value70 = value68-value69; { EST W Der}
value71 = average(value70,Harmonic);

TC =value70;
TCSig=value71;

{Begin Counting Bars}

If ErrSum > 0 then begin
if Errsum < ErrSum[1] and ErrSum < ErrSig then ErrNum=1;
If ErrSum <ErrSum[1] and ErrSum >ErrSig then ErrNum=2;
If ErrSum>ErrSum[1] and ErrSum<ErrSig then ErrNum=2;
If ErrSum > ErrSum[1] and ErrSum> ErrSig then ErrNum=3;
End;
If ErrSum < 0 then begin
if Errsum > ErrSum[1] and ErrSum > ErrSig then ErrNum=-1;
If ErrSum <ErrSum[1] and ErrSum >ErrSig then ErrNum=-2;
If ErrSum>ErrSum[1] and ErrSum<ErrSig then ErrNum=-2;
If ErrSum < ErrSum[1] and ErrSum< ErrSig then ErrNum=-3;
End;

If Mom > 0 THEN begin
if mom < mom[1] and mom < momsig then momNum=1;
If mom <mom[1] and mom >momsig then momNum=2;
If mom>mom[1] and mom<momsig then momNum=2;
If mom > mom[1] and mom> momSig then momNum=3;
End;
If mom < 0 then begin
if mom > mom[1] and mom > momSig then momNum=-1;
If mom <mom[1] and mom >momSig then momNum=-2;
If mom>mom[1] and mom<momSig then momNum=-2;
If mom < mom[1] and mom< momSig then momNum=-3;
End;

If TC > 0 THEN begin
if TC < TC[1] and TC < TCsig then TCNum=1;
If TC <TC[1] and TC >TCsig then TCNum=2;
If TC>TC[1] and TC<TCsig then TCNum=2;
If TC > TC[1] and TC> TCSig then TCNum=3;
End;
If TC < 0 then begin
if TC > TC[1] and TC > TCSig then TCNum=-1;
If TC <TC[1] and TC >TCSig then TCNum=-2;
If TC>TC[1] and TC<TCSig then TCNum=-2;
If TC < TC[1] and TC< TCSig then TCNum=-3;
End;

value42= ErrNum + MomNum+TCNum;
Confluence = 0;
IF value42 >0 and TC >0 THEN Confluence = Value42; { Bullish }
IF value42<0 and TC < 0 THEN Confluence = Value42; { Bearish }
If (value42 > 0 and tc <0) or (value42 <0 and tc>0) then Confluence = Value42 / 10;

 

Type : Indicator, Name : Confluence

 

Input: price(close),Harmonic(10);

Vars: Conf(0);
Conf = Confluence(price, Harmonic);
IF Conf >= 1 THEN Plot1(Conf, «Bull»);
IF Conf <= -1 THEN Plot2(Conf,»Bear»);
If (Conf = 0) then Plot4(0,»ZERO»)
else If (Conf > -1) and (Conf < 1) then Plot3(10*Conf, «Yellow»);

Николай Солабуто
Оцените автора
Николай Солабуто
Добавить комментарий