Elder Force Index with Adaptive Cycle and ATR Channels

Elder Force Index with Adaptive Cycle and ATR Channels

1. Introduction

The Force Index (EFI), originally developed by Dr. Alexander Elder, is a classic oscillator that measures the power behind a price move. It combines the three essential elements of market action: the direction of the price change, the extent of the change, and the volume. A significant price move on high volume results in a high Force Index value, while a small move on low volume results in a low value.

This advanced version, enhances the original concept in two significant ways:

  1. It includes an adaptive calculation mode that uses a band-pass filter to find the market’s dominant cycle, making the indicator’s smoothing automatically adjust to current conditions.
  2. It incorporates volatility channels based on the EFI’s own Average True Range (ATR), helping to identify extreme, climactic, or over-extended moves.

2. How the Indicator Works

The Core “Force” Calculation

The “force” of each bar is calculated with the classic formula: (Current Close - Previous Close) * Volume. This raw value is then smoothed using an Exponential Moving Average (EMA) to create the main EFI line (blue). A second, typically slower, EMA is applied to the EFI line to create the Signal line (orange).

Here is the complete article for ProRealcode.com, written in English and formatted for easy publishing.


1. Introduction

The Force Index (EFI), originally developed by Dr. Alexander Elder, is a classic oscillator that measures the power behind a price move. It combines the three essential elements of market action: the direction of the price change, the extent of the change, and the volume. A significant price move on high volume results in a high Force Index value, while a small move on low volume results in a low value.

This advanced version enhances the original concept in two significant ways:

  1. It includes an adaptive calculation mode that uses a band-pass filter to find the market’s dominant cycle, making the indicator’s smoothing automatically adjust to current conditions.
  2. It incorporates volatility channels based on the EFI’s own Average True Range (ATR), helping to identify extreme, climactic, or over-extended moves.

2. How the Indicator Works

The Core “Force” Calculation

The “force” of each bar is calculated with the classic formula: (Current Close - Previous Close) * Volume. This raw value is then smoothed using an Exponential Moving Average (EMA) to create the main EFI line (blue). A second, typically slower, EMA is applied to the EFI line to create the Signal line (orange).

Feature 1: The Adaptive Engine (Band-Pass Filter)

This indicator gives you two choices for its calculation method, set by the calcType input:

  • Fixed Mode (calcType = 1): This is the default. The indicator behaves like a standard EFI, using the fixed periods you define in the settings (len for the EFI, slen for the Signal line) .
  • Adaptive Mode (calcType = 0): This mode activates a sophisticated band-pass filter to analyze price action and determine the current dominant market cycle. It then uses this detected cycle length to automatically adjust the periods for the EFI, Signal, and ATR calculations. This makes the indicator more responsive in fast, active markets and smoother during quiet consolidation.

Feature 2: The ATR Volatility Channels

Instead of using the price’s ATR, this indicator cleverly calculates the volatility of the EFI line itself. It does this by taking an EMA of the absolute difference between consecutive EFI values.

It then plots three sets of these ATR bands (at 1x, 2x, and 3x the multiplier) around the orange Signal line. These channels function as dynamic “overbought” and “oversold” levels based on the EFI’s current volatility.

Feature 3: Truncation (Normalization)

The truncAtr setting (on by default) helps to normalize the oscillator. If the EFI value tries to spike far beyond the 3rd ATR band, this feature will “cap” or “truncate” the visual plot at the 3rd band. This prevents a single extreme spike from skewing the chart and makes it easier to read.

3. How to Use This Indicator

  • Trend Confirmation (The Zero Line)
    • Bullish: The EFI line (blue) and/or Signal line (orange) are above the zero line. This indicates that buying power is dominant.
    • Bearish: The EFI and/or Signal lines are below the zero line. This indicates that selling power is dominant.
  • Identifying Extremes (The ATR Bands)
    • When the blue EFI line hits the 2nd or 3rd ATR band (e.g., atrHigh2 or atrHigh3), it signals a very strong, potentially over-extended, or “climactic” move.
    • The indicator automatically plots red and green dots when the EFI line reaches or exceeds the 3rd ATR band, visually highlighting these potential exhaustion or reversal points.
  • Spotting Divergences
    • Bullish Divergence: The price makes a new low, but the EFI makes a higher low. This suggests selling power is weakening and a reversal up may be near.
    • Bearish Divergence: The price makes a new high, but the EFI makes a lower high. This suggests buying power is weakening and a reversal down may be near.
  • Signal Line Crossovers
    • A blue EFI line crossing above the orange Signal line can be used as an aggressive buy trigger.
    • A blue EFI line crossing below the orange Signal line can be used as an aggressive sell trigger.

4. Configuration & Settings

Here are the inputs you can customize in the indicator’s settings panel:

Main Calculation Mode

  • calcType (Default: 1)

    This is the master switch for the calculation method.

    • 1 = Fixed Mode
    • 0 = Band-pass (Adaptive) Mode

Fixed Mode Parameters

(These are only used if calcType is set to 1)

  • len (Default: 13): The period for the main EFI’s EMA.
  • slen (Default: 21): The period for the Signal line’s EMA.

Band-Pass (Adaptive) Mode Parameters

(These are only used if calcType is set to 0)

  • bpPeriod (Default: 13): The base period for the band-pass filter
  • bpWidth (Default: 0.20): The width of the band-pass filter.
  • cycleLen (Default: 1.00): A multiplier for the detected cycle, used to set the Signal and ATR lengths. (e.g., 1.0 = 100% of the cycle).
  • efireduction (Default: 0.75): A multiplier for the detected cycle, used to set the main EFI length. (e.g., 0.75 = 75% of the cycle).

ATR Channel Settings

  • atrMult1 (Default: 1): The multiplier for the 1st (inner) ATR band.
  • atrMult2 (Default: 2): The multiplier for the 2nd (middle) ATR band
  • atrMult3 (Default: 3): The multiplier for the 3rd (outer) ATR band.

Display Setting

  • truncAtr (Default: 1)

    Controls the “capping” of the EFI line.

    • 1 = Truncate (cap) the EFI line at the 3rd ATR band.
    • 0 = Do Not Truncate (allow the EFI line to draw its true value).

5. ProRealTime Code

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

avatar
Register or
Related users ' posts
juanj @Holy Grail, glad you like it. Would you perhaps mind sharing your results here: https://www...
CaptainCaveman I am reluctant to say this buy I was a member of Dr Elder trading group for a while . The fa...
micquan The design is too complex and the performance is low.
Alan hi there, i get an error which says the screener does not contain code? Please help me adjus...
Nicolas I just tried with the itf file from the above post and it contains code. Did you import it i...

Top