API reference¶
Every indicator is a plain pl.Expr. Call it as a free function
(momentum.rsi("close", 14)) or as an expression method
(pl.col("close").ta.rsi(14)) — same code, pick whichever reads
better.
The reference is split by what each family measures, so you can jump to the question you're actually asking:
| If you want to know… | Look in |
|---|---|
| Is price accelerating or losing steam? (overbought/oversold, divergence) | Momentum |
| Which way is the trend, and how strong? | Trend |
| How much is price moving — and is that expanding or contracting? | Volatility |
| Is volume confirming the move? Where is money flowing? | Volume |
| Did a doji / hammer / engulfing pattern just print? | Candlestick patterns |
| Simple period / cumulative returns, OHLC price transforms | Returns & price transforms |
| Risk sizing, drawdown, tail risk, factor exposure, regime detection | Quant |
| Liquidity, order-flow toxicity, spread, mean-reversion speed | Microstructure |
| Which of my 200 features are actually different from each other? | Feature selection |
| Time-of-day / day-of-week / session effects | Calendar |
Calling indicators as pl.col(...).ta.<name>() |
Expression namespace |
| Building your own indicator, cleaning dirty data | Utilities |
Conventions that hold everywhere¶
- Inputs are a column name (
str) or an existingpl.Expr— uniformly, across every indicator. - Warm-up is null, never faked. An indicator needing
kbars of history returnsnullfor its firstk-1rows, so a warm-up value never leaks into a backtest. - Per-symbol is free. Append
.over("symbol")on a multi-asset frame and every indicator computes independently per group, with no state crossing symbol boundaries. fillna: bool = Falseon every numeric indicator forward-fills gaps whenTrue. The candlestick patterns are the exception: they return a discrete0 / ±100classification, where forward-filling a detection onto later bars would invent patterns that never occurred.- Streaming-safe. Every indicator produces identical output under
.collect(engine="streaming").