EnhancedSignalNoiseRatio
Background
Like SignalNoiseRatio, this indicator tells you how strong the market's cycle is relative to its noise, in decibels — a confidence gauge for cycle-based trading. The "enhanced" version is sharper: instead of relying only on the homodyne amplitude-versus-range estimate, it can read a real spectral signal-to-noise ratio straight from the spectrum-building engines.
When you select one of the spectral engines (Autocorrelation/Mesa, Burg, Kalman or Multitaper), this indicator compares the genuine signal power sitting in the dominant cycle's band against the spectral noise floor measured outside it. That makes it a more honest and more discriminating cycle-versus-noise reading than the classic proxy, especially on real market data. See Cycle Engines for how each engine builds its spectrum.
Included formula
The toolbox ships a ready-made Enhanced Signal Noise Ratio indicator, so you can use it without writing any code. In AmiBroker open the Charts window, expand the WiseTraderToolbox group and drag Enhanced Signal Noise Ratio onto a chart.
It plots the spectral signal-to-noise ratio, in decibels, in its own pane below price. The line colour is set from the indicator's parameters, and the engine that builds the spectrum can be chosen there too — see Cycle Engines.
The exported function
If you would rather build your own formula, the toolbox exports the calculation as a single AFL function you can call directly — it is the engine inside that indicator.
EnhancedSignalNoiseRatio(Engine = 0)
| Parameter | Description |
|---|---|
| Engine | Optional. Which estimator supplies the SNR. 0 Homodyne
(default) uses Ehlers' original amplitude-versus-range proxy.
2–5 (Autocorrelation/Mesa, Burg, Kalman,
Multitaper) each return a true spectral SNR built from real signal power and a
spectral noise floor. Defaults to 0. |
Engine 1 (Ehlers alpha Dominant Cycle) has no spectrum and therefore no
signal-to-noise definition — selecting it returns an empty result. Any engine outside
0–5 also returns empty. The spectral engines (2–5) need a long warm-up
(roughly 50–100 bars) before producing values.
The indicator reads the current symbol's High and Low directly and returns a per-bar array of the signal-to-noise ratio in decibels.
Usage
// Default Homodyne proxy SNR
snr = EnhancedSignalNoiseRatio();
Plot( snr, "Enhanced SNR (dB)", colorBlue );
For a true spectral SNR, pick one of the spectral engines:
snrBurg = EnhancedSignalNoiseRatio( 3 ); // real spectral SNR from the Burg engine
Plot( snrBurg, "Spectral SNR (Burg)", colorRed );
cycleIsClean = snrBurg > 6; // only trust cycle signals when SNR is high
Use the spectral engines when you want the most reliable cycle-versus-noise reading. Burg (3) tends to be sharpest, while Multitaper (5) gives the steadiest floor.