You Do Not Need More Indicators. You Need to Learn the Hilbert Transform.

The analytic signal generalises every oscillator, every envelope, and every phase-based trigger. Inventing new indicators is a category error.

Student One Research · · 9 min read

hilbert transformanalytic signalDSPindicatorsinstantaneous frequency

Every "new" indicator published on TradingView, every proprietary oscillator pitched by an algo vendor, every parameter twist on RSI or MACD is reinventing a problem signal processing solved in 1942. The Hilbert transform produces the analytic signal — a complex-valued representation of any real time series from which instantaneous amplitude, instantaneous phase, and instantaneous frequency can be read directly. Every oscillator and envelope you have ever used is a degraded special case of this construction.

The Analytic Signal: Definition

Given a real-valued price series x(t), the Hilbert transform H{x(t)} is the convolution of x(t) with 1/(πt). In the frequency domain it is a 90° phase shift applied to every positive-frequency component and a −90° shift to every negative-frequency component, with magnitudes unchanged.

The analytic signal is then:

z(t) = x(t) + i · H{x(t)}

From this single complex sequence you can read, at every bar:

  • Instantaneous amplitude A(t) = |z(t)| = √(x² + H{x}²) — the envelope of the signal, equivalent to an idealised Bollinger band centre.
  • Instantaneous phase φ(t) = atan2(H{x(t)}, x(t)) — where the price sits in its current cycle, in radians.
  • Instantaneous frequency f(t) = (1/2π) · dφ/dt — the dominant cycle period at this exact bar, no fixed lookback.

Three derived quantities. From one transform. With no free parameters.

What Familiar Indicators Actually Compute

Once you see prices through the analytic signal lens, the existing zoo collapses:

IndicatorWhat it is, in DSP terms
RSIA normalised, lookback-bound proxy for the sign and magnitude of dx/dt — i.e. an estimate of phase quadrant under an assumed fixed cycle period.
MACDThe difference of two low-pass FIRs (EMAs). The signal line is a third low-pass. The histogram is a crude band-pass with hard-coded centre frequency.
Stochastic OscillatorMin-max normalised position within a rolling window — a rectangular-window estimate of instantaneous amplitude with phase information discarded.
Bollinger BandsMean ± k·σ over a window — a rolling envelope estimator. The Hilbert envelope |z(t)| is the same object without the rectangular-window leakage.
Ehlers' Sinewave / MESA / Instantaneous TrendlineHilbert transform applied explicitly. Ehlers wrote the textbook on this in Rocket Science for Traders (2001) and Cybernetic Analysis (2004). Everything else is rediscovering pieces of it.

None of these are wrong. They are projections of the analytic signal onto axes chosen for human readability in the 1970s, before continuous DSP was tractable on a candlestick chart. Each projection discards information the analytic signal preserves.

Why New Indicators Do Not Add Information

Information content in a real-valued signal is fully captured by z(t) = x + iH{x}. Any derived indicator is a measurable function of z(t) — therefore by the data processing inequality, no indicator computed from x(t) can contain more information about future x(t+k) than the analytic signal already contains. New indicators can only:

  1. Re-project the same information onto a more readable axis (legitimate, but not new).
  2. Discard information via lossy compression like fixed-window smoothing (most published indicators).
  3. Hallucinate information by combining the signal with unrelated inputs and claiming the result is "the signal" (overfitting dressed as innovation).

This is not an aesthetic preference. It is Shannon. The marginal value of "indicator number 4,001" is zero unless it surfaces a projection of z(t) that no existing indicator surfaces — which has not happened in any peer-reviewed DSP publication for decades.

What "Apply It Properly" Means

The Hilbert transform is versatile because the three quantities it produces — amplitude, phase, frequency — span the descriptive space of any narrowband signal. Applying it properly means:

1. Pre-filter to enforce narrowband

The analytic signal's phase and frequency are only physically meaningful when the input is narrowband. Wide-band price series produce phase that wraps chaotically. Apply a band-pass filter — Butterworth, Chebyshev, or Ehlers' SuperSmoother — tuned to the cycle range you are studying (e.g. 8–48 bars for swing structure). The Hilbert output of the filtered series is then interpretable.

2. Use instantaneous frequency to set adaptive lookbacks

The biggest source of overfitting in indicator design is the fixed lookback. RSI(14) assumes a 14-bar cycle is canonical; it is not. The Hilbert f(t) tells you the dominant period at this bar. Every downstream indicator parameter — moving average length, oscillator threshold, regime boundary — can be expressed as a multiple of 1/f(t) instead of a constant.

3. Use instantaneous phase for trigger placement

"Cross zero," "cross the signal line," "exit oversold" are all phase events at fixed phase angles. The analytic signal lets you place triggers at exact phase angles (e.g. φ = π/2 for cycle peak) instead of approximating them through indicator crossovers that lag by half a cycle.

4. Use envelope A(t) for volatility-normalised position sizing inputs

The envelope is the cleanest available estimate of local amplitude. Replacing ATR or standard deviation with A(t) from a band-pass-filtered series removes the rectangular-window bias of rolling statistics.

The Practical Workflow

  1. Decide the cycle band you care about (intraday: 4–24 bars; swing: 16–96 bars; positional: 80–400 bars).
  2. Apply a zero-phase band-pass filter to the log-price series for that band.
  3. Compute the Hilbert transform of the filtered series.
  4. Read A(t), φ(t), f(t) at every bar.
  5. Express every downstream rule (entry, exit, sizing, regime) as a function of those three quantities — no fixed lookbacks anywhere.
  6. Enumerate across the cycle band (not across indicator parameters), and let the survival gates pick the bands that carry edge on this asset.

This is a complete signal-discovery pipeline. There is no room in it for "a new indicator." There is only the analytic signal and the choice of band.

Why This Is Not Widely Done

Two reasons. First, retail charting platforms expose indicators as configurable boxes, not as DSP primitives — there is no "compute Hilbert transform" button in TradingView Pine Script v5, and implementing it from scratch requires understanding zero-phase filtering, edge effects, and complex arithmetic. Second, the academic DSP literature on price series (Ehlers, Hilbert-Huang Transform applications in finance, empirical mode decomposition) is treated as niche by retail communities because it produces fewer "tradeable signals per chart" — exactly because it removes the redundant projections that fill conventional charts with indicator noise.

Summary

The analytic signal contains all the information any indicator computed from price can contain. Three scalars per bar — amplitude, phase, frequency — span the descriptive space. Every oscillator and envelope you know is a lossy projection of these three. Inventing a 4,001st indicator does not add information. Learning to apply the Hilbert transform with proper band-pass pre-filtering does.

Student One's enumeration engine operates natively in this space: parameter sweeps run across cycle bands, not arbitrary indicator constants, and surviving configurations are reported as (band, phase-trigger, envelope-threshold) triples derived from z(t).