Announcement

Collapse
No announcement yet.

Confluence

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Confluence

    File Name: Confluence.efs

    Description:
    Confluence

    Formula Parameters:
    Price Data To Use : Close
    Harmonic : 10


    Notes:
    This is modified version of Dale Legan's "Confluence" indicator written by Gary Fritz.


    Download File:
    Confluence.efs



    EFS Code:
    PHP Code:
    /*********************************
    Provided By:  
        eSignal (Copyright c eSignal), a division of Interactive Data 
        Corporation. 2009. All rights reserved. This sample eSignal 
        Formula Script (EFS) is for educational purposes only and may be 
        modified and saved under a new file name.  eSignal is not responsible
        for the functionality once modified.  eSignal reserves the right 
        to modify and overwrite this EFS file with each new release.

    Description:        
        Confluence 
        
    Version:            1.0  04/01/2009

    Formula Parameters:                     Default:
        Price Data To Use                   Close
        Harmonic                            10

    Notes:
        This is modified version of Dale Legan's "Confluence" indicator written by Gary Fritz.
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain() {
        
    setStudyTitle("Confluence");
        
    setCursorLabelName("Bull"0);
        
    setCursorLabelName("Bear"1);
        
    setCursorLabelName("ZERO"2);
        
    setCursorLabelName("Grey"3);
        
    setShowCursorLabel(true);
        
    setDefaultBarFgColor(Color.blue0);
        
    setDefaultBarFgColor(Color.red1);
        
    setDefaultBarFgColor(Color.green2);
        
    setDefaultBarFgColor(Color.grey3);
        
    setPlotType(PLOTTYPE_HISTOGRAM0);
        
    setPlotType(PLOTTYPE_HISTOGRAM1);
        
    setPlotType(PLOTTYPE_HISTOGRAM2);
        
    setPlotType(PLOTTYPE_HISTOGRAM3);
        
    setDefaultBarThickness(20);
        
    setDefaultBarThickness(21);
        
    setDefaultBarThickness(22);
        
    setDefaultBarThickness(23);
        
    setStudyMax(11);
        
    setStudyMin( - 11);

        var 
    0;
        
    fpArray[x] = new FunctionParameter("Harmonic"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(10);
        }
        
    fpArray[x] = new FunctionParameter("sPrice"FunctionParameter.STRING);
        
    with(fpArray[x++]) {
            
    setName("Price Data To Use");
            
    addOption("open");
            
    addOption("high");
            
    addOption("low");
            
    addOption("close");
            
    addOption("hl2");
            
    addOption("hlc3");
            
    addOption("ohlc4");
            
    setDefault("close");
        }
    }

    var 
    STL 0;
    var 
    ITL 0;
    var 
    LTL 0;
    var 
    HOFF 0;
    var 
    SOFF 0;
    var 
    IOFF 0;
    var 
    LTOFF 0;
    var 
    ErrNum 0;
    var 
    momNum 0;
    var 
    TCNum 0;
    var 
    xPrice null;
    var 
    xHavg null;
    var 
    xSavg null;
    var 
    xIavg null;
    var 
    xLavg null;
    var 
    xvalue2 null;
    var 
    xvalue3 null;
    var 
    xvalue12 null;
    var 
    xmomsig null;
    var 
    xH2 null;
    var 
    xS2 null;
    var 
    xI2 null;
    var 
    xL2 null;
    var 
    xvalue5 null;
    var 
    xvalue6 null;
    var 
    xvalue7 null;
    var 
    xvalue13 null;
    var 
    xmom null;
    var 
    xSum null;
    var 
    xErr null;
    var 
    xErrSig null;
    var 
    xErrSum null;
    var 
    xvalue70 null;
    var 
    xvalue71 null;

    function 
    main(sPriceHarmonic) {
        var 
    nBarState getBarState();
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    sPrice == nullsPrice "close";
            if (
    Harmonic == nullHarmonic 10;
        }
        if (
    bInit == false) {
            
    STL Math.round((Harmonic 2) - 0.5);
            
    ITL Math.round((STL 2) - 0.5);
            
    LTL Math.round((ITL 2) - 0.5);
            
    HOFF Math.round(Harmonic 0.5);
            
    SOFF Math.round(STL 0.5);
            
    IOFF Math.round(ITL 0.5);

            
    xPrice = eval(sPrice)();
            
    xHavg sma(HarmonicxPrice);
            
    xSavg sma(STLxPrice);
            
    xIavg sma(ITLxPrice);
            
    xLavg sma(LTLxPrice);

            
    xvalue2 efsInternal("Calc_Values2"SOFFHOFFIOFFxHavgxSavgxIavgxLavg);
            
    xvalue3 getSeries(xvalue21);
            
    xvalue12 getSeries(xvalue22);

            
    xmomsig efsInternal("Calc_MOMSig"xvalue2xvalue3xvalue12);
            
    xvalue5 efsInternal("Calc_Values"HarmonicSTLITLLTLxHavgxSavgxIavgxLavg
                      
    sma(Harmonic 1xPrice), sma(STL 1xPrice), sma(ITL 1xPrice), sma(LTL 1xPrice));
            
    xvalue6 getSeries(xvalue51);
            
    xvalue7 getSeries(xvalue52);
            
    xvalue13 getSeries(xvalue53);
            
    xmom efsInternal("Calc_xMOM"HOFFSOFFIOFFxvalue5xvalue6xvalue7xvalue13);

            
    xSum efsInternal("Calc_Sum_Err"xvalue5xvalue6xvalue7xHavgxSavgxIavg);
            
    xErr getSeries(xSum1);

            
    xErrSum efsInternal("Calc_ErrSum"SOFFxSumxErrxHavg);
            
    xErrSig sma(SOFFxErrSum);

            
    xvalue70 efsInternal("Calc_Value70"xvalue5xvalue13);
            
    xvalue71 sma(Harmonicxvalue70);
            
    bInit true;
        }

        if (
    xvalue71.getValue(0) == null) return;
        var 
    nErrSum xErrSum.getValue(0);
        var 
    nErrSum1 xErrSum.getValue( - 1);
        var 
    nErrSig xErrSig.getValue(0);
        var 
    nmom xmom.getValue(0);
        var 
    nmom1 xmom.getValue( - 1);
        var 
    nmomsig xmomsig.getValue(0);
        var 
    nvalue70 xvalue70.getValue(0);
        var 
    nvalue701 xvalue70.getValue( - 1);
        var 
    nvalue71 xvalue71.getValue(0);

        if (
    nErrSum 0) {
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum 1;
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum 2;
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum 2;
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum 3;
        }
        if (
    nErrSum 0) {
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum = -1;
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum = -2;
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum = -2;
            if ((
    nErrSum nErrSum1) && (nErrSum nErrSig)) ErrNum = -3;
        }
        if (
    nmom 0) {
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum 1;
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum 2;
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum 2;
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum 3;
        }
        if (
    nmom 0) {
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum = -1;
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum = -2;
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum = -2;
            if ((
    nmom nmom1) && (nmom nmomsig)) momNum = -3;
        }
        if (
    nvalue70 0) {
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum 1;
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum 2;
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum 2;
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum 3;
        }
        if (
    nvalue70 0) {
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum = -1;
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum = -2;
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum = -2;
            if ((
    nvalue70 nvalue701) && (nvalue70 nvalue71)) TCNum = -3;
        }
        var 
    value42 ErrNum momNum TCNum;
        var 
    Confluence 0.0;
        if ((
    value42 0) && (nvalue70 0)) Confluence value42;
        if ((
    value42 0) && (nvalue70 0)) Confluence value42;
        if (((
    value42 0) && (nvalue70 0)) || ((value42 0) && (nvalue70 0))) Confluence value42 10;
        var 
    Res1 null;
        var 
    Res2 null;
        var 
    Res3 null;
        var 
    Res4 null;
        if (
    Confluence >= 1Res1 Confluence;
        if (
    Confluence <= -1Res2 Confluence;
        if (
    Confluence == 0Res3 0;
        else if ((
    Confluence > -1) && (Confluence 1)) Res4 10 Confluence;
        return new Array(
    Res1Res2Res3Res4);
    }

    function 
    Calc_MOMSig(xvalue2xvalue3xvalue12) {
        var 
    nRes 0;
        
    nRes xvalue2.getValue(0) + xvalue3.getValue(0) + xvalue12.getValue(0);
        if (
    nRes == null) {
            return;
        }
        return 
    nRes;
    }

    var 
    bSecondInit false;
    var 
    xLavgOHLC null;

    function 
    Calc_Values(HarmonicSTLITLLTLxHavgxSavgxIavgxLavgxH2xS2xI2xL2) {
        if (
    bSecondInit == false) {
            
    xLavgOHLC sma(LTL 1ohlc4());
            
    bSecondInit true;
        }
        var 
    DerivH = (xHavg.getValue(0) * 2) - xHavg.getValue( - 1);
        var 
    DerivS = (xSavg.getValue(0) * 2) - xSavg.getValue( - 1);
        var 
    DerivI = (xIavg.getValue(0) * 2) - xIavg.getValue( - 1);
        var 
    DerivL = (xLavg.getValue(0) * 2) - xLavg.getValue( - 1);
        var 
    SumDH Harmonic DerivH;
        var 
    SumDS STL DerivS;
        var 
    SumDI ITL DerivI;
        var 
    SumDL LTL DerivL;

        var 
    LengH Harmonic 1;
        var 
    LengS STL 1;
        var 
    LengI ITL 1;
        var 
    LengL LTL 1;

        var 
    nH2 xH2.getValue(0);
        var 
    nS2 xS2.getValue(0);
        var 
    nI2 xI2.getValue(0);

        var 
    N1H nH2 LengH;
        var 
    N1S nS2 LengS;
        var 
    N1I nI2 LengI;
        var 
    N1L xL2.getValue(0) * LengL;

        var 
    DRH SumDH N1H;
        var 
    DRS SumDS N1S;
        var 
    DRI SumDI N1I;
        var 
    DRL SumDL N1L;

        var 
    SumH nH2 * (Harmonic 1);
        var 
    SumS nS2 * (STL 1);
        var 
    SumI nI2 * (ITL 1);
        var 
    SumL xLavgOHLC.getValue(0) * (LTL 1);

        var 
    value5 = (SumH DRH) / Harmonic;
        var 
    value6 = (SumS DRS) / STL;
        var 
    value7 = (SumI DRI) / ITL;
        var 
    value13 = (SumL DRL) / LTL;
        if (
    value5 == null || value6 == null || value7 == null || value13 == null) return;
        return new Array(
    value5value6value7value13);
    }

    function 
    Calc_xMOM(HOFFSOFFIOFFxvalue5xvalue6xvalue7xvalue13) {
        var 
    value9 xvalue6.getValue(0) - xvalue5.getValue( - HOFF);
        var 
    value10 xvalue7.getValue(0) - xvalue6.getValue( - SOFF);
        var 
    value14 xvalue13.getValue(0) - xvalue7.getValue( - IOFF);
        var 
    nRes value9 value10 value14;
        if (
    nRes == null) return;
        return 
    nRes;
    }

    function 
    Calc_Sum_Err(xvalue5xvalue6xvalue7xHavgxSavgxIavg) {
        var 
    nvalue5 xvalue5.getValue(0);
        var 
    nHavg xHavg.getValue(0);
        var 
    nvalue6 xvalue6.getValue(0);
        var 
    nSavg xSavg.getValue(0);
        var 
    nvalue7 xvalue7.getValue(0);
        var 
    nIavg xIavg.getValue(0);
        var 
    HT Math.sin(nvalue5 Math.PI 360) + Math.cos(nvalue5 Math.PI 360);
        var 
    HTA Math.sin(nHavg Math.PI 360) + Math.cos(nHavg Math.PI 360);
        var 
    ST Math.sin(nvalue6 Math.PI 360) + Math.cos(nvalue6 Math.PI 360);
        var 
    STA Math.sin(nSavg Math.PI 360) + Math.cos(nSavg Math.PI 360);
        var 
    IT Math.sin(nvalue7 Math.PI 360) + Math.cos(nvalue7 Math.PI 360);
        var 
    ITA Math.sin(nIavg Math.PI 360) + Math.cos(nIavg Math.PI 360);
        var 
    Sum HT ST IT;
        var 
    Err HTA STA ITA;
        if (
    Sum == null || Err == null) return;
        return new Array(
    SumErr);
    }

    function 
    Calc_ErrSum(SOFFxSumxErrxHavg) {
        var 
    nSum xSum.getValue(0);
        var 
    nHavg xHavg.getValue(0);
        var 
    nSumSOFF xSum.getValue( - SOFF);
        var 
    nHavgSOFF xHavg.getValue( - SOFF);
        var 
    Condition2 = (((nSum nSumSOFF) && (nHavg nHavgSOFF)) || ((nSum nSumSOFF) && (nHavg nHavgSOFF)));
        var 
    Phase 1;
        if (
    Condition2Phase = -1;
        var 
    ErrSum = (nSum xErr.getValue(0)) * Phase;
        if (
    ErrSum == null) return;
        return 
    ErrSum;
    }

    function 
    Calc_Value70(xvalue5xvalue13) {
        var 
    value70 xvalue5.getValue(0) - xvalue13.getValue(0);
        if (
    value70 == null) return;
        return 
    value70;
    }

    function 
    Calc_Values2(SOFFHOFFIOFFxHavgxSavgxIavgxLavg) {
        var 
    value2 xSavg.getValue(0) - xHavg.getValue( - HOFF);
        var 
    value3 xIavg.getValue(0) - xSavg.getValue( - SOFF);
        var 
    value12 xLavg.getValue(0) - xIavg.getValue( - IOFF);
        if (
    value2 == null || value3 == null || value12 == null) return;
        return new Array(
    value2value3value12)

Working...
X