Announcement

Collapse
No announcement yet.

EFS study intervals

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • EFS study intervals

    Hi guys!

    I often use 1 min. charts that include moving averages based on 5 min. intervals. I would like to use the following ATR efs the same way, but have not had any luck setting the script to work on a 5 min interval. Any help would be appreciated.

    PHP Code:
    *********************************
    Provided By:  
        
    eSignal (Copyright c eSignal), a division of Interactive Data 
        Corporation
    2009. All rights reservedThis sample eSignal 
        Formula Script 
    (EFSis 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:        
        
    Modified Average True Range Trailing Stopsby Sylvain Vervoort

    Version
    :            1.0  04/09/2009

    Formula Parameters
    :                     Default:
        
    ATR Period                          5
        ATR Multiplication                  3.5
        Long 
    or Short                       Long
        Show Line Trailing Stop             True
        Show Labels                         True
        Show Arrows                         True
        Display Cursor Labels               True
        Line Color                          Red

    Notes
    :
        
    The related article is copyrighted material. If you are not a subscriber
        of Stocks 
    Commoditiesplease visit www.traders.com.

    **********************************/

    var 
    fpArray = new Array();

    function 
    preMain() {
        
    setPriceStudy(true);
        
    setStudyTitle("Modified ATR Trailing Stops");
        
    setCursorLabelName("Modified ATR TS"0);
        
    setShowTitleParameters(false);

        
    setDefaultBarFgColor(Color.red0);
        
    setPlotType(PLOTTYPE_LINE0); 
        
    setDefaultBarThickness(20);

        
    askForInput();
        var 
    x=0;
        
    fpArray[x] = new FunctionParameter("nATRPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("ATR Period");
            
    setLowerLimit(1);        
            
    setUpperLimit(100);        
            
    setDefault(5);
        }
        
    fpArray[x] = new FunctionParameter("nATRMultip"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("ATR Multiplication");
            
    setLowerLimit(1);        
            
    setUpperLimit(10);        
            
    setDefault(3.5);
        }
        
    fpArray[x] = new FunctionParameter("bShowTS"FunctionParameter.BOOLEAN);
        
    with(fpArray[x++]){
            
    setName("Show Line Trailing Stop");
            
    addOption("true");
            
    addOption("false");        
            
    setDefault("true");
        }
        
    fpArray[x] = new FunctionParameter("bShowL"FunctionParameter.BOOLEAN);
        
    with(fpArray[x++]){
            
    setName("Show Labels");
            
    addOption("true");
            
    addOption("false");        
            
    setDefault("true");
        }
        
    fpArray[x] = new FunctionParameter("bShowArrows"FunctionParameter.BOOLEAN);
        
    with(fpArray[x++]){
            
    setName("Show Arrows");
            
    addOption("true");
            
    addOption("false");        
            
    setDefault("true");
        }    
        
    fpArray[x] = new FunctionParameter("ViewValue"FunctionParameter.BOOLEAN);
        
    with(fpArray[x++]){
            
    setName("Display Cursor Labels");
            
    setDefault(true);
        }        
        
    fpArray[x] = new FunctionParameter("sStrategy"FunctionParameter.STRING);
        
    with(fpArray[x++]){
            
    setName("Long or Short");
            
    addOption("Long");
            
    addOption("Short");        
            
    setDefault("Long");
        }
        
    fpArray[x] = new FunctionParameter("cColor"FunctionParameter.COLOR);
        
    with(fpArray[x++]){
            
    setName("Line Color");
            
    setDefault(Color.red);
        }    
    }

    var 
    bInit false;
    var 
    bVersion null;
    var 
    xATRTrailingStop null;
    var 
    xClose null;

    function 
    main(nATRPeriodnATRMultipsStrategybShowTSbShowLbShowArrowsViewValuecColor){
    var 
    nClose 0;
    var 
    nClose1 0;
    var 
    nATRTS 0;
    var 
    nATRTS1 0;

        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;   

        if(
    bInit==false){
            
    setShowCursorLabel(ViewValue);
            
    setDefaultBarFgColor(cColor0);
            
    xClose close();        
            
    xATRTrailingStop efsInternal("ModifiedATRTrailingStop"nATRPeriodnATRMultipxClose);
            
    bInit=true;
        }
        
        if(
    getCurrentBarIndex() == 0) return;
        
        
    nClose xClose.getValue(0);
        
    nClose1 xClose.getValue(-1);
        
    nATRTS xATRTrailingStop.getValue(0);
        
    nATRTS1 xATRTrailingStop.getValue(-1);
        if (
    nATRTS1 == null) return;

        if (
    nClose1 nATRTS1 && nClose nATRTS1) {
            if (
    bShowArrowsdrawShapeShape.UPARROWBelowBar1Color.green);
            if (
    sStrategy == "Long") {
                if (
    bShowLdrawTextRelative(0BelowBar2" LONG"Color.whiteColor.greenText.PRESET|Text.CENTER|Text.FRAME"Arial Black"10"b"+(getCurrentBarCount()), -5); 
                
    Strategy.doLong("Long"Strategy.MARKETStrategy.NEXTBAR);
            } else {
                if (
    bShowLdrawTextRelative(0BelowBar2,  " EXIT"Color.whiteColor.greenText.PRESET|Text.CENTER|Text.FRAME"Arial Black"10"b"+(getCurrentBarCount()), -5); 
                if (
    Strategy.isShort()) Strategy.doCover("Exit Short"Strategy.MARKETStrategy.NEXTBAR);            
            }
        }
        if (
    nClose1 nATRTS1 && nClose nATRTS1) {
            if (
    bShowArrowsdrawShapeShape.DOWNARROWAboveBar1Color.red);
            if (
    sStrategy == "Long") {
                if (
    bShowLdrawTextRelative(0AboveBar2,  " EXIT"Color.whiteColor.redText.PRESET|Text.CENTER|Text.FRAME"Arial Black"10"b"+(getCurrentBarCount()), -5); 
                if (
    Strategy.isLong()) Strategy.doSell("Exit Long"Strategy.MARKETStrategy.NEXTBAR);
            } else {
                if (
    bShowLdrawTextRelative(0AboveBar2,  "SHORT"Color.whiteColor.redText.PRESET|Text.CENTER|Text.FRAME "Arial Black"10"b"+(getCurrentBarCount()), -5); 
                
    Strategy.doShort("Short"Strategy.MARKETStrategy.NEXTBAR);
            }    
        }

        if (
    bShowTS == false) return;
        return 
    xATRTrailingStop.getValue(0);
    }

    var 
    xHigh_Low null;
    var 
    xATR_Modif null;
    var 
    nRef 0;
    var 
    bSecondInit false;

    function 
    ModifiedATRTrailingStop(nATRPeriodnATRMultipxSClose){
    var 
    nBarState getBarState();
    var 
    nClose 0;
    var 
    nClose1 0;
    var 
    nLoss 0;
    var 
    nRes 0;
    var 
    nRef ref(-1);

        if (
    bSecondInit == false) {
            
    xHigh_Low efsInternal("Calc_High_Low");
            
    xATR_Modif efsInternal("Calc_ATRMod"nATRPeriodnATRMultipxSClosexHigh_Lowsma(nATRPeriodxHigh_Low))
            
    bSecondInit true;
        }    
        
    nClose xSClose.getValue(0);
        
    nClose1 xSClose.getValue(-1);
        
    nLoss nATRMultip xATR_Modif.getValue(0);
        if (
    nLoss == null) return;
       
        if (
    nClose nRef && nClose1 nRef) {
            
    nRes Math.max(nRefnClose nLoss);
        } else {
            if (
    nClose nRef && nClose1 nRef) {
                
    nRes Math.min(nRefnClose nLoss);
            } else {
                if (
    nClose nRef) {
                    
    nRes nClose nLoss;
                } else {
                    
    nRes nClose nLoss;
                }
            }
        }
        return 
    nRes;
    }

    function 
    Calc_High_Low() {
    var 
    nRes high(0) - low(0);
        if (
    nRes == null) return;
        return 
    nRes;
    }

    var 
    bThirdInit false;
    var 
    xHigh null;
    var 
    xLow null;

    function 
    Calc_ATRMod(nATRPeriodnATRMultipxTClosexHigh_LowxMA_High_Low) {
    var 
    nHiLo 0;
    var 
    nHref 0;
    var 
    nLref 0;
    var 
    ndiff1 0;
    var 
    ndiff2 0;
    var 
    nHigh_Low 0;
    var 
    nMA_High_Low 0;
    var 
    nAtrMod 0;

        if (
    bThirdInit == false) {
            
    xHigh high();
            
    xLow low();
            
    bThirdInit true;
        }

        var 
    nClose xTClose.getValue(0);
        var 
    nClose1 xTClose.getValue(0);
        var 
    nHigh xHigh.getValue(0);
        var 
    nHigh1 xHigh.getValue(0);
        var 
    nLow xLow.getValue(0);
        var 
    nLow1 xLow.getValue(0);

        
    nHigh_Low xHigh_Low.getValue(0);
        
    nMA_High_Low xMA_High_Low.getValue(0) * 1.5;

        if (
    nHigh_Low == null || nMA_High_Low == null) return;
      
        if (
    nHigh_Low nMA_High_Low) {
            
    nHiLo nHigh_Low;
        } else {
            
    nHiLo nMA_High_Low;
        }
     
         if (
    nLow <= nHigh1) {
            
    nHref nHigh nClose1;
        } else {
            
    nHref = (nHigh nClose1) - (nLow nHigh1) / 2;
        }
      
        if (
    nHigh >= nLow1) {
            
    nLref nClose1 nLow;
        } else {
            
    nLref = (nClose1 nLow) - (nLow1 nHigh) / 2;
        }

        
    ndiff1 Math.max(nHiLonHref);
        
    ndiff2 Math.max(ndiff1nLref);
        
    nAtrMod = (ndiff2 + (nATRPeriod 1) *  ref(-1)) / nATRPeriod;

        if (
    nAtrMod == null) return;
        return 
    nAtrMod;
    }

    function 
    verify() {
        var 
    false;
        if (
    getBuildNumber() < 779) {
            
    drawTextAbsolute(535"This study requires version 8.0 or later."
                
    Color.whiteColor.blueText.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
                
    null13"error");
            
    drawTextAbsolute(520"Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp"
                
    Color.whiteColor.blueText.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
                
    null13"upgrade");
            return 
    b;
        } else {
            
    true;
        }
        return 
    b;


  • #2
    I was able to change the script interval by adding the following variables and changing the value of xClose. Now the script is working great.

    var Interval = (inv("5"));
    var Close5 = close(Interval);


    xClose = Close5

    Comment

    Working...
    X