# T3

## Summary

Tillson's T3: a low-lag moving average built from six chained EMAs, combined via volume-factor-weighted coefficients. Not the same as EMA3, despite both being called "triple EMA".

## Formula

k = 2/(period+1); e1=EMA(x), e2=EMA(e1), ... e6=EMA(e5) (six chained EMAs).
v = vFactor: c1 = -v^3; c2 = 3(v^2 - c1); c3 = -6v^2 - 3(v - c1); c4 = 1 + 3v - c1 + 3v^2.
T3 = c1*e6 + c2*e5 + c3*e4 + c4*e3

## Notes

- A period of 1 performs no smoothing: the output is a copy of the input. Allowed since 0.6.5 (issues #48/#59).

## Inputs

- `inReal` — Source series to smooth

## Outputs

- `outReal` — T3 smoothed line

## Parameters

- `optInTimePeriod` — EMA period for each of the six stages
- `optInVFactor` — Volume factor weighting the coefficients (0 = plain triple EMA, higher = more DEMA-like sharpening)

## Implementation

TA-Lib Definition: [`t3.c`](https://github.com/TA-Lib/ta-lib/blob/main/ta_codegen/input/t3/t3.c) · [`t3.yaml`](https://github.com/TA-Lib/ta-lib/blob/main/ta_codegen/input/t3/t3.yaml)

| Native | File |
|--------|------|
| C | [`ta_T3.c`](https://github.com/TA-Lib/ta-lib/blob/main/src/ta_func/ta_T3.c) |
| Rust | [`t3.rs`](https://github.com/TA-Lib/ta-lib/blob/main/ta_codegen/output/rust/src/ta_func/t3.rs) |
| Java | [`Core.java`](https://github.com/TA-Lib/ta-lib/blob/main/java/src/com/tictactec/ta/lib/Core.java) |

TA-Lib is also available for Python, R and more using a [wrapper](https://ta-lib.org/wrappers/).

## Aliases

Tillson T3, Triple Exponential Moving Average

## See Also

EMA · DEMA · TEMA · MA
