Files

6.2 KiB
Raw Permalink Blame History

IMPULSE: Elder Impulse System

The Impulse System identifies inflection points where a trend speeds up or slows down.

Property Value
Category Dynamic
Inputs OHLCV bar (TBar)
Parameters emaPeriod (default 13), macdFast (default 12), macdSlow (default 26), macdSignal (default 9)
Outputs Single series (Impulse)
Output range Varies (see docs)
Warmup Math.Max(emaPeriod, macdSlow) + macdSignal - 1 bars (default 34)
  • The Elder Impulse System combines a 13-period EMA (trend inertia) with the MACD(12,26,9) histogram (momentum acceleration) to classify each bar as ...
  • Validated against TA-Lib, Skender, and Tulip reference implementations where available.

The Elder Impulse System combines a 13-period EMA (trend inertia) with the MACD(12,26,9) histogram (momentum acceleration) to classify each bar as bullish (+1), bearish (-1), or neutral (0). Both EMA slope and histogram slope must agree for a directional signal; disagreement forces neutral. The system functions as a permission filter rather than a signal generator, requiring 34 bars warmup and running at O(1) per bar through composition of two child indicators.

Historical Context

Alexander Elder introduced the Impulse System in Come Into My Trading Room (2002). A psychiatrist turned trader, Elder designed it as a discipline enforcement mechanism: green bars permit long entries, red bars permit short entries, blue bars prohibit new positions in either direction. The intellectual lineage runs through Gerald Appel's MACD (1979) and Thomas Aspray's MACD Histogram (1986). Elder's contribution was combining first-derivative (EMA slope) and second-derivative (histogram slope) filters into a single ternary decision gate. Most implementations treat this as a visual color overlay; QuanTAlib exposes it as a programmatic discrete signal for algorithmic consumption.

Architecture & Physics

1. EMA Component (Trend Inertia)

The 13-period EMA tracks trend direction via exponential smoothing:

\alpha = \frac{2}{n + 1} = \frac{2}{14} \approx 0.1429 \text{EMA}_t = \alpha \cdot \text{Close}_t + (1 - \alpha) \cdot \text{EMA}_{t-1}

With warmup bias compensation:

\text{EMA}_{\text{corrected}} = \frac{\text{EMA}_{\text{raw}}}{1 - (1 - \alpha)^t}

The EMA slope \Delta_{\text{EMA}} = \text{sign}(\text{EMA}_t - \text{EMA}_{t-1}) represents smoothed trend direction (first derivative of price).

2. MACD Histogram Component (Momentum Acceleration)

\text{MACD Line} = \text{EMA}(12) - \text{EMA}(26) \text{Signal} = \text{EMA}(9,\ \text{MACD Line}) \text{Histogram} = \text{MACD Line} - \text{Signal}

The histogram is the second derivative of price (acceleration). Its slope \Delta_{\text{Hist}} = \text{sign}(\text{Hist}_t - \text{Hist}_{t-1}) indicates whether momentum is building or fading.

3. Signal Classification

\text{Impulse} = \begin{cases} +1 & \text{if } \Delta_{\text{EMA}} > 0 \text{ and } \Delta_{\text{Hist}} > 0 \\ -1 & \text{if } \Delta_{\text{EMA}} < 0 \text{ and } \Delta_{\text{Hist}} < 0 \\ 0 & \text{otherwise} \end{cases}

The neutral state fires whenever the two components disagree, identifying transition zones where conviction is insufficient for new entries.

4. Warmup

W = \max(13, 26) + 9 - 1 = 34 \text{ bars}

Both child indicators must be warmed up and at least two comparison values must exist before valid signals emerge.

5. Complexity

Metric Value
Time O(1) per bar (delegates to child EMA/MACD updates)
Space O(1) (3 internal EMA states + 4 doubles for slope comparison)
Allocations Zero in hot path

Mathematical Foundation

Parameters

Parameter Type Default Constraint Description
emaPeriod int 13 > 0 EMA period for trend inertia
macdFast int 12 > 0 MACD fast EMA period
macdSlow int 26 > macdFast MACD slow EMA period
macdSignal int 9 > 0 MACD signal smoothing period

Derivative Interpretation

The system combines two derivatives:

  • First derivative (EMA slope): Is the smoothed trend rising or falling?
  • Second derivative (histogram slope): Is the rate of MACD convergence/divergence accelerating or decelerating?

Both must confirm for a directional signal. This dual-confirmation suppresses false signals during transitions but introduces lag at inflection points.

Performance Profile

Operation Count (Streaming Mode)

Impulse System combines an EMA (or JMA) of close with a MACD histogram to produce a ternary directional signal.

Post-warmup steady state (per bar):

Operation Count Cost (cycles) Subtotal
FMA × 1 (EMA close update) 1 4 4
MACD pipeline (2 EMA + signal EMA) 3 4 12
SUB (MACD histogram = MACD signal) 1 1 1
CMP × 2 (EMA up/down, histogram up/down) 2 1 2
Ternary encoding (+1/0/1) 1 1 1
Total 8 ~20 cycles

Four independent EMA streams. ~20 cycles per bar at steady state.

Batch Mode (SIMD Analysis)

Operation Vectorizable? Notes
All EMA passes × 4 No Recursive IIR — sequential
Histogram subtraction Yes VSUBPD after EMA arrays complete
Signal comparison Yes VCMPPD

Same EMA constraint across all impulse components.

Quality Metrics

Metric Score Notes
Accuracy 9/10 Three independent EMA streams; precise FMA arithmetic
Timeliness 6/10 MACD slow-MA period dominates warmup lag
Smoothness 10/10 Ternary output eliminates all intermediate noise
Noise Rejection 8/10 Dual confirmation (trend + momentum) reduces false signals

Resources

  • Elder, A. (2002). Come Into My Trading Room. John Wiley and Sons.
  • Appel, G. (1979). "The Moving Average Convergence-Divergence Method."
  • Aspray, T. (1986). "MACD Histogram." Technical Analysis of Stocks and Commodities.