Announcement

Collapse
No announcement yet.

Correlation

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

  • Correlation

    File Name: Correlation.efs

    Description:
    Correlation

    Formula Parameters:
    External Symbol : EUR a0-fx
    Length : 20
    Source of Price : Close


    Notes:
    FOREX Correlation Indicator

    Download File:
    Correlation.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:        
        Correlation    
    Version:            1.0  06/10/2009
     
    Formula Parameters:                     Default:
        External Symbol                     EUR a0-fx
        Length                              20
        Source of Price                     Close
        
    Notes:
        FOREX Correlation Indicator
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(false);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("Correlation");
        
    setCursorLabelName("Correlation"0);
        
    setDefaultBarFgColor(Color.red0);
        
    setPlotType(PLOTTYPE_HISTOGRAM0);
        
    setDefaultBarThickness(20);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(20);
        }    
        
    fpArray[x] = new FunctionParameter("ExternalSymbol"FunctionParameter.STRING);
        
    with(fpArray[x++]) {
            
    setName("External Symbol");
            
    setDefault("EUR a0-fx");
        }        
        
    fpArray[x] = new FunctionParameter("sPrice"FunctionParameter.STRING);
        
    with(fpArray[x++]){
            
    setName("Source of Price");
            
    addOption("open"); 
            
    addOption("high");
            
    addOption("low");
            
    addOption("close");
            
    addOption("hl2");
            
    addOption("hlc3");
            
    addOption("ohlc4"); 
            
    setDefault("close"); 
        }    
    }

    var 
    xCorrelation null;

    function 
    main(ExternalSymbolLengthsPrice) {
    var 
    nBarState getBarState();
    var 
    nCorrelation 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    ExternalSymbol == nullExternalSymbol "EUR a0-fx";
            if (
    Length == nullLength 20;
            if (
    sPrice == nullsPrice "close";
        }
        if (
    bInit == false) {
            
    setStudyTitle("Correlation "+ExternalSymbol+" ("+sPrice+")");
            
    xCorrelation efsInternal("Calc_Correlation"ExternalSymbolLengthsPrice);
            
    bInit true;
        }
        
    nCorrelation xCorrelation.getValue(0);
        if (
    nCorrelation == null) return;
        return 
    nCorrelation;
    }

    var 
    bSecondInit false;
    var 
    xOS_PriceValue null;
    var 
    xPriceValue null;
    var 
    xOS_MAPriceValue null;
    var 
    xMAPriceValue null;

    function 
    Calc_Correlation(ExternalSymbolLengthsPrice) {
    var 
    nRes 0;
    var 
    nCor1 0;
    var 
    nCor2 0;
    var 
    nCor3 0;
    var 
    0;
    var 
    nX 0;
    var 
    nY 0;
    var 
    nSX 0;
    var 
    nSY 0;
        if (
    bSecondInit == false) {
            
    xPriceValue = eval(sPrice)();
            
    xMAPriceValue sma(LengthxPriceValue);
            
    xOS_PriceValue = eval(sPrice)(sym(ExternalSymbol));
            
    xOS_MAPriceValue sma(LengthxOS_PriceValue);
            
    bSecondInit true;
        }
        
    nSX xMAPriceValue.getValue(0);
        
    nSY xOS_MAPriceValue.getValue(0);
        if (
    nSX == null || nSY == null) return;
        for (
    0Lengthi++) {
            
    nX xPriceValue.getValue(-i);
            
    nY xOS_PriceValue.getValue(-i);
            
    nCor1 += (nX nSX) * (nY nSY);
            
    nCor2 += (nX nSX) * (nX nSX);
            
    nCor3 += (nY nSY) * (nY nSY);
        }
        
    nRes nCor1 Math.sqrt(nCor2) / Math.sqrt(nCor3);
        return 
    nRes;

Working...
X