# T3

Also known as: Tillson T3, T3 moving average.
A Trend concept (Moving-average lineage) in the LuxAlgo Library, with 1 indicator implementation.

## What is T3?

T3 is a smoothing technique introduced by Tim Tillson in "Smoothing Techniques For More Accurate Signals" (Technical Analysis of Stocks & Commodities, January 1998). Its building block, which Tillson called generalized DEMA (GD), starts from an [EMA](https://www.luxalgo.com/library/concept/ema/) and adds back a fraction v of the difference between that EMA and the EMA of the EMA: GD(x) = (1 + v) × EMA(x) - v × EMA(EMA(x)). The fraction v is the volume factor, a number between 0 and 1 with no connection to traded volume. T3 applies GD three times in a row: T3 = GD(GD(GD(price))).

The volume factor sets the temperament. At v = 0 the construction collapses into a triple-cascaded EMA, maximally smooth and maximally laggy; at v = 1 every stage becomes a full DEMA, fast but overshoot-prone; Tillson's suggested 0.7 sits between, and most implementations keep it as the default. The result is one of the smoothest curves in the moving-average lineage relative to its lag, with mild overshoot at turns. Internally the three stages expand into a cascade of six EMAs whose last four are combined with fixed coefficients that depend only on v, which is how most platforms compute it.

The overshoot is the one way T3 behaves unlike a classic average, a byproduct of lag correction. Each GD stage adds back an estimate of what smoothing removed, which amounts to projecting the recent slope slightly forward; at a sharp V-turn that projection points the wrong way for a few bars, carrying the curve briefly beyond price. A [simple](https://www.luxalgo.com/library/concept/sma/) or plain exponential average can never do that, since it always stays within the range of its inputs. Tillson's stated goal, maximum smoothness for minimum lag, puts T3 in the same conversation as signal-processing designs like the [Ehlers SuperSmoother](https://www.luxalgo.com/library/concept/ehlers-supersmoother/), reached through EMA algebra rather than filter theory.

T3 is also a general-purpose smoother rather than strictly a price overlay: Tillson presented it as a substitute for the moving averages inside other indicators, and implementations are routinely applied to oscillators and volume as well as price. Nearly three decades on it remains a standard option on charting platforms, standalone, in multi-timeframe variants, and as the smoothing engine inside composite tools.

## How to calculate T3

T3 takes a length N, used by every EMA stage, and a volume factor v, commonly 0.7.

1. Define the building block: GD(x) = (1 + v) × EMA(x) - v × EMA(EMA(x)), with both EMAs of length N.
2. Apply it three times: T3 = GD(GD(GD(price))). Expanded, that requires six cascaded EMAs, with the last four combined using fixed coefficients determined by v.
3. Tune v for temperament: toward 0 for maximum smoothness with triple-EMA lag, toward 1 for DEMA-like speed with overshoot; 0.7 is the standard compromise.

## How it's calculated

A heavily smoothed moving average by Tim Tillson that offsets much of the lag its smoothing would otherwise add.

```
e1_t = EMA_n(P_t)
e2_t = EMA_n(e1_t)
e3_t = EMA_n(e2_t)
e4_t = EMA_n(e3_t)
e5_t = EMA_n(e4_t)
e6_t = EMA_n(e5_t)
c1 = -a^3
c2 = 3 × a^2 + 3 × a^3
c3 = -6 × a^2 - 3 × a - 3 × a^3
c4 = 1 + 3 × a + 3 × a^2 + a^3
T3_t = c1 × e6_t + c2 × e5_t + c3 × e4_t + c4 × e3_t

  T3_t: T3 moving average at bar t
  P_t: source price at bar t, usually the close
  EMA_n: exponential moving average with period n
  e1_t to e6_t: successively smoothed series, each an EMA_n of the previous one
  c1, c2, c3, c4: fixed weights computed from a (they sum to 1)
  a: volume factor controlling smoothness versus responsiveness (default 0.7)
  n: EMA period (commonly 5)
  t: bar index
```

Defined by Tim Tillson (1998) as the operator GD(x) = (1 + a) × EMA_n(x) - a × EMA_n(EMA_n(x)) applied three times; the lines above are its expansion.

Common defaults are n = 5 with a = 0.7; some platforms ship a = 0.618.

a = 0 reduces T3 to a plain triple EMA chain, while larger a tracks price more closely but can overshoot at turns.

## How traders use it

- As a [slope](https://www.luxalgo.com/library/concept/ma-slope-filter/)-read trend filter: T3 is smooth enough that its direction changes rarely, so rising versus falling serves as a bias that does not flip on every candle; the cost is a late turn at real reversals.
- In [crossover](https://www.luxalgo.com/library/concept/moving-average-crossovers/) logic against price or a faster average, where the smooth line produces fewer but later crosses than the equivalent EMA setup.
- As a smoothing stage for other series: running an oscillator or volume stream through T3 strips noise before signal rules, trading a beat of delay for far fewer flickers.
- As [dynamic support or resistance](https://www.luxalgo.com/library/concept/dynamic-s-r-via-ma/) in sustained trends, where the stable curve gives pullbacks a visible reference; as with any moving average, price is not obliged to respect it.
- In [ribbon](https://www.luxalgo.com/library/concept/ma-ribbon/) form: several T3 lengths plotted together fan out and compress unusually cleanly, so expansion (trending) versus braiding (ranging) can be read at a glance.

## T3 vs other moving averages

- **EMA** (https://www.luxalgo.com/library/concept/ema/): An EMA applies one stage of recency weighting and lags in proportion to its length. T3 cascades six EMAs with explicit lag compensation, so at comparable smoothness it turns sooner, at the cost of overshooting sharp reversals, which an EMA never does.
- **SMA** (https://www.luxalgo.com/library/concept/sma/): The SMA is the equal-weight baseline: transparent, predictable lag, no overshoot. At a similar length T3 is dramatically smoother and hugs turns more closely, but its curve is harder to reason about and can briefly run beyond price after a violent reversal.
- **Ehlers SuperSmoother** (https://www.luxalgo.com/library/concept/ehlers-supersmoother/): Both chase maximum smoothness for minimum lag from different traditions: the SuperSmoother is a two-pole filter from signal-processing theory, T3 an algebraic cascade of EMAs. Their characters differ mainly at fast reversals, so the choice usually comes down to testing.
- **Adaptive-lookback MA** (https://www.luxalgo.com/library/concept/adaptive-lookback-ma/): An adaptive-lookback average changes its effective length bar by bar as conditions shift, while T3's temperament is fixed once N and v are chosen. Adaptive designs chase regime changes automatically; T3 offers consistency, with the same event always producing the same response.

## FAQ

### What does the volume factor in T3 mean?

It is an unfortunate name: v has nothing to do with traded volume. It is a dial between 0 and 1 controlling how much lag correction each stage applies. At 0, T3 degrades to a triple-cascaded EMA (smoothest, laggiest); at 1, each stage is a full DEMA (fastest, overshooting). Tillson's published work uses 0.7, which most implementations keep as the default.

### Is T3 the same as TEMA?

No, though both build on cascaded EMAs. TEMA is a fixed combination of three EMAs designed purely to cancel lag. T3 applies a generalized-DEMA block three times, uses six EMAs internally, and exposes the volume factor so you choose the smoothness-speed balance. In practice T3 runs smoother and slightly slower than TEMA at the same length.

### What are the standard settings for T3?

The widely used volume factor is 0.7, following Tillson. Length has no universal standard; it plays the same role as any moving-average length, with longer values smoothing and lagging more. Because T3 already smooths heavily, equal lengths are not comparable across MA types, so settings should be judged on the chart and tested rather than copied.

### Why does T3 overshoot at turning points?

Because lag correction extrapolates. Each stage adds back the difference between a fast and a slow estimate, effectively projecting the current slope a little into the future. When a trend snaps, that projection points the wrong way for a few bars, so the curve pokes beyond price before bending back. Lower volume factors shrink the effect, and v = 0 removes it along with the lag correction.

### Can T3 smooth indicators other than price?

Yes. T3 is a series-agnostic filter, and Tillson suggested substituting it into moving-average-based indicators. Running RSI, volume, or another oscillator through a short T3 strips flicker before signal logic runs, with the usual caveat that each stage of smoothing defers the signal slightly.

## Implementations in the Library

- T3 (LuxAlgo): https://www.luxalgo.com/library/indicator/t3/

## Related concepts

- SMA: https://www.luxalgo.com/library/concept/sma/
- EMA: https://www.luxalgo.com/library/concept/ema/
- Adaptive-lookback MA: https://www.luxalgo.com/library/concept/adaptive-lookback-ma/
- MA Envelope: https://www.luxalgo.com/library/concept/ma-envelope/
- SWMA: https://www.luxalgo.com/library/concept/swma/
- RMA: https://www.luxalgo.com/library/concept/rma/
- HMA: https://www.luxalgo.com/library/concept/hma/
- KAMA: https://www.luxalgo.com/library/concept/kama/
- JMA: https://www.luxalgo.com/library/concept/jma/
- ZLEMA: https://www.luxalgo.com/library/concept/zlema/

---

Source: https://www.luxalgo.com/library/concept/t3/ (LuxAlgo Library, the encyclopedia of trading & technical analysis). Free to use with attribution: https://www.luxalgo.com/library/license/