Announcement

Collapse
No announcement yet.

2010 Dec: Trading Indexes With The Hull Moving Average

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

  • 2010 Dec: Trading Indexes With The Hull Moving Average

    File Name: HullMA.efs, RSI_HMA_System.efs

    Description:
    Moving Average by Alan Hull and Trading Indexes With The Hull Moving Average

    Formula Parameters:
    HullMA.efs
    HMA Period: 10
    RSI_HMA_System.efs
    HMA Period: 9
    Period HMA for checking TurnUP: 4
    SMA Period: 50

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

    Download File:
    HullMA.efs
    RSI_HMA_System.efs

    HullMA.efs

    RSI_HMA_System.efs


    EFS Code: (HullMA.efs)
    PHP Code:
    /*********************************
    Provided By:  
        Interactive Data Corporation (Copyright © 2010) 
        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:        
        Moving Average by Alan Hull

    Version:            1.0  13/10/2010

    Formula Parameters:                     Default:
        HMA Period                          10

    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 
    bVersion null;
    function 
    preMain()
    {
        
    setPriceStudy(true);
        
    setStudyTitle("HMA");
        
    setCursorLabelName("HMA");
        
    setDefaultBarFgColor(Color.red0); 

        var 
    x=0;
        
    fpArray[x] = new FunctionParameter("gHMAPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++])
        {
            
    setName("HMA Period");
            
    setLowerLimit(1);
            
    setDefault(10);
        }
    }

    var 
    bInit false;
    var 
    xHMAArg null;
    var 
    xHMA null;
    var 
    xSlowWMA null;
    var 
    xFastWMA null;
    function 
    main(gHMAPeriod)
    {
        var 
    nBarState getBarState();
        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;   
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    gHMAPeriod == nullgHMAPeriod 10;
        }    
        
        if(
    getCurrentBarCount() <= gHMAPeriod) return;

        if (!
    bInit)
        {
            
    xFastWMA wma(Math.floor(gHMAPeriod/2));
            
    xSlowWMA wma(gHMAPeriod);
            
    xHMAArg efsInternal("calcHMAArg"xSlowWMAxFastWMA);
            
    xHMA wma(Math.floor(Math.sqrt(gHMAPeriod)),xHMAArg);
            
    bInit true;
        }
        var 
    vHMA xHMA.getValue(0);
        if (
    vHMA == null) return ;

        return  
    vHMA;
    }

    function 
    calcHMAArg(xSlowWMAxFastWMA)
    {
        var 
    vSlowVMA xSlowWMA.getValue(0);
        var 
    vFastVMA xFastWMA.getValue(0);
        if (
    vSlowVMA == null) return;
        return 
    2*vFastVMA vSlowVMA;
    }

    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;

    EFS Code: (RSI_HMA_System.efs)
    PHP Code:
    /*********************************
    Provided By:  
        Interactive Data Corporation (Copyright © 2010) 
        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:        
        Trading Indexes With The Hull Moving Average

    Version:            1.0  13/10/2010

    Formula Parameters:                     Default:
        HMA Period                              9
        Period HMA for checking TurnUP          4
        SMA Period                              50

    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 
    bVersion null;
    function 
    preMain()
    {
        
    setPriceStudy(true);
        
    setStudyTitle("RSI_HMA_System");

        var 
    x=0;
        
    fpArray[x] = new FunctionParameter("gPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++])
        {
            
    setName("HMA Period");
            
    setLowerLimit(1);
            
    setDefault(9);
        }
        
    fpArray[x] = new FunctionParameter("gTurnUpPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++])
        {
            
    setName("Period HMA for checking TurnUP");
            
    setLowerLimit(1);
            
    setDefault(4);
        }
        
    fpArray[x] = new FunctionParameter("gSMAPeriod"FunctionParameter.NUMBER);
        
    with(fpArray[x++])
        {
            
    setName("SMA Period");
            
    setLowerLimit(1);
            
    setDefault(50);
        }
    }  

    var 
    xCls null
    var 
    xHMA null;
    var 
    xHMA4 null
    var 
    xRSI null;
    var 
    xSMA null;
    var 
    bInit false;
    var 
    Pos 0;
    var 
    valueBuy 0;
    var 
    valueSell 0;
    var 
    valueProfit 0;
    function 
    main(gPeriodgTurnUpPeriodgSMAPeriod)
    {
        var 
    nBarState getBarState();
        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;   
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    gPeriod == nullgPeriod 9;
            if (
    gTurnUpPeriod == nullgTurnUpPeriod 4;
            if (
    gSMAPeriod == nullgSMAPeriod 50;
        }    
        
        if (!
    bInit)
        {
            
    xCls close(); 
            
    xOpn open();
            
    xHMA efsInternal("calcHullMA",gPeriod,xCls);
            
    xHMA4 efsInternal("calcHullMA",gTurnUpPeriod,xCls); 
            
    xRSI rsi(gPeriod,xHMA);
            
    xSMA sma(gSMAPeriodxCls);
            
    bInit true;
        }

        var  
    vRSI xRSI.getValue(-1);
        var  
    vRSIPrev xRSI.getValue(-2);
        var  
    vCls xCls.getValue(-1);
        var  
    vSMA xSMA.getValue(-1);
        var  
    vHMA4Prv xHMA4.getValue(-2);
        var  
    vHMA4Cur xHMA4.getValue(-1);
        var  
    vHMA4Nxt xHMA4.getValue(0);
        var  
    vClsPast xCls.getValue(-60);
        
        var  
    vOpn xOpn.getValue(0);
        var  
    vRSICur xRSI.getValue(0);
        
        if (
    vRSI == null || vClsPast ==null) return null;
        
        if (
    Strategy.isLong())
        {
            if (
    vRSI>=90)
            {
                
    valueSell = (Math.round(vOpn*100))/100;
                
    valueProfit = (Math.round((valueSell valueBuy)*100))/100;
                
    drawShapeRelative(0AboveBar1,  Shape.DOWNTRIANGLEnullColor.redShape.PRESET"sell"+Pos);
                
    drawTextRelative(0AboveBar4"Sell "+Pos+" @ "+valueSellColor.whiteColor.red
                    
    Text.PRESET Text.CENTER"Arial"10"stext1_"+Pos);
                
    drawTextRelative(0AboveBar3" "+valueProfitColor.whiteColor.green
                    
    Text.PRESET Text.CENTER"Arial"10"stext2_"+Pos);
                
    Strategy.doSell("Long Exit Signal"Strategy.MARKETStrategy.THISBAR);
            }        
        }
        else
        {
            if (
    vCls>=vSMA && vHMA4Prv>=vHMA4Cur && vHMA4Cur<=vHMA4Nxt && vRSIPrev<=50 && vCls>=vClsPast)
            { 
                
    Pos++;
                
    valueBuy = (Math.round(vOpn*100))/100;
                
    drawShapeRelative(0BelowBar1,  Shape.UPARROWnullColor.blueShape.PRESET"buy"+Pos);
                
    drawTextRelative(0BelowBar4"Buy "+Pos+" @ "+valueBuyColor.whiteColor.blue
                    
    Text.PRESET Text.CENTER"Arial"10"btext"+Pos);
                
    Strategy.doLong("Entry Long"Strategy.MARKETStrategy.THISBAR);
            }
        }
            
        if(
    Strategy.isLong()) setBarBgColor(Color.yellow);       
    }

    hullMAInit false;
    var 
    xFastWMA null;
    var 
    xSlowWMA null;
    var 
    xHMAArg null;
    var 
    xHMA null;
    function 
    calcHullMA(HMAPeriodxCls)
    {
        if(
    getCurrentBarCount() <= HMAPeriod) return;

        if (!
    hullMAInit)
        {
            
    xFastWMA wma(Math.floor(HMAPeriod/2),xCls);
            
    xSlowWMA wma(HMAPeriod,xCls);
            
    xHMAArg efsInternal("calcHMAArg"xSlowWMAxFastWMA);
            
    xHMA wma(Math.floor(Math.sqrt(HMAPeriod)),xHMAArg);
            
    hullMAInit true;
        }
        var 
    vHMA xHMA.getValue(0);
        if (
    vHMA == null) return ;

        return  
    vHMA;
    }    

    function 
    calcHMAArg(xSlowWMAxFastWMA)
    {
        var 
    vSlowVMA xSlowWMA.getValue(0);
        var 
    vFastVMA xFastWMA.getValue(0);
        if (
    vSlowVMA == null) return;
        return 
    2*vFastVMA vSlowVMA;
    }

    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