Announcement

Collapse
No announcement yet.

Elders Safe Zone

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

  • Elders Safe Zone

    File Name: EldersSafeZone.efs

    Description:
    Elders Safe Zone

    Formula Parameters:
    Length : 13
    Stop Factor : 3
    Look Back Bars : 10


    Notes:


    Download File:
    EldersSafeZone.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:        
        Elders Safe Zone
    Version:            1.0  09/25/2009
     
    Formula Parameters:                     Default:
        Length                              13
        Stop Factor                          3
        Look Back Bars                      10
        
    Notes:
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(true);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("Elders Safe Zone");
        
    setCursorLabelName("EldersSZ"0);
        
    setPlotType(PLOTTYPE_LINE0);
        
    setDefaultBarThickness(20);        
        
    setDefaultBarFgColor(Color.red0);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(13);
        }    
        
    fpArray[x] = new FunctionParameter("StopFactor"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Stop Factor");
            
    setLowerLimit(1);
            
    setDefault(3);
        }        
        
    fpArray[x] = new FunctionParameter("LookBack"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Look Back Bars");
            
    setLowerLimit(1);
            
    setDefault(10);
        }        
    }

    var 
    xEldersSafeZone null;

    function 
    main(LengthStopFactorLookBack) {
    var 
    nBarState getBarState();
    var 
    nEldersSafeZone 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    Length == nullLength 13;
            if(
    StopFactor == nullStopFactor 3;        
            if(
    LookBack == nullLookBack 10;               
        }
        if (
    bInit == false) {
            
    xEldersSafeZone efsInternal("Calc_EldersSafeZone"LengthStopFactorLookBack);
            
    bInit true;
        }
        
    nEldersSafeZone xEldersSafeZone.getValue(0);
        if (
    nEldersSafeZone == null) return;
        return 
    nEldersSafeZone;
    }

    var 
    xEMA null;
    var 
    xLow null;
    var 
    xHigh null;
    var 
    bSecondInit false;

    function 
    Calc_EldersSafeZone(LengthStopFactorLookBack) {
    var 
    nEMA0 0;
    var 
    nEMA1 0;
    var 
    nEMA2 0;
    var 
    Pen 0;
    var 
    0;
    var 
    nPreSafeStop ref(-1);
    var 
    nSafeStop 0;
    var 
    Counter 0;
        if (
    bSecondInit == false) {
            
    xEMA ema(Length);
            
    xLow low();
            
    xHigh high();
            
    bSecondInit true;
        }
        
    nEMA0 xEMA.getValue(0);
        
    nEMA1 xEMA.getValue(-1);
        
    nEMA2 xEMA.getValue(-2);
        if (
    nEMA2 == null) return;
        if (
    nEMA0 nEMA1) {
            for(
    0<= LookBacki++) {
                if (
    xLow.getValue(-i) < xLow.getValue(-(1))) {
                    
    Pen xLow.getValue(-(1)) - xLow.getValue(-i) + Pen;
                    
    Counter=Counter 1;
                 }
            }
            if (
    Counter != 0nSafeStop close(0) - (StopFactor * (Pen Counter));
                else 
    nSafeStop close(0) - (StopFactor Pen);
            if ((
    nSafeStop nPreSafeStop) && (nEMA1 nEMA2)) nSafeStop nPreSafeStop;
        }
        if (
    nEMA0 nEMA1) {
            for(
    0<= LookBacki++) {
                if (
    xHigh.getValue(-i) > xHigh.getValue(-(1))) {
                    
    Pen xHigh.getValue(-i) - xHigh.getValue(-(1)) + Pen;
                    
    Counter=Counter 1;
                }
            }
            if (
    Counter != 0nSafeStop close(0) + (StopFactor * (Pen Counter));
                else 
    nSafeStop close(0) + (StopFactor Pen);
            if ((
    nSafeStop nPreSafeStop) && (nEMA1 nEMA2)) nSafeStop nPreSafeStop;
        }
        return 
    nSafeStop;

Working...
X