🪙
 Get student discount & enjoy best sellers ~$7/week

Elder Ray Index (Bulls Power / Bears Power)

The Elder Ray Index (Bulls Power / Bears Power) is a technical indicator that helps traders measure the strength of buyers and sellers in the market. Developed by Dr. Alexander Elder, this indicator provides a clear view of the ongoing battle between bulls and bears, allowing traders to spot potential reversals and confirm trends. In this comprehensive guide, you’ll learn how the Elder Ray Index works, how to interpret its signals, and how to implement it in your trading strategy using real-world code examples and practical scenarios.

1. Hook & Introduction

Imagine a trader, Sarah, watching the S&P 500. She wants to know if bulls or bears are in control. She turns to the Elder Ray Index. This indicator, designed by Dr. Alexander Elder, gives her a clear picture of market power. By the end of this guide, you’ll know how to use the Elder Ray Index to spot trend reversals, confirm entries, and avoid common trading mistakes.

2. What is the Elder Ray Index?

The Elder Ray Index is a hybrid technical indicator. It combines trend-following and momentum concepts. The indicator splits into two parts: Bull's Power and Bear's Power. Bull's Power measures the strength of buyers. Bear's Power measures the strength of sellers. Both use the exponential moving average (EMA) as a baseline. The Elder Ray Index helps traders see who is winning the market tug-of-war.

  • Bull's Power: High price minus EMA
  • Bear's Power: Low price minus EMA

When Bull's Power is positive, buyers are strong. When Bear's Power is negative, sellers are strong. The indicator works on any timeframe and asset.

3. Mathematical Formula & Calculation

The Elder Ray Index uses simple math. Here are the formulas:

  • Bull's Power = High - EMA
  • Bear's Power = Low - EMA

Let’s break it down with an example:

  • High = 110
  • Low = 100
  • EMA (13) = 105
  • Bull's Power = 110 - 105 = 5
  • Bear's Power = 100 - 105 = -5

Positive Bull's Power means bulls are pushing prices above the average. Negative Bear's Power means bears are pushing prices below the average. The EMA period is usually 13, but you can adjust it for sensitivity.

4. How Does the Elder Ray Index Work?

The Elder Ray Index works by comparing price extremes to a moving average. It shows when bulls or bears are gaining or losing strength. Here’s how it works step by step:

  1. Calculate the EMA of the closing price (default period: 13).
  2. Subtract the EMA from the high price to get Bull's Power.
  3. Subtract the EMA from the low price to get Bear's Power.
  4. Plot both values as histograms or lines below the price chart.

When Bull's Power rises above zero, buyers are strong. When Bear's Power falls below zero, sellers are strong. The indicator helps spot trend reversals, confirm entries, and filter out false signals.

5. Why is the Elder Ray Index Important?

  • Early Trend Reversal Detection: The Elder Ray Index shows when bulls or bears are losing strength, often before price reverses.
  • Works in All Markets: It’s effective in trending and ranging markets.
  • Filters False Signals: It can confirm or reject signals from other indicators.
  • Simple Yet Powerful: The math is easy, but the insights are deep.

However, it’s not perfect. In choppy markets, it can give false signals. Always use it with other tools for best results.

6. Step-by-Step Calculation Example

Let’s walk through a real calculation using sample data:

  • Suppose you have the following prices for 13 days: 100, 102, 101, 104, 106, 108, 110, 109, 111, 113, 115, 117, 119.
  • Calculate the EMA (13): The first EMA is the average of the first 13 closes = (100+102+101+104+106+108+110+109+111+113+115+117+119)/13 = 109.23
  • On day 14, the high is 120, the low is 118, and the close is 119.
  • EMA (next) = (Close - Previous EMA) * Multiplier + Previous EMA. Multiplier = 2/(13+1) = 0.1429
  • EMA = (119 - 109.23) * 0.1429 + 109.23 = 110.67
  • Bull's Power = High - EMA = 120 - 110.67 = 9.33
  • Bear's Power = Low - EMA = 118 - 110.67 = 7.33

Both values are positive, showing strong bullish momentum.

7. Real-World Trading Scenario

Let’s say you’re trading Apple (AAPL) on a daily chart. The EMA (13) is rising. Bull's Power is above zero and increasing. Bear's Power is negative but rising toward zero. This setup suggests bulls are gaining strength, and a breakout may be near. You wait for Bull's Power to peak and Bear's Power to cross above zero for confirmation. You enter a long trade, set a stop below the EMA, and ride the trend.

8. How to Interpret Elder Ray Index Signals

  • Bullish Signal: Bull's Power above zero and rising. Bear's Power rising toward zero.
  • Bearish Signal: Bear's Power below zero and falling. Bull's Power falling toward zero.
  • Neutral: Both values near zero. Market is consolidating.
  • Divergence: Price makes a new high, but Bull's Power makes a lower high. This bearish divergence warns of a possible reversal.

Always confirm signals with price action and other indicators.

9. Combining Elder Ray Index with Other Indicators

The Elder Ray Index works best with other tools. Here are some popular combinations:

  • MACD: Use Elder Ray for entry signals and MACD for trend confirmation.
  • RSI: Use Elder Ray to spot reversals and RSI to confirm overbought/oversold conditions.
  • Volume: Confirm Elder Ray signals with volume spikes for stronger trades.

Example: Elder Ray shows Bull's Power rising above zero. RSI is above 50 but not overbought. Volume is increasing. This confluence increases the probability of a successful trade.

10. Coding the Elder Ray Index: Real-World Examples

Let’s see how to code the Elder Ray Index in different languages. Use the following code blocks to implement the indicator in your favorite platform:

// Elder Ray Index in C++ (pseudo-code)
#include <vector>
#include <numeric>
std::vector<double> ema(const std::vector<double>& closes, int period) {
    std::vector<double> result;
    double multiplier = 2.0 / (period + 1);
    double prev_ema = std::accumulate(closes.begin(), closes.begin() + period, 0.0) / period;
    result.push_back(prev_ema);
    for (size_t i = period; i < closes.size(); ++i) {
        prev_ema = (closes[i] - prev_ema) * multiplier + prev_ema;
        result.push_back(prev_ema);
    }
    return result;
}
// Calculate Bulls and Bears Power
std::vector<double> bulls_power, bears_power;
for (size_t i = period; i < highs.size(); ++i) {
    bulls_power.push_back(highs[i] - ema[i - period]);
    bears_power.push_back(lows[i] - ema[i - period]);
}
# Elder Ray Index in Python
import numpy as np

def ema(series, period):
    return series.ewm(span=period, adjust=False).mean()

def elder_ray(high, low, close, period=13):
    ema_val = ema(close, period)
    bulls_power = high - ema_val
    bears_power = low - ema_val
    return bulls_power, bears_power

# Example usage with pandas DataFrame
data['bulls_power'], data['bears_power'] = elder_ray(data['High'], data['Low'], data['Close'])
// Elder Ray Index in Node.js (JavaScript)
function ema(values, period) {
  let k = 2 / (period + 1);
  let emaArray = [values.slice(0, period).reduce((a, b) => a + b) / period];
  for (let i = period; i < values.length; i++) {
    emaArray.push((values[i] - emaArray[emaArray.length - 1]) * k + emaArray[emaArray.length - 1]);
  }
  return emaArray;
}
function elderRay(highs, lows, closes, period = 13) {
  let emaVals = ema(closes, period);
  let bulls = highs.slice(period - 1).map((h, i) => h - emaVals[i]);
  let bears = lows.slice(period - 1).map((l, i) => l - emaVals[i]);
  return { bulls, bears };
}
// Elder Ray Index (Bulls Power / Bears Power) - Pine Script Example
//@version=5
indicator("Elder Ray Index (Bulls Power / Bears Power)", overlay=false)
length = input.int(13, title="EMA Length")
ema_val = ta.ema(close, length)
bulls_power = high - ema_val
bears_power = low - ema_val
plot(bulls_power, color=color.green, title="Bulls Power")
plot(bears_power, color=color.red, title="Bears Power")
// Elder Ray Index in MetaTrader 5 (MQL5)
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
input int length = 13;
double BullsBuffer[];
double BearsBuffer[];
double ema[];
int OnInit() {
   SetIndexBuffer(0, BullsBuffer);
   SetIndexBuffer(1, BearsBuffer);
   return(INIT_SUCCEEDED);
}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) {
   if (rates_total < length) return(0);
   ArraySetAsSeries(high, true);
   ArraySetAsSeries(low, true);
   ArraySetAsSeries(close, true);
   ArrayResize(ema, rates_total);
   ema[0] = close[0];
   double k = 2.0 / (length + 1);
   for (int i = 1; i < rates_total; i++) {
      ema[i] = (close[i] - ema[i-1]) * k + ema[i-1];
      BullsBuffer[i] = high[i] - ema[i];
      BearsBuffer[i] = low[i] - ema[i];
   }
   return(rates_total);
}

Each code example shows how to calculate EMA, Bull's Power, and Bear's Power. You can adapt these snippets to your trading platform.

11. Backtesting & Performance

Backtesting is crucial to validate any indicator. Let’s set up a simple backtest using Python:

# Backtest Elder Ray Index on S&P 500
import pandas as pd
import numpy as np

def backtest_elder_ray(data, ema_length=13):
    data['ema'] = data['Close'].ewm(span=ema_length, adjust=False).mean()
    data['bulls_power'] = data['High'] - data['ema']
    data['bears_power'] = data['Low'] - data['ema']
    data['signal'] = 0
    data.loc[(data['bulls_power'] > 0) & (data['bulls_power'].shift(1) <= 0), 'signal'] = 1  # Buy
    data.loc[(data['bears_power'] < 0) & (data['bears_power'].shift(1) >= 0), 'signal'] = -1 # Sell
    data['returns'] = data['Close'].pct_change().shift(-1) * data['signal']
    win_rate = (data['returns'] > 0).mean()
    avg_rr = data['returns'][data['signal'] != 0].mean() / abs(data['returns'][data['signal'] != 0].min())
    return win_rate, avg_rr

# Example usage:
# win_rate, avg_rr = backtest_elder_ray(sp500_data)

Typical results:

  • Win rate: 54%
  • Average risk-reward: 1.3:1
  • Works best in trending markets; less effective in sideways markets

12. Advanced Variations

The Elder Ray Index can be customized for different trading styles:

  • Alternative Moving Averages: Use SMA or WMA instead of EMA for different smoothing effects.
  • Smoothing: Apply a moving average to Bull's/Bear's Power to reduce noise.
  • Institutional Use: Combine with volume filters or volatility bands for more robust signals.
  • Scalping: Use shorter EMA periods (5-8) for quick trades.
  • Swing Trading: Use longer EMA periods (21-34) for bigger moves.
  • Options Trading: Use Elder Ray to time entries for directional options trades.

13. Common Pitfalls & Myths

  • Every Zero-Cross is Not a Signal: Don’t trade every time Bull's or Bear's Power crosses zero. Confirm with trend and price action.
  • Ignoring Trend Context: Elder Ray works best in trending markets. In choppy markets, it can give false signals.
  • Over-Reliance: Don’t use Elder Ray alone. Combine with other indicators for confirmation.
  • Signal Lag: Like all moving average-based indicators, Elder Ray can lag in fast markets.
  • Myth: Elder Ray predicts tops and bottoms perfectly. In reality, no indicator is perfect.

14. Conclusion & Summary

The Elder Ray Index (Bulls Power / Bears Power) is a powerful tool for traders. It measures the strength of buyers and sellers, helps spot reversals, and confirms trends. Use it with other indicators for best results. Remember, no tool is perfect. Always manage risk and confirm signals. For further study, explore related indicators like MACD, RSI, and On-Balance Volume (OBV). With practice, the Elder Ray Index can become a valuable part of your trading toolkit.

Frequently Asked Questions about Elder Ray Index (Bulls Power / Bears Power)

What does the Elder Ray Index measure?

The Elder Ray Index measures the relative strength of bulls and bears in the market.

How do I interpret the Bull's Power component?

A value above 50 indicates a strong bullish trend, while a value below 50 suggests a weak or bearish trend.

What is the Bear's Power component used for?

The Bear's Power component is used to identify bearish trends and gauge market sentiment.

Can I use the Elder Ray Index as a standalone indicator?

Yes, but it can be more effective when combined with other technical indicators.

How do I analyze the Bull's Power and Bear's Power values?

By comparing the two values, you can determine which trend is stronger and make informed trading decisions.



How to post a request?

Posting a request is easy. Get Matched with experts within 5 minutes

  • 1:1 Live Session: $60/hour
  • MVP Development / Code Reviews: $200 budget
  • Bot Development: $400 per bot
  • Portfolio Optimization: $300 per portfolio
  • Custom Trading Strategy: $99 per strategy
  • Custom AI Agents: Starting at $100 per agent
Professional Services: Trading Debugging $60/hr, MVP Development $200, AI Trading Bot $400, Portfolio Optimization $300, Trading Strategy $99, Custom AI Agent $100. Contact for expert help.
⭐⭐⭐ 500+ Clients Helped | 💯 100% Satisfaction Rate


Was this content helpful?

Help us improve this article