Announcement

Collapse
No announcement yet.

Trend OHLC

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

  • Trend OHLC

    File Name: Trend_OHLC.efs

    Description:
    Trend OHLC

    Formula Parameters:
    MA Length : 60
    Moving Average : SMA


    Notes:


    Download File:
    Trend_OHLC.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:        
        Trend OHLC
        
    Version:            1.0  07/19/2009
     
    Formula Parameters:                     Default:
        MA Length                           60
        Moving Average                      SMA
        
    Notes:
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(true);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("Trend OHLC");
        
    setCursorLabelName("Mode 0"0);
        
    setDefaultBarFgColor(Color.red0);
        
    setPlotType(PLOTTYPE_SQUAREWAVE0);
        
    setDefaultBarThickness(10);
        
    setCursorLabelName("Mode 1"1);
        
    setDefaultBarFgColor(Color.blue1);
        
    setPlotType(PLOTTYPE_SQUAREWAVE1);
        
    setDefaultBarThickness(11);
        
    setCursorLabelName("Mode 2"2);
        
    setDefaultBarFgColor(Color.red2);
        
    setPlotType(PLOTTYPE_SQUAREWAVE2);
        
    setDefaultBarThickness(22);
        
    setCursorLabelName("Mode 3"3);
        
    setDefaultBarFgColor(Color.blue3);
        
    setPlotType(PLOTTYPE_SQUAREWAVE3);
        
    setDefaultBarThickness(23);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("MALength"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("MA Length");
            
    setLowerLimit(1);
            
    setDefault(60);
        }    
        
    fpArray[x] = new FunctionParameter("MAType"FunctionParameter.STRING);
        
    with(fpArray[x++]){
            
    setName("Moving Average");
            
    addOption("sma");
            
    addOption("ema");
            
    addOption("wma");
            
    addOption("vwma");
            
    setDefault("sma");
        }    
    }

    var 
    xTrend_H null;
    var 
    xTrend_L null;
    var 
    xTrend_O null;
    var 
    xTrend_C null;

    function 
    main(MALengthMAType) {
    var 
    nBarState getBarState();
    var 
    nTH 0;
    var 
    nTL 0;
    var 
    nTO 0;
    var 
    nTC 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    MAType == nullMAType "sma";
            if(
    MALength == nullMALength 60;
        }
        if (
    bInit == false) {
            
    xTrend_L efsInternal("Calc_TrendOHLC"MALengthMAType);
            
    xTrend_H getSeries(xTrend_L1);
            
    xTrend_O getSeries(xTrend_L2);
            
    xTrend_C getSeries(xTrend_L3);
            
    bInit true;
        }
        
    nTO xTrend_O.getValue(0);
        
    nTH xTrend_H.getValue(0);
        
    nTL xTrend_L.getValue(0);
        
    nTC xTrend_C.getValue(0);
        if (
    nTO == null || nTH == null || nTL == null || nTC == null) return;
        if (
    nTL nTH) {
            
    setBarBgColor(Color.lightgrey,0,nTL,nTH)
        } else {
            
    setBarBgColor(Color.grey,0,nTL,nTH)    
        }    
        if (
    nTO nTC) {
            
    setBarBgColor(Color.lime,1,nTO,nTC)
        } else {
            
    setBarBgColor(Color.red,1,nTO,nTC)    
        }
        return new Array(
    nTLnTHnTOnTC);
    }

    var 
    bSecondInit false;
    var 
    xmaOpen null;
    var 
    xmaClose null;
    var 
    xmaLow null;
    var 
    xmaHigh null;
    var 
    haOpen1 0;
    var 
    haOpen 0;

    function 
    Calc_TrendOHLC(MALengthMAType) {
    var 
    nBarState getBarState();
    var 
    nmaOpen 0;
    var 
    nmaClose 0;
    var 
    nmaLow 0;
    var 
    nmaHigh 0;
    var 
    nmaOpen1 0;
    var 
    nmaClose1 0;
    var 
    nmaLow1 0;
    var 
    nmaHigh1 0;
    var 
    haHigh 0;
    var 
    haLow 0;
    var 
    haClose 0;
    var 
    haClose 0;
    var 
    nResLow 0;
    var 
    nResHigh 0;
        if (
    bSecondInit == false) {
            
    xmaOpen efsInternal("CalcMA"MALengthMAType"open");
            
    xmaClose =  efsInternal("CalcMA"MALengthMAType"close");
            
    xmaLow =  efsInternal("CalcMA"MALengthMAType"low");
            
    xmaHigh =  efsInternal("CalcMA"MALengthMAType"high");
            
    haOpen open(0);
            
    haOpen1 haOpen;
            
    bSecondInit =  true;
        }
        
    nmaOpen xmaOpen.getValue(0);
        
    nmaClosexmaClose.getValue(0);
        
    nmaLow  xmaLow.getValue(0);
        
    nmaHigh xmaHigh.getValue(0);
        
    nmaOpen1 xmaOpen.getValue(-1);
        
    nmaClose1xmaClose.getValue(-1);
        
    nmaLow1  xmaLow.getValue(-1);
        
    nmaHigh1 xmaHigh.getValue(-1);
        if (
    nmaOpen1 == null || nmaHigh1  == null || nmaLow1  == null || nmaClose1 == null) return;
        if (
    nBarState == BARSTATE_NEWBAR) {
            
    haOpen1 haOpen;
        }
        
    haClose = (nmaOpen nmaHigh nmaLow nmaClose) /4;
        
    haOpen =  (haOpen1 + (nmaOpen1 nmaHigh1 nmaLow1 nmaClose1) / 4) / 2;
        
    haHigh Math.max(nmaHighMath.max(haOpenhaClose));
        
    haLow Math.min(nmaLowMath.min(haOpenhaClose));
        if (
    haOpen haClose) {
            
    nResLow haLow;
            
    nResHigh haHigh;
        } else {
            
    nResLow haHigh;
            
    nResHigh haLow;
        }
        return new Array(
    nResLownResHighhaOpenhaClose);
    }

    var 
    bThirdInit false;
    var 
    xTMPMA1 null;
    var 
    xTMPMA2 null;

    function 
    CalcMA(MALengthMATypeSource) {
    var 
    nRes 0;
    var 
    nTMPMA1 0;
    var 
    nTMPMA2 0;
        if (
    bThirdInit == false) {
            
    xTMPMA1 = eval(MAType)(Math.round(MALength/2), eval(Source)());
            
    xTMPMA2 = eval(MAType)(MALength, eval(Source)());        
            
    bThirdInit true;
        }
        
    nTMPMA1 xTMPMA1.getValue(0);
        
    nTMPMA2 xTMPMA2.getValue(0);
        if (
    nTMPMA1 == null || nTMPMA2 == null) return;
        
    nRes nTMPMA1 nTMPMA2;
        return 
    nRes;

Working...
X