Announcement

Collapse
No announcement yet.

2015 Sep: Decyclers by John Ehlers

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

  • 2015 Sep: Decyclers by John Ehlers

    File Name: SimpleDecycler.efs, DecyclerOscillator.efs

    Description:
    Decyclers by John Ehlers

    Formula Parameters:

    SimpleDecycler.efs
    HP Period: 125

    DecyclerOscillator.efs
    HP Period: 125
    K: 1

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

    Download File:
    SimpleDecycler.efs
    DecyclerOscillator.efs

    SimpleDecycler.efs


    DecyclerOscillator.efs


    EFS Code:

    SimpleDecycler.efs
    PHP Code:
    /*********************************
    Provided By:  
        Interactive Data Corporation (Copyright © 2015) 
        All rights reserved. This sample eSignal Formula Script (EFS)
        is for educational purposes only. Interactive Data Corporation
        reserves the right to modify and overwrite this EFS file with 
        each new release. 

    Description:        
        Decyclers by John Ehlers
        
    Formula Parameters:                     Default:
        HP Period                           125
        
    Version:            1.00  07/09/2015

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

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

    var fpArray = new Array();

    function 
    preMain(){
        
        
    setStudyTitle("Simple Decycler");
        
    setPriceStudy(true);
        
        
    setCursorLabelName("UpperBand"0);
        
    setCursorLabelName("Decycler"1);
        
    setCursorLabelName("LowerBand"2);
      
        
    setDefaultBarFgColor(Color.red1);

        var 
    0;

        
    fpArray[x] = new FunctionParameter("fpHPPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("HP Period");
            
    setLowerLimit(1);
            
    setDefault(125);
        }    
    }

    var 
    bInit false;
    var 
    bVersion null;

    var 
    xClose null;
    var 
    xHP null;

    function 
    main(fpHPPeriod){
        
        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;
        
        if (!
    bInit){

            
    xClose close();
            
    xHP efsInternal('Calc_HP'xClosefpHPPeriod);
            
            
    bInit true
        };

        var 
    nClose xClose.getValue(0);
        var 
    nHP xHP.getValue(0);

        if (
    nHP == null || nClose == null)
            return;

        var 
    nDecycle nClose nHP;
          
        return [
    nDecycle 1.005nDecyclenDecycle .995];
    }

    var 
    nAlpha null;

    function 
    Calc_HP(xSourcenPeriod){
        
        
    nAlpha = (Math.cos(.707*360 nPeriod Math.PI 180) +
                  
    Math.sin(.707*360 nPeriod Math.PI 180) - 1) /
                  
    Math.cos(.707*360 nPeriod Math.PI 180); 
        
        var 
    nSource xSource.getValue(0);
        var 
    nSource1 xSource.getValue(-1);
        var 
    nSource2 xSource.getValue(-2);
         
        if (
    nSource == null || nSource1 == null|| nSource2 == null)
            return;
        
        var 
    nHP_1 ref(-1);
        var 
    nHP_2 ref(-2);
        
        var 
    nHP Math.pow((nAlpha 2), 2) * (nSource nSource1 nSource2) +
                  
    * (nAlpha) * nHP_1 Math.pow((nAlpha), 2) * nHP_2;
          
        return 
    nHP;
    }

    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;

    DecyclerOscillator.efs
    PHP Code:
    /*********************************
    Provided By:  
        Interactive Data Corporation (Copyright © 2015) 
        All rights reserved. This sample eSignal Formula Script (EFS)
        is for educational purposes only. Interactive Data Corporation
        reserves the right to modify and overwrite this EFS file with 
        each new release. 

    Description:        
        Decyclers by John Ehlers
        
    Formula Parameters:                     Default:
        HP Period                           125
        K                                   1
        
    Version:            1.00  07/09/2015

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

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

    var fpArray = new Array();

    function 
    preMain(){
        
        
    setStudyTitle("Decycler Oscillator");
        
        
    setCursorLabelName("ZeroLine"0);
        
    setCursorLabelName("DecyclerOsc"1);
        
        
    setDefaultBarFgColor(Color.grey0);
        
        
    setDefaultBarThickness(10);
        
    setDefaultBarThickness(21);
        
        
    setShowCursorLabel(false0);
        
    setShowCursorLabel(true1);
            
        var 
    0;

        
    fpArray[x] = new FunctionParameter("fpHPPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("HP Period");
            
    setLowerLimit(1);
            
    setDefault(125);
        }
        
        
    fpArray[x] = new FunctionParameter("fpK"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("K");
            
    setDefault(1);
        } 
    }

    var 
    bInit false;
    var 
    bVersion null;

    var 
    xClose null;
    var 
    xHP null;
    var 
    xDecycle null;
    var 
    xDecycleOsc null;

    function 
    main(fpHPPeriodfpK){
        
        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;
        
        if (!
    bInit){

            
    xClose close();
            
    xHP efsInternal('Calc_HP'xClosefpHPPeriod);
            
    xDecycle efsInternal('Calc_Decycle'xClosexHP);
            
    xDecycleOsc efsInternal('Calc_HP'xDecycle.5 fpHPPeriod);
            
            
    bInit true
        };

        var 
    nClose xClose.getValue(0);
        var 
    nDecycleOsc xDecycleOsc.getValue(0);

        if (
    nDecycleOsc == null || nClose == null)
            return;

        var 
    nReturnValue 100 fpK nDecycleOsc nClose;
           
        return [
    0nReturnValue];
    }

    var 
    nAlpha null;

    function 
    Calc_HP(xSourcenPeriod){
        
        
    nAlpha = (Math.cos(.707*360 nPeriod Math.PI 180) +
                  
    Math.sin(.707*360 nPeriod Math.PI 180) - 1) /
                  
    Math.cos(.707*360 nPeriod Math.PI 180); 
        
        var 
    nSource xSource.getValue(0);
        var 
    nSource1 xSource.getValue(-1);
        var 
    nSource2 xSource.getValue(-2);
         
        if (
    nSource == null || nSource1 == null|| nSource2 == null)
            return;
        
        var 
    nHP_1 ref(-1);
        var 
    nHP_2 ref(-2);
        
        var 
    nHP Math.pow((nAlpha 2), 2) * (nSource nSource1 nSource2) +
                  
    * (nAlpha) * nHP_1 Math.pow((nAlpha), 2) * nHP_2;
          
        return 
    nHP;
    }

    function 
    Calc_Decycle(xSourcexHP){
        
        var 
    nSource xSource.getValue(0);
        var 
    nHP xHP.getValue(0);

        if (
    nHP == null || nSource == null)
            return;
        
        var 
    nDecycle nSource nHP;

        return 
    nDecycle;
    }

    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