Announcement

Collapse
No announcement yet.

Force Index

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

  • Force Index

    File Name: ForceIndex.efs

    Description:
    Force Index

    Formula Parameters:
    XLen1 : 3
    XLen3 : 13


    Notes:
    This Indicator plots the Force Index as described by Dr. Alexander
    Elder in "Trading For a Living." The ForceIndex indicator relates
    price to volume by multiplying net change and volume. ForceIndex is
    calculated using the following equation:
    ForceIndex = Volume(today) * (Close(this period) - Close(last period))
    ForceIndex is typically presented as two smoothed averages (slow and fast)
    to avoid false signals.


    Download File:
    ForceIndex.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:        
        Force Index
        
    Version:            1.0  04/15/2009

    Formula Parameters:                     Default:
        XLen1                               3
        XLen3                               13
    Notes:
        This Indicator plots the Force Index as described by Dr. Alexander 
        Elder in "Trading For a Living." The ForceIndex indicator relates 
        price to volume by multiplying net change and volume. ForceIndex is 
        calculated using the following equation:
        ForceIndex = Volume(today) * (Close(this period) - Close(last period))
        ForceIndex is typically presented as two smoothed averages (slow and fast) 
        to avoid false signals. 
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain() {
        
    setStudyTitle("Force Index");
        
    setCursorLabelName("FastAvg"0);
        
    setCursorLabelName("SlowAvg"1);
        
    setDefaultBarFgColor(Color.blue0);
        
    setDefaultBarFgColor(Color.red1);
        
    setPlotType(PLOTTYPE_HISTOGRAM0);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("XLen1"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(3);
        }
        
    fpArray[x] = new FunctionParameter("XLen2"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(13);
        }
    }

    var 
    xForce1 null;
    var 
    xForce2 null;

    function 
    main(XLen1XLen2) {
    var 
    nBarState getBarState();
    var 
    nForce1 0;
    var 
    nForce2 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    XLen1 == nullXLen1 3;
            if (
    XLen2 == nullXLen2 13;
        }
        
        if (
    bInit == false) {
            
    addBand(0PS_SOLID1Color.green1);
            
    xForce1 efsInternal("Calc_Force_Index"XLen1XLen2);
            
    xForce2 getSeries(xForce11);
            
    bInit true;
        }
        
    nForce1 xForce1.getValue(0);
        
    nForce2 xForce2.getValue(0);
       
        return new Array(
    nForce1nForce2);
    }

    var 
    xValue null;
    var 
    xSMA1 null;
    var 
    xSMA2 null;
    var 
    bSecondInit false;

    function 
    Calc_Force_Index(nLen1nLen2) {
    var 
    nRes 0;
    var 
    nSMA1 0;
    var 
    nSMA2 0;
        if (
    bSecondInit == false) {
            
    xValue efsInternal("Calc_Value");
            
    xSMA1 ema(nLen1xValue);
            
    xSMA2 ema(nLen2xValue);
            
    bSecondInit true;
        }
        
    nSMA1 xSMA1.getValue(0);
        
    nSMA2 xSMA2.getValue(0);
        if (
    nSMA1 == null || nSMA2 == null) return;
        return new Array(
    nSMA1nSMA2);
    }

    function 
    Calc_Value() {
    var 
    nRes 0;
        
    nRes volume(0) * (close(0) - close(-1));
        if (
    nRes == null) return;
        return 
    nRes;

Working...
X