mirror of
https://github.com/mihakralj/QuanTAlib.git
synced 2026-08-15 09:08:04 +00:00
doc headers
This commit is contained in:
@@ -1,4 +1,21 @@
|
||||
# BBI: Bulls Bears Index
|
||||
# BBI: Bulls Bears Index
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `p1` (default DefaultP1), `p2` (default DefaultP2), `p3` (default DefaultP3), `p4` (default DefaultP4) |
|
||||
| **Outputs** | Single series (Bbi) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `Math.Max(Math.Max(p1, p2), Math.Max(p3, p4))` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- BBI (Bulls Bears Index) computes the arithmetic mean of four Simple Moving Averages with geometrically spaced periods (3, 6, 12, 24 by default).
|
||||
- Parameterized by `p1` (default defaultp1), `p2` (default defaultp2), `p3` (default defaultp3), `p4` (default defaultp4).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `Math.Max(Math.Max(p1, p2), Math.Max(p3, p4))` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "Average four moving averages of doubling periods and you get a single line that votes on whether bulls or bears own the tape. It is a committee of trends, each watching a different time horizon, forced to agree on one number."
|
||||
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# BRAR: Bull-Bear Power Ratio
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | `period` (default 26) |
|
||||
| **Outputs** | Single series (Brar) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- BRAR is a dual-output sentiment oscillator from the Japanese technical analysis tradition that decomposes market pressure into two independent rati...
|
||||
- Parameterized by `period` (default 26).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The open is the amateur's price. The close is the professional's price. The distance between them is where the money hides."
|
||||
|
||||
BRAR is a dual-output sentiment oscillator from the Japanese technical analysis tradition that decomposes market pressure into two independent ratios: BR (Buying Ratio), which measures upside thrust relative to the previous close, and AR (Atmosphere Ratio), which measures intraday range asymmetry relative to the open. Both outputs oscillate around an equilibrium of 100, where values above 100 signal dominance of the measured pressure and values below 100 signal weakness. The default lookback of 26 bars (one Japanese trading month) produces stable readings with 4 additions per bar in streaming mode.
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# COPPOCK: Coppock Curve
|
||||
# COPPOCK: Coppock Curve
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `longRoc` (default DefaultLongRoc), `shortRoc` (default DefaultShortRoc), `wmaPeriod` (default DefaultWmaPeriod) |
|
||||
| **Outputs** | Single series (Coppock) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | 1 bar |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Coppock Curve is a long-term momentum oscillator that applies a Weighted Moving Average to the sum of two Rate of Change calculations at differ...
|
||||
- Parameterized by `longroc` (default defaultlongroc), `shortroc` (default defaultshortroc), `wmaperiod` (default defaultwmaperiod).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Coppock Curve is a long-term momentum oscillator that applies a Weighted Moving Average to the sum of two Rate of Change calculations at different lookback periods. Originally designed for monthly charts to identify major market bottoms, it produces a single oscillating line where zero-line crossovers from below signal long-term buying opportunities. The dual-ROC architecture captures both intermediate and longer-term momentum dynamics in a single smoothed output.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# CRSI: Connors RSI
|
||||
# CRSI: Connors RSI
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `rsiPeriod` (default 3), `streakPeriod` (default 2), `rankPeriod` (default 100) |
|
||||
| **Outputs** | Single series (Crsi) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | 1 bar |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- Connors RSI is a composite momentum oscillator that combines three independent measurements of price behavior into a single bounded (0-100) output:...
|
||||
- Parameterized by `rsiperiod` (default 3), `streakperiod` (default 2), `rankperiod` (default 100).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Connors RSI is a composite momentum oscillator that combines three independent measurements of price behavior into a single bounded (0-100) output: a short-term RSI of price, an RSI of the consecutive up/down streak length, and a percentile rank of the current rate of change within its recent history. The equal-weighted average of these three components produces a mean-reverting oscillator where extreme readings (above 90 or below 10) identify statistically overbought or oversold conditions with higher reliability than single-component RSI alone.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# CTI: Correlation Trend Indicator
|
||||
# CTI: Correlation Trend Indicator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `period` (default 20) |
|
||||
| **Outputs** | Single series (Cti) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Correlation Trend Indicator computes the Pearson correlation coefficient between the price series and a linear time index over a rolling window...
|
||||
- Parameterized by `period` (default 20).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Correlation Trend Indicator computes the Pearson correlation coefficient between the price series and a linear time index over a rolling window, producing a bounded oscillator in the range $[-1, +1]$. Values near $+1$ indicate a strong linear uptrend, values near $-1$ indicate a strong linear downtrend, and values near zero indicate no linear trend relationship. The implementation achieves O(1) complexity per bar through incremental running sums that avoid recomputing the full correlation on each update.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# DECO: Ehlers Decycler Oscillator
|
||||
# DECO: Ehlers Decycler Oscillator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `shortPeriod` (default 30), `longPeriod` (default 60) |
|
||||
| **Outputs** | Single series (Deco) |
|
||||
| **Output range** | $0$ to $1$ |
|
||||
| **Warmup** | 1 bar |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Decycler Oscillator (DECO) is a DSP-based oscillator developed by John F.
|
||||
- Parameterized by `shortperiod` (default 30), `longperiod` (default 60).
|
||||
- Output range: $0$ to $1$.
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
## Overview
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# DEM: DeMarker Oscillator
|
||||
# DEM: DeMarker Oscillator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | `period` (default 14) |
|
||||
| **Outputs** | Single series (Dem) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period + 1` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- DEM (DeMarker Oscillator) is a bounded [0, 1] momentum oscillator that measures sequential demand pressure by comparing each bar's high and low aga...
|
||||
- Parameterized by `period` (default 14).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period + 1` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The trend is your friend — right up until DeMark starts counting against it."
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# DOSC: Derivative Oscillator
|
||||
# DOSC: Derivative Oscillator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `rsiPeriod` (default 14), `ema1Period` (default 5), `ema2Period` (default 3), `sigPeriod` (default 9) |
|
||||
| **Outputs** | Single series (Dosc) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `rsiPeriod + sigPeriod` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Derivative Oscillator applies a four-stage signal processing pipeline to extract momentum inflection points: RSI via Wilder's smoothing, double...
|
||||
- Parameterized by `rsiperiod` (default 14), `ema1period` (default 5), `ema2period` (default 3), `sigperiod` (default 9).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `rsiPeriod + sigPeriod` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Derivative Oscillator applies a four-stage signal processing pipeline to extract momentum inflection points: RSI via Wilder's smoothing, double EMA smoothing of the RSI, an SMA signal line of the double-smoothed result, and finally the difference between the smoothed RSI and its signal. The histogram output crosses zero at momentum turning points, offering earlier signals than raw RSI by isolating the rate of change of the smoothed momentum rather than the momentum level itself.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# DYMOI: Dynamic Momentum Index
|
||||
# DYMOI: Dynamic Momentum Index
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `basePeriod` (default 14), `shortPeriod` (default 5), `longPeriod` (default 10), `minPeriod` (default 3), `maxPeriod` (default 30) |
|
||||
| **Outputs** | Single series (Dymoi) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | 1 bar |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- DYMOI is a volatility-adaptive RSI: when recent price swings are large relative to longer-term swings, the RSI period shortens and the indicator be...
|
||||
- Parameterized by `baseperiod` (default 14), `shortperiod` (default 5), `longperiod` (default 10), `minperiod` (default 3), `maxperiod` (default 30).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The market is not a fixed-frequency oscillator. Why would you analyze it with one?" — Tushar Chande & Stanley Kroll, *The New Technical Trader*, 1994
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
| **Outputs** | Single series (Efficiency Ratio) |
|
||||
| **Output range** | $0$ to $1$ |
|
||||
| **Warmup** | `period + 1` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- ER measures the signal-to-noise ratio of price movement: net directional change divided by total path length.
|
||||
@@ -17,6 +18,7 @@
|
||||
- Not available and therefore not validated against any other TA library
|
||||
|
||||
> "The best trades move in a straight line. The worst ones wander. ER tells you which kind you're looking at." -- Perry Kaufman
|
||||
|
||||
## Historical Context
|
||||
|
||||
Perry Kaufman introduced the Efficiency Ratio in *Trading Systems and Methods* (1995) as part of his Adaptive Moving Average (KAMA) framework. The idea was straightforward: an ideal trend indicator should react quickly in trending markets and slowly in choppy ones. ER provides the adaptive signal that tells KAMA how to behave.
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# GATOR: Williams Gator Oscillator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `jawPeriod` (default 13), `jawShift` (default 8), `teethPeriod` (default 8), `teethShift` (default 5), `lipsPeriod` (default 5), `lipsShift` (default 3) |
|
||||
| **Outputs** | Single series (Gator) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `Math.Max(jawPeriod + jawShift, Math.Max(teethPeriod + teethShift, lipsPeriod + lipsShift))` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Williams Gator Oscillator is a dual-histogram visualization of the Alligator indicator's convergence and divergence.
|
||||
- Parameterized by `jawperiod` (default 13), `jawshift` (default 8), `teethperiod` (default 8), `teethshift` (default 5), `lipsperiod` (default 5), `lipsshift` (default 3).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `Math.Max(jawPeriod + jawShift, Math.Max(teethPeriod + teethShift, lipsPeriod + lipsShift))` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The alligator tells you the trend exists. The gator tells you whether the alligator is hungry or full."
|
||||
|
||||
The Williams Gator Oscillator is a dual-histogram visualization of the Alligator indicator's convergence and divergence. It strips the Alligator's three SMMA lines down to two absolute differences: upper (Jaw minus Teeth) and lower (negative of Teeth minus Lips). The result is a zero-centered oscillator where expanding bars signal trend acceleration and contracting bars signal trend exhaustion. Because it operates on pre-computed SMMA values, the Gator adds zero computational overhead beyond two subtractions, two absolute values, and one sign flip per bar.
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# IMI: Intraday Momentum Index
|
||||
# IMI: Intraday Momentum Index
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | `period` (default 14) |
|
||||
| **Outputs** | Single series (IMI) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Intraday Momentum Index measures buying and selling pressure using the open-to-close relationship within each bar, rather than the close-to-clo...
|
||||
- Parameterized by `period` (default 14).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Intraday Momentum Index measures buying and selling pressure using the open-to-close relationship within each bar, rather than the close-to-close changes used by RSI. Each bar is classified as a gain (close > open) or loss (close < open), with the magnitude being the absolute open-close difference. Rolling sums of gains and losses over the lookback period produce an RSI-like ratio scaled to 0-100. This bridges Japanese candlestick analysis with Western oscillator theory: bullish candles contribute to the gain sum, bearish candles contribute to the loss sum. Unlike RSI, IMI does not require a previous close and uses simple rolling sums rather than exponential smoothing, making it more responsive but noisier. Output is bounded 0-100 with conventional overbought (>70) and oversold (<30) zones.
|
||||
|
||||
|
||||
@@ -1,4 +1,25 @@
|
||||
# KST: Know Sure Thing Oscillator
|
||||
# KST: Know Sure Thing Oscillator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `r1` (default DefaultR1), `r2` (default DefaultR2), `r3` (default DefaultR3), `r4` (default DefaultR4), `s1` (default DefaultS1), `s2` (default DefaultS2), `s3` (default DefaultS3), `s4` (default DefaultS4), `sigPeriod` (default DefaultSigPeriod) |
|
||||
| **Outputs** | Multiple series (KstValue, Signal) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `Math.Max(Math.Max(r1, r2), Math.Max(r3, r4))
|
||||
+ Math.Max(Math.Max(s1, s2), Math.Max(s3, s4))
|
||||
+ sigPeriod - 2` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Know Sure Thing is a multi-timeframe momentum oscillator that computes four Rate of Change values at progressively longer lookback periods, smo...
|
||||
- Parameterized by `r1` (default defaultr1), `r2` (default defaultr2), `r3` (default defaultr3), `r4` (default defaultr4), `s1` (default defaults1), `s2` (default defaults2), `s3` (default defaults3), `s4` (default defaults4), `sigperiod` (default defaultsigperiod).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `Math.Max(Math.Max(r1, r2), Math.Max(r3, r4))
|
||||
+ Math.Max(Math.Max(s1, s2), Math.Max(s3, s4))
|
||||
+ sigPeriod - 2` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Know Sure Thing is a multi-timeframe momentum oscillator that computes four Rate of Change values at progressively longer lookback periods, smooths each with an independent SMA, then combines them using linearly increasing weights (1, 2, 3, 4) to produce a single composite momentum line. A signal line (SMA of the KST) provides crossover triggers. The weighted summation ensures longer-term momentum dominates the output while shorter-term components contribute responsiveness, creating a momentum indicator that reflects multiple cycle lengths simultaneously.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# LRSI: Laguerre RSI
|
||||
# LRSI: Laguerre RSI
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `gamma` (default 0.5) |
|
||||
| **Outputs** | Single series (Lrsi) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `4` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- Laguerre RSI is an adaptive oscillator invented by John Ehlers that replaces standard RSI's Wilder-smoothed gain/loss averages with a 4-stage casca...
|
||||
- Parameterized by `gamma` (default 0.5).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `4` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The Laguerre transform lets you trade off between lag and smoothness using a single parameter." — John Ehlers
|
||||
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# MARKETFI: Market Facilitation Index
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | None |
|
||||
| **Outputs** | Single series (MARKETFI) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `> 1` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Market Facilitation Index answers a single question with arithmetic directness: how much price moved per unit of volume traded?
|
||||
- No configurable parameters; computation is stateless per bar.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `> 1` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "Price moves in an empty room; volume tells you how many people showed up."
|
||||
|
||||
The Market Facilitation Index answers a single question with arithmetic directness: how much price moved per unit of volume traded? One division. No lookback period. No smoothing. No parameter to debate. What you get is raw market efficiency — the price range a market delivers for each unit of liquidity consumed.
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# MSTOCH: Ehlers MESA Stochastic
|
||||
# MSTOCH: Ehlers MESA Stochastic
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `stochLength` (default 20), `hpLength` (default 48), `ssLength` (default 10) |
|
||||
| **Outputs** | Single series (Mstoch) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | 1 bar |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The MESA Stochastic applies John Ehlers' Roofing Filter as a preprocessing stage before computing a stochastic oscillator, then smooths the stochas...
|
||||
- Parameterized by `stochlength` (default 20), `hplength` (default 48), `sslength` (default 10).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The MESA Stochastic applies John Ehlers' Roofing Filter as a preprocessing stage before computing a stochastic oscillator, then smooths the stochastic output with a Super Smoother. The Roofing Filter removes both low-frequency trend components (via highpass) and high-frequency noise (via Super Smoother), isolating the dominant cycle. The stochastic calculation on this filtered data produces a clean 0-to-1 oscillator that responds to cycle turning points rather than trend or noise, with substantially reduced whipsaw compared to conventional stochastic indicators.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# QQE: Quantitative Qualitative Estimation
|
||||
# QQE: Quantitative Qualitative Estimation
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `rsiPeriod` (default DefaultRsiPeriod), `smoothFactor` (default DefaultSmoothFactor), `qqeFactor` (default DefaultQqeFactor) |
|
||||
| **Outputs** | Single series (Qqe) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `rsiPeriod + smoothFactor + darPeriod * 2` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- Quantitative Qualitative Estimation applies a multi-stage smoothing pipeline to RSI and then constructs dynamic volatility-based trailing bands aro...
|
||||
- Parameterized by `rsiperiod` (default defaultrsiperiod), `smoothfactor` (default defaultsmoothfactor), `qqefactor` (default defaultqqefactor).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `rsiPeriod + smoothFactor + darPeriod * 2` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Quantitative Qualitative Estimation applies a multi-stage smoothing pipeline to RSI and then constructs dynamic volatility-based trailing bands around the smoothed result. The output is a dual-line system: the QQE line (smoothed RSI) and a trailing level that follows price directionally, similar to Parabolic SAR logic. Crossovers between the QQE line and its trailing level signal momentum shifts, while crossovers of the QQE line above and below 50 indicate trend direction. The trailing level adapts to volatility through a double-EMA of RSI absolute changes, making band width contract in quiet markets and expand during volatile conditions.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# REFLEX: Ehlers Reflex Indicator
|
||||
# REFLEX: Ehlers Reflex Indicator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `period` |
|
||||
| **Outputs** | Single series (Reflex) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- REFLEX is a zero-lag oscillator that measures the reversal tendency of price by comparing a Super-Smoother-filtered price against a linear extrapol...
|
||||
- Parameterized by `period`.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "John Ehlers measured how much a filtered price deviates from its own linear extrapolation. The result is a zero-lag oscillator that catches reversals before they happen, because the deviation is largest precisely when the trend is bending."
|
||||
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# REVERSEEMA: Ehlers Reverse EMA
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `period` |
|
||||
| **Outputs** | Single series (ReverseEma) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Reverse EMA applies an 8-stage cascaded Z-transform inversion to a compensated EMA, progressively extracting and subtracting the accumulated la...
|
||||
- Parameterized by `period`.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The best way to remove lag is to understand where it comes from." — John F. Ehlers
|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# RVGI: Relative Vigor Index
|
||||
# RVGI: Relative Vigor Index
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | `period` (default 10) |
|
||||
| **Outputs** | Single series (Rvgi) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Relative Vigor Index measures the conviction of a price move by comparing closing strength (close minus open) to the total intrabar range (high...
|
||||
- Parameterized by `period` (default 10).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Relative Vigor Index measures the conviction of a price move by comparing closing strength (close minus open) to the total intrabar range (high minus low), smoothed through a symmetrically weighted moving average and then averaged over a lookback period. The premise is that in bullish markets, closes tend to occur near highs and opens near lows, producing positive RVGI values, while bearish markets show the opposite pattern. A 4-bar SWMA signal line provides crossover triggers. The indicator oscillates around zero with no fixed bounds.
|
||||
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# SQUEEZE: Squeeze Momentum
|
||||
# SQUEEZE: Squeeze Momentum
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | `period` (default 20), `bbMult` (default 2.0), `kcMult` (default 1.5) |
|
||||
| **Outputs** | Single series (Squeeze) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- Squeeze Momentum combines Bollinger Band and Keltner Channel width analysis to detect low-volatility compression ("squeeze") states, while simultan...
|
||||
- Parameterized by `period` (default 20), `bbmult` (default 2.0), `kcmult` (default 1.5).
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
Squeeze Momentum combines Bollinger Band and Keltner Channel width analysis to detect low-volatility compression ("squeeze") states, while simultaneously measuring directional momentum via linear regression of a detrended price series. The dual output consists of a momentum histogram and a binary squeeze state indicator. When Bollinger Bands contract inside the Keltner Channel, the market is in a squeeze (coiling volatility); when the squeeze releases, the momentum histogram direction signals the likely breakout direction. The implementation combines five distinct computational stages, each using O(1) streaming techniques.
|
||||
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# STC: Schaff Trend Cycle
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `kPeriod` (default 10), `dPeriod` (default 3), `fastLength` (default 23), `slowLength` (default 50), `smoothing` (default StcSmoothing.Ema) |
|
||||
| **Outputs** | Single series (Stc) |
|
||||
| **Output range** | $0$ to $100$ |
|
||||
| **Warmup** | 1 bar |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Schaff Trend Cycle is a cyclometric oscillator that applies double-Stochastic normalization to MACD, extracting the cyclical phase hidden withi...
|
||||
- Parameterized by `kperiod` (default 10), `dperiod` (default 3), `fastlength` (default 23), `slowlength` (default 50), `smoothing` (default stcsmoothing.ema).
|
||||
- Output range: $0$ to $100$.
|
||||
- Requires 1 bar of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
The Schaff Trend Cycle is a cyclometric oscillator that applies double-Stochastic normalization to MACD, extracting the cyclical phase hidden within the trend itself. The recursive normalization produces a bounded 0–100 output that reaches extremes earlier than raw MACD while suppressing Stochastic jitter. Developed for currency markets, STC's tendency to flatline at 0 or 100 during strong trends signals continuation rather than reversal — a feature that distinguishes it from conventional momentum oscillators. Output converges toward a square wave in steady-state trending conditions.
|
||||
|
||||
## Historical Context
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
# TD_SEQ: TD Sequential
|
||||
# TD_SEQ: TD Sequential
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | OHLCV bar (TBar) |
|
||||
| **Parameters** | None |
|
||||
| **Outputs** | Single series (TdSeq) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `comparePeriod + 1` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- TD Sequential is Tom DeMark's exhaustion counting system that identifies potential trend reversals through two phases: a 9-count Setup phase that d...
|
||||
- No configurable parameters; computation is stateless per bar.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `comparePeriod + 1` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
TD Sequential is Tom DeMark's exhaustion counting system that identifies potential trend reversals through two phases: a 9-count Setup phase that detects overextended trends, and a 13-count Countdown phase that pinpoints probable reversal timing. Unlike oscillators that measure momentum magnitude, TD Sequential counts consecutive qualifying bars, producing integer outputs (Setup: $\pm 1$ to $\pm 9$; Countdown: $\pm 1$ to $\pm 13$) that represent the progression toward exhaustion. A completed 9-count Setup followed by a completed 13-count Countdown signals high-probability trend exhaustion. All state is maintained in O(1) scalar variables with no buffers required.
|
||||
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# TRENDFLEX: Ehlers Trendflex Indicator
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | -------------------------------- |
|
||||
| **Category** | Oscillator |
|
||||
| **Inputs** | Source (close) |
|
||||
| **Parameters** | `period` |
|
||||
| **Outputs** | Single series (Trendflex) |
|
||||
| **Output range** | Varies (see docs) |
|
||||
| **Warmup** | `period` bars |
|
||||
|
||||
### TL;DR
|
||||
|
||||
- The Trendflex indicator combines a 2-pole Butterworth low-pass pre-filter (Super Smoother) with an O(1) cumulative slope measurement and exponentia...
|
||||
- Parameterized by `period`.
|
||||
- Output range: Varies (see docs).
|
||||
- Requires `period` bars of warmup before first valid output (IsHot = true).
|
||||
- Validated against TA-Lib, Skender, and Tulip reference implementations where available.
|
||||
|
||||
> "The trend is your friend until it bends." — Ed Seykota, but Ehlers actually measures the bending.
|
||||
|
||||
## Introduction
|
||||
|
||||
Reference in New Issue
Block a user