Announcement

Collapse
No announcement yet.

StepSto

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

  • StepSto

    File Name: StepSto.efs

    Description:
    StepSto

    Formula Parameters:
    Length ATR : 10
    K Slow : 1
    K Fast : 1
    TopBand : 70
    LowBand : 30


    Notes:


    Download File:
    StepSto.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:        
        StepSto
    Version:            1.0  09/17/2009
     
    Formula Parameters:                     Default:
        Length ATR                          10
        K Slow                              1
        K Fast                              1
        TopBand                             70
        LowBand                             30
        
    Notes:
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(false);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("StepSto");
        
    setCursorLabelName("StepSto Slow"0);
        
    setPlotType(PLOTTYPE_LINE0);
        
    setDefaultBarFgColor(Color.red0);
        
    setCursorLabelName("StepSto Fast"1);
        
    setPlotType(PLOTTYPE_LINE1);
        
    setDefaultBarFgColor(Color.green1);
        
    setStudyMax(101);
        
    setStudyMin(-1);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Kfast"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("K Fast");
            
    setLowerLimit(1);
            
    setDefault(1);
        }    
        
    fpArray[x] = new FunctionParameter("Kslow"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("K Slow");
            
    setLowerLimit(1);
            
    setDefault(1);
        }    
        
    fpArray[x] = new FunctionParameter("LengthATR"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Length ATR");
            
    setLowerLimit(1);
            
    setDefault(10);
        }        
        
    fpArray[x] = new FunctionParameter("TopBand"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(1);        
            
    setDefault(70);
        }
        
    fpArray[x] = new FunctionParameter("LowBand"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(0);        
            
    setDefault(30);
        }
    }

    var 
    xATR null;
    var 
    xClose null;
    var 
    nATRmax 0;
    var 
    nATRmin 110;
    var 
    SminMin1 99999;
    var 
    SmaxMin1 99999;
    var 
    SminMax1 0;
    var 
    SmaxMax1 0;
    var 
    SminMid1 0;
    var 
    SmaxMid1 0;
    var 
    SminMin0 99999;
    var 
    SmaxMin0 99999;
    var 
    SminMax0 0;
    var 
    SmaxMax0 0;
    var 
    SminMid0 0;
    var 
    SmaxMid0 0;

    function 
    main(LengthATRKfastKslowTopBandLowBand) {
    var 
    nBarState getBarState();
    var 
    nATR 0;
    var 
    linemin 0;
    var 
    linemax 0;
    var 
    linemid 0;
    var 
    Sto1 0;
    var 
    Sto2 0;
    var 
    bsmin 0;
    var 
    bsmax 0;
    var 
    StepSizeMin 0;
    var 
    StepSizeMax 0;
    var 
    StepSizeMid 0
    var 
    nClose 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    LengthATR == nullLengthATR 10;
            if(
    Kslow == nullKslow 1;
            if(
    Kfast == nullKfast 1;
            if(
    TopBand == nullTopBand 70;
            if(
    LowBand == nullLowBand 30;
            
    nATRmax 0;
            
    nATRmin 99999;
        }
        if (
    bInit == false) {
            
    addBand(TopBandPS_SOLID1Color.grey"TopBand");
            
    addBand(LowBandPS_SOLID1Color.grey"LowBand");        
            
    xClose close();
            
    xATR atr(LengthATR);
            
    bInit true;
        }
        
    nATR xATR.getValue(-1);
        if (
    nATR == null) return;
        if (
    nBarState == BARSTATE_NEWBAR) {
            
    SminMin1 SminMin0;
            
    SmaxMin1 SmaxMin0;
            
    SminMax1 SminMax0;
            
    SmaxMax1 SmaxMax0;
            
    SminMid1 SminMid0;
            
    SmaxMid1 SmaxMid0;
        }
        
    nClose xClose.getValue(-1);
        
    nATRmax Math.max(nATRnATRmax);
        
    nATRmin Math.min(nATRnATRmin);
        
    StepSizeMin = (Kfast nATRmin);
        
    StepSizeMax = (Kfast nATRmax);
        
    StepSizeMid = (Kfast 0.5 Kslow * (nATRmax nATRmin));
        
    SmaxMin0 nClose StepSizeMin;
        
    SminMin0 nClose StepSizeMin;
        
    SmaxMax0 nClose StepSizeMax;
        
    SminMax0 nClose StepSizeMax;
        
    SmaxMid0 nClose StepSizeMid;
        
    SminMid0 nClose StepSizeMid;
        if (
    nClose SmaxMin1TrendMin 1;
        if (
    nClose SminMin1TrendMin = -1;
        if (
    nClose SmaxMax1TrendMax 1;
        if (
    nClose SminMax1TrendMax = -1;
        if (
    nClose SmaxMid1TrendMid 1;
        if (
    nClose SminMid1TrendMid = -1;
        if (
    TrendMin && SminMin0 SminMin1SminMin0 SminMin1;
        if (
    TrendMin && SmaxMin0 SmaxMin1SmaxMin0 SmaxMin1;
        if (
    TrendMax && SminMax0 SminMax1SminMax0 SminMax1;
        if (
    TrendMax && SmaxMax0 SmaxMax1SmaxMax0 SmaxMax1;
        if (
    TrendMid && SminMid0 SminMid1SminMid0 SminMid1;
        if (
    TrendMid && SmaxMid0 SmaxMid1SmaxMid0 SmaxMid1;
        if (
    TrendMin 0linemin SminMin0 StepSizeMin;
        if (
    TrendMin 0linemin SmaxMin0 StepSizeMin;
        if (
    TrendMax 0linemax SminMax0 StepSizeMax;
        if (
    TrendMax 0linemax SmaxMax0 StepSizeMax;
        if (
    TrendMid 0linemid SminMid0 StepSizeMid;
        if (
    TrendMid 0linemid SmaxMid0 StepSizeMid;
        
    bsmin linemax StepSizeMax;
        
    bsmax linemax StepSizeMax;
        
    Sto1 = ((linemin bsmin) / (bsmax bsmin)) * 100;
        
    Sto2 = ((linemid bsmin) / (bsmax bsmin)) * 100;
        return new Array(
    Sto1Sto2);

Working...
X