×

Sign up and get MultiCharts free

Use its powerful simulation mode with data included out of the box. Just fill out the form and start honing your trading skills with a few clicks.

Changes - MultiCharts

Changes

Jump to navigation Jump to search

Confluence

4,935 bytes added, 13:18, 14 October 2013
no edit summary
'''EasyLanguage CodeCONFLUENCE FUCNTION CODE:'''
<syntaxhighlight>
[LegacyColorValue = TRUE]; {Function: Confluence Returns a value from -9 to +9. -9 to -1: bearish -0.9 to +0.9: INPUTS"yellow" 1 to 9: PRICE(CLOSE), HARMONIC(4), TRIGGER(5), AGGSTOPS(FALSE); bullish  Written by Dale Legan <dlegan@flash.net>}
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);
VARS: CONF{Calculate Lengths}if (0BarNumber = 1), SIGNALthen begin mtl=harmonic/2; STL= IntPortion(0(harmonic*2), LSTOP-1); {11} ITL= IntPortion(99999(STL*2), LEXIT-1); {21} LTL= IntPortion(0), SSTOP(0ITL*2), SEXIT(99999-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}
{ IS THE INDICATOR IN BULL/BEAR MODE? }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);
CONF value9 = CONFLUENCE(PRICE, HARMONIC)value6 - value5[HOFF];value10=value7 - value6[SOFF];value14=value13 - value7[IOFF];mom = value9 + value10 + value14;
SIGNAL { harmonic = 06 was 5 may use harmonic -1 }{HT= sine((summation(price,(harmonic-1))+derivativema(price,harmonic))/harmonic) + cosine((summation(price,(harmonic-1))+derivativema(price,harmonic))/harmonic);}HT = sine(value5) + cosine(value5);HTA= sine(Havg) + cosine(Havg);
IF {ST= sine((summation(price,(CONF >= STL-1) THEN SIGNAL = )+derivativema(price,STL))/ STL) + cosine((summation(Price,(STL-1))+derivativema(Price,STL))/STL); {BULL}ST = sine(value6) + cosine(value6);STA = sine(Savg) + cosine(Savg);
IF {IT= sine(CONF <= (summation(price,(ITL-1) THEN SIGNAL = )+derivativema(c,ITL))/ITL) + cosine((summation(price,(ITL-1))+derivativema(Price,ITL))/ITL); {BEAR}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}
{ SET ENTRY STOPS WHEN INDICATOR FIRST MOVES INTO BULL/BEAR MODE }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}
IF value68=value5; {( (summation(price,(harmonic-1)) + derivativema(SIGNAL price,harmonic)) / harmonic );}value69= value13; {( (summation(avgprice,(LTL-1) AND ) + derivativema(SIGNAL[1] <> 1price,LTL)) / LTL ) THEN BEGIN;}
LSTOP value70 = HIGH + TRIGGERvalue68-value69; { EST W Der}value71 = average(value70,Harmonic);
LEXIT TC = 0value70;TCSig=value71;
END;{Begin Counting Bars}
IF (SIGNAL If ErrSum > 0 then beginif 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 beginif Errsum > ErrSum[1] and ErrSum > ErrSig then ErrNum= -1) AND (SIGNAL; If ErrSum <ErrSum[1] and ErrSum >ErrSig then ErrNum=-2;If ErrSum>ErrSum[1] and ErrSum<> ErrSig then ErrNum=-2;If ErrSum < ErrSum[1) THEN BEGIN] and ErrSum< ErrSig then ErrNum=-3;End;
SSTOP If mom > 0 THEN beginif 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 beginif 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= LOW - TRIGGER3;End;
SEXIT If TC > 0 THEN beginif TC < TC[1] and TC < TCsig then TCNum= 999991; 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 beginif 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;
ENDvalue42= 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;
{ SET EXIT-POSITION STOPS WHEN INDICATOR LEAVES BULL/BEAR STATE }
</syntaxhighlight>
''' CONFLUENCE SIGNAL CODE'''
<SYNTAXHIGHLIGHT>
INPUTS: PRICE(CLOSE), HARMONIC(4), TRIGGER(5), AGGSTOPS(FALSE);
VARS: CONF(0), SIGNAL(0), LSTOP(99999), LEXIT(0), SSTOP(0), SEXIT(99999);
{ IS THE INDICATOR IN BULL/BEAR MODE? }
CONF = CONFLUENCE(PRICE, HARMONIC);
SIGNAL = 0;
IF (CONF >= 1) THEN SIGNAL = 1; {BULL}
IF (CONF <= -1) THEN SIGNAL = -1; {BEAR}
{ SET ENTRY STOPS WHEN INDICATOR FIRST MOVES INTO BULL/BEAR MODE }
IF (SIGNAL = 1) AND (SIGNAL[1] <> 1) THEN BEGIN
LSTOP = HIGH + TRIGGER;
LEXIT = 0;
END;
IF (SIGNAL = -1) AND (SIGNAL[1] <> -1) THEN BEGIN
SSTOP = LOW - TRIGGER;
SEXIT = 99999;
END;
{ SET EXIT-POSITION STOPS WHEN INDICATOR LEAVES BULL/BEAR STATE }
IF (SIGNAL <> 1) AND (SIGNAL[1] = 1) THEN BEGIN
LEXIT = LOW - TRIGGER;
LSTOP = 99999;
END;
IF (SIGNAL <> -1) AND (SIGNAL[1] = -1) THEN BEGIN
SEXIT = HIGH + TRIGGER;
SSTOP = 0;
END;
{ AGGRESSIVE STOPS: MOVE THEM IF MKT MOVES IN OUR DIRECTION }
IF AGGSTOPS THEN BEGIN
IF (LSTOP <> 99999) THEN LSTOP = MINLIST(LSTOP, HIGH + TRIGGER);
IF (LEXIT <> 0) THEN LEXIT = MAXLIST(LEXIT, LOW - TRIGGER);
IF (SSTOP <> 0) THEN SSTOP = MAXLIST(SSTOP, LOW - TRIGGER);
IF (SEXIT <> 99999) THEN SEXIT = MINLIST(SEXIT, HIGH + TRIGGER);
END;
{ CLEAR STOPS WHEN OUR PRICE IS HIT }
IF (H > LSTOP) THEN LSTOP = 99999;
IF (L < LEXIT) THEN LEXIT = 0;
IF (L < SSTOP) THEN SSTOP = 0;
IF (H > SEXIT) THEN SEXIT = 99999;
{ ISSUE THE BUY/SELL ORDER ON EACH BAR UNTIL PRICE IS HIT }
IF (LSTOP <> 99999) THEN BUY NEXT BAR AT LSTOP STOP;
IF (LEXIT <> 0) THEN SELL NEXT BAR AT LEXIT STOP;
IF (SSTOP <> 0) THEN SELL NEXT BAR AT SSTOP STOP;
IF (SEXIT <> 99999) THEN BUYTOCOVER NEXT BAR AT SEXIT STOP;
</SYNTAXHIGHLIGHT>
'''CONFLUENCE INDICATOR CODE'''
<SYNTAXHIGHLIGHT>
[LegacyColorValue = TRUE];
Input: price(close),Harmonic(10);
IF Vars: Conf(LSTOP <> 99999) THEN BUY AT LSTOP STOP; IF (LEXIT <> 0) THEN EXITLONG AT LEXIT STOP;
IF Conf = Confluence(SSTOP <> 0price, Harmonic) THEN SELL AT SSTOP STOP;
IF Conf >= 1 THEN Plot1(SEXIT <> 99999Conf, "Bull") THEN EXITSHORT AT SEXIT STOP;
IF Conf </syntaxhighlight>= -1 THEN Plot2(Conf,"Bear");
'''Download:''' [http:/If (Conf = 0) then Plot4(0,"ZERO")else If (Conf > -1) and (Conf < 1) then Plot3(10*Conf, "Yellow");</www.multicharts.com/files/elafiles/conflu.ela conflu.ela]<brSYNTAXHIGHLIGHT>
'''File Includes:'''<br>
Strategy - Confluence<br>
Indicator - Confluence <br>
Function - Derivativema <br>
Function - Confluence <br>
[[Category:Signals]]

Navigation menu