Announcement

Collapse
No announcement yet.

2009 Jul: Trailing Resistance & Support Stops, by Sylvain Vervoort

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

  • 2009 Jul: Trailing Resistance & Support Stops, by Sylvain Vervoort

    File Name: SVE_TRENDS_Trail.efs

    Description:
    Trailing Resistance & Support Stops, by Sylvain Vervoort

    Formula Parameters:
    ATR Period : 10
    ATR Multiplication : 2.8
    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 & Commodities, please visit www.traders.com.


    Download File:
    SVE_TRENDS_Trail.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:        
        Trailing Resistance & Support Stops, by Sylvain Vervoort

    Version:            1.0  05/07/2009

    Formula Parameters:                     Default:
        ATR Period                          10
        ATR Multiplication                  2.8
        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 & Commodities, please visit [url]www.traders.com.[/url]

    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain() {
        
    setPriceStudy(true);
        
    setStudyTitle("R&S Trailing Stops");
        
    setCursorLabelName("R&S Trailing Stops"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(10);
        }
        
    fpArray[x] = new FunctionParameter("nATRMultip"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("ATR Multiplication");
            
    setLowerLimit(1);        
            
    setUpperLimit(10);        
            
    setDefault(2.8);
        }
        
    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 
    bVersion null;
    var 
    xSVE_TRENDS_Trail null;
    var 
    xClose null;
    var 
    bTrade true;

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

        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;   
        if (
    getCurrentBarCount() <= nATRPeriod 5) return;
        if(
    bInit==false){
            
    setShowCursorLabel(ViewValue);
            
    setDefaultBarFgColor(cColor0);
            
    xClose close();        
            
    xSVE_TRENDS_Trail efsInternal("SVE_TRENDS_Trail"nATRPeriodnATRMultipxClose);
            
    bInit=true;
        }
        
        if(
    getCurrentBarIndex() == 0) {
            
    bTrade false;
            return;
        }

        
    nClose xClose.getValue(0);
        
    nClose1 xClose.getValue(-1);
        
    nATRTS xSVE_TRENDS_Trail.getValue(0);
        
    nATRTS1 xSVE_TRENDS_Trail.getValue(-1);
        if (
    nATRTS == null) return;

        if (
    nClose1 nATRTS1 && nClose nATRTS) {
            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); 
                if (
    bTradeStrategy.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() && bTradeStrategy.doCover("Exit Short"Strategy.MARKETStrategy.NEXTBAR);            
            }
        }
        if (
    nClose1 nATRTS1 && nClose nATRTS) {
            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() && bTradeStrategy.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); 
                if (
    bTradeStrategy.doShort("Short"Strategy.MARKETStrategy.NEXTBAR);
            }    
        }
        if (
    bShowTS == false) return;
        return 
    nATRTS;
    }

    var 
    xHigh null;
    var 
    xLow null;
    var 
    xATR_Modif null;
    var 
    bSecondInit false;
    var 
    Support 0;
    var 
    Support_1 0;

    function 
    SVE_TRENDS_Trail(nATRPeriodnATRMultipxSClose){
    var 
    nClose 0;
    var 
    nLoss 0;
    var 
    Resistance 0;
    var 
    Trends 0;
    var 
    nRef ref(-1);
        if (
    bSecondInit == false) {
            
    xHigh high();
            
    xLow low();
            
    xATR_Modif efsInternal("Calc_ATRMod"nATRPeriodnATRMultipxSClosexHighxLow)
            
    bSecondInit true;
        }  

        
    nClose xSClose.getValue(0);
        if (
    xATR_Modif.getValue(0) == null) return;
        
    nLoss nATRMultip xATR_Modif.getValue(0);
        
    Resistance nClose nLoss;
        
        if(
    getBarState()==BARSTATE_NEWBAR){
            
    Support_1 Support;
        }

        if (
    xLow.getValue(0)  >= xLow.getValue(-2) && 
            
    xLow.getValue(-1) >= xLow.getValue(-2) && 
            
    xLow.getValue(-3) >= xLow.getValue(-2) && 
            
    xLow.getValue(-4) >= xLow.getValue(-2)) {
            
    Support xLow.getValue(-2);
        } else {
            if (
    xLow.getValue(0) > xHigh.getValue(-1) * 1.0013) {
                
    Support xHigh.getValue(-1) * 0.9945;
            } else {   
                if (
    xLow.getValue(0) > nRef 1.1) {
                    
    Support Support_1 1.05;
                } else {   
                    
    Support Support_1;
                }    
            }        
        }

        if (
    xHigh.getValue(0) > nRef && xHigh.getValue(-1) > nRef) {
            
    Trends Math.max(nRefSupport);
        } else {    
            if (
    xHigh.getValue(0) < nRef && xHigh.getValue(-1) < nRef) {
                
    Trends Math.min(nRefResistance);
            } else {    
                if (
    xHigh.getValue(0) >= nRef) {
                    
    Trends Support;
                } else {    
                    
    Trends Resistance;
                }    
            }        
        }    
        return 
    Trends;
    }

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

    var 
    bThirdInit false;
    var 
    xHigh_Low null;
    var 
    xMA_High_Low null;

    function 
    Calc_ATRMod(nATRPeriodnATRMultipxTClosexHighxLow) {
    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;
    var 
    nRef ref(-1);
        if (
    bThirdInit == false) {
            
    xHigh_Low efsInternal("Calc_High_Low");
            
    xMA_High_Low sma(nATRPeriodxHigh_Low)
            
    bThirdInit true;
        }    
        if (
    xMA_High_Low.getValue(-1) == null) return;
        var 
    nClose xTClose.getValue(0);
        var 
    nClose1 xTClose.getValue(-1);
        var 
    nHigh xHigh.getValue(0);
        var 
    nHigh1 xHigh.getValue(-1);
        var 
    nLow xLow.getValue(0);
        var 
    nLow1 xLow.getValue(-1);
        
    nHigh_Low xHigh_Low.getValue(0);
        
    nMA_High_Low xMA_High_Low.getValue(0);
      
        if (
    nHigh_Low 1.5 nMA_High_Low) {
            
    nHiLo nHigh_Low;
        } else {
            
    nHiLo 1.5 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) *  nRef) / nATRPeriod;
        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;

Working...
X