Search Shortcut cmd + k | ctrl + k
talib

Technical Analysis Library (TA-Lib) functions for DuckDB – 100+ indicators for financial market analysis

Maintainer(s): neuesql, wuqunfei

Installing and Loading

INSTALL talib FROM community;
LOAD talib;

Example

-- Scalar form: operate on a pre-collected list
SELECT t_sma([1.0, 2.0, 3.0, 4.0, 5.0], 3);

-- Aggregate/window form: use OVER() for row-by-row SMA
SELECT date, close, ta_sma(close, 14) OVER (ORDER BY date ROWS BETWEEN 13 PRECEDING AND CURRENT ROW) AS sma_14 FROM ohlc;

-- Multi-output indicators return structs (MACD, Bollinger Bands)
SELECT t_macd(list(close ORDER BY date), 12, 26, 9) FROM ohlc;
SELECT t_bbands(list(close ORDER BY date), 20, 2.0, 2.0, 0) FROM ohlc;

-- Candlestick pattern recognition
SELECT t_cdldoji(list(open  ORDER BY date), list(high  ORDER BY date),
                 list(low   ORDER BY date), list(close ORDER BY date))
FROM ohlc;

About talib

100+ TA-Lib indicators as native DuckDB functions: overlap studies | Category | Count | Examples | |———-|——-|———| | 🔀 Overlap Studies | 8+ | t_sma, t_ema, t_wma, t_dema, t_tema | | 🏃 Momentum | 15+ | t_rsi, t_macd, t_willr, t_cci, t_adx | | 🔊 Volume | 1+ | t_ad | | 🌊 Volatility | 2+ | t_atr, t_natr | | 🕯️ Pattern Recognition | 49+ | t_cdldoji, t_cdlhammer, t_cdlengulfing | | 💰 Price Transform | 2+ | t_avgprice, t_bop | | 🔄 Cycle Indicators | 4+ | t_ht_dcperiod, t_ht_trendline, t_ht_trendmode | | 📏 Statistics | 10+ | t_linearreg, t_tsf, t_max, t_min | | ➗ Math Transform | 15 | t_sin, t_cos, t_ln, t_sqrt |

Every function is registered in two forms:

  • Scalar (t_*): pass pre-collected lists, returns a list
  • Aggregate/window (ta_*): use with OVER() for row-by-row results
  🏎️ Scalar t_* 🧑‍💻 Aggregate ta_*
Performance ⚡ Fast — one pass over the full series, O(N) 🐢 Slower — recomputes per window frame, ~O(N × window)
Ergonomics Requires list(col ORDER BY date) + unnest to rejoin rows Natural SQL — plugs into OVER (PARTITION BY … ORDER BY …)
Best for Backtests, full-history feature generation, large datasets Dashboards, ad-hoc queries, mixing indicators with row-level columns

Added Functions

function_name function_type description comment examples
t_acos scalar NULL NULL  
t_ad scalar NULL NULL  
t_adx scalar NULL NULL  
t_adxr scalar NULL NULL  
t_aroon scalar NULL NULL  
t_asin scalar NULL NULL  
t_atan scalar NULL NULL  
t_atr scalar NULL NULL  
t_avgprice scalar NULL NULL  
t_bbands scalar NULL NULL  
t_bop scalar NULL NULL  
t_cci scalar NULL NULL  
t_cdl2crows scalar NULL NULL  
t_cdl3blackcrows scalar NULL NULL  
t_cdl3inside scalar NULL NULL  
t_cdl3linestrike scalar NULL NULL  
t_cdl3outside scalar NULL NULL  
t_cdl3starsinsouth scalar NULL NULL  
t_cdl3whitesoldiers scalar NULL NULL  
t_cdladvanceblock scalar NULL NULL  
t_cdlbelthold scalar NULL NULL  
t_cdlbreakaway scalar NULL NULL  
t_cdlclosingmarubozu scalar NULL NULL  
t_cdlconcealbabyswall scalar NULL NULL  
t_cdlcounterattack scalar NULL NULL  
t_cdldoji scalar NULL NULL  
t_cdldojistar scalar NULL NULL  
t_cdldragonflydoji scalar NULL NULL  
t_cdlengulfing scalar NULL NULL  
t_cdlgapsidesidewhite scalar NULL NULL  
t_cdlgravestonedoji scalar NULL NULL  
t_cdlhammer scalar NULL NULL  
t_cdlhangingman scalar NULL NULL  
t_cdlharami scalar NULL NULL  
t_cdlharamicross scalar NULL NULL  
t_cdlhighwave scalar NULL NULL  
t_cdlhikkake scalar NULL NULL  
t_cdlhikkakemod scalar NULL NULL  
t_cdlhomingpigeon scalar NULL NULL  
t_cdlidentical3crows scalar NULL NULL  
t_cdlinneck scalar NULL NULL  
t_cdlinvertedhammer scalar NULL NULL  
t_cdlkicking scalar NULL NULL  
t_cdlkickingbylength scalar NULL NULL  
t_cdlladderbottom scalar NULL NULL  
t_cdllongleggeddoji scalar NULL NULL  
t_cdllongline scalar NULL NULL  
t_cdlmarubozu scalar NULL NULL  
t_cdlmatchinglow scalar NULL NULL  
t_cdlonneck scalar NULL NULL  
t_cdlpiercing scalar NULL NULL  
t_cdlrickshawman scalar NULL NULL  
t_cdlrisefall3methods scalar NULL NULL  
t_cdlseparatinglines scalar NULL NULL  
t_cdlshootingstar scalar NULL NULL  
t_cdlshortline scalar NULL NULL  
t_cdlspinningtop scalar NULL NULL  
t_cdlstalledpattern scalar NULL NULL  
t_cdlsticksandwich scalar NULL NULL  
t_cdltakuri scalar NULL NULL  
t_cdltasukigap scalar NULL NULL  
t_cdlthrusting scalar NULL NULL  
t_cdltristar scalar NULL NULL  
t_cdlunique3river scalar NULL NULL  
t_cdlupsidegap2crows scalar NULL NULL  
t_cdlxsidegap3methods scalar NULL NULL  
t_ceil scalar NULL NULL  
t_cmo scalar NULL NULL  
t_cos scalar NULL NULL  
t_cosh scalar NULL NULL  
t_dema scalar NULL NULL  
t_dx scalar NULL NULL  
t_ema scalar NULL NULL  
t_exp scalar NULL NULL  
t_floor scalar NULL NULL  
t_ht_dcperiod scalar NULL NULL  
t_ht_dcphase scalar NULL NULL  
t_ht_phasor scalar NULL NULL  
t_ht_sine scalar NULL NULL  
t_ht_trendline scalar NULL NULL  
t_ht_trendmode scalar NULL NULL  
t_kama scalar NULL NULL  
t_linearreg scalar NULL NULL  
t_linearreg_angle scalar NULL NULL  
t_linearreg_intercept scalar NULL NULL  
t_linearreg_slope scalar NULL NULL  
t_ln scalar NULL NULL  
t_log10 scalar NULL NULL  
t_macd scalar NULL NULL  
t_mama scalar NULL NULL  
t_max scalar NULL NULL  
t_maxindex scalar NULL NULL  
t_medprice scalar NULL NULL  
t_midpoint scalar NULL NULL  
t_midprice scalar NULL NULL  
t_min scalar NULL NULL  
t_minindex scalar NULL NULL  
t_minmax scalar NULL NULL  
t_minus_di scalar NULL NULL  
t_minus_dm scalar NULL NULL  
t_mom scalar NULL NULL  
t_natr scalar NULL NULL  
t_plus_di scalar NULL NULL  
t_plus_dm scalar NULL NULL  
t_roc scalar NULL NULL  
t_rocp scalar NULL NULL  
t_rocr scalar NULL NULL  
t_rocr100 scalar NULL NULL  
t_rsi scalar NULL NULL  
t_sin scalar NULL NULL  
t_sinh scalar NULL NULL  
t_sma scalar NULL NULL  
t_sqrt scalar NULL NULL  
t_stoch scalar NULL NULL  
t_sum scalar NULL NULL  
t_tan scalar NULL NULL  
t_tanh scalar NULL NULL  
t_tema scalar NULL NULL  
t_trange scalar NULL NULL  
t_trima scalar NULL NULL  
t_trix scalar NULL NULL  
t_tsf scalar NULL NULL  
t_typprice scalar NULL NULL  
t_wclprice scalar NULL NULL  
t_willr scalar NULL NULL  
t_wma scalar NULL NULL  
ta_acos aggregate NULL NULL  
ta_ad aggregate NULL NULL  
ta_adx aggregate NULL NULL  
ta_adxr aggregate NULL NULL  
ta_aroon aggregate NULL NULL  
ta_asin aggregate NULL NULL  
ta_atan aggregate NULL NULL  
ta_atr aggregate NULL NULL  
ta_avgprice aggregate NULL NULL  
ta_bbands aggregate NULL NULL  
ta_bop aggregate NULL NULL  
ta_cci aggregate NULL NULL  
ta_cdl2crows aggregate NULL NULL  
ta_cdl3blackcrows aggregate NULL NULL  
ta_cdl3inside aggregate NULL NULL  
ta_cdl3linestrike aggregate NULL NULL  
ta_cdl3outside aggregate NULL NULL  
ta_cdl3starsinsouth aggregate NULL NULL  
ta_cdl3whitesoldiers aggregate NULL NULL  
ta_cdladvanceblock aggregate NULL NULL  
ta_cdlbelthold aggregate NULL NULL  
ta_cdlbreakaway aggregate NULL NULL  
ta_cdlclosingmarubozu aggregate NULL NULL  
ta_cdlconcealbabyswall aggregate NULL NULL  
ta_cdlcounterattack aggregate NULL NULL  
ta_cdldoji aggregate NULL NULL  
ta_cdldojistar aggregate NULL NULL  
ta_cdldragonflydoji aggregate NULL NULL  
ta_cdlengulfing aggregate NULL NULL  
ta_cdlgapsidesidewhite aggregate NULL NULL  
ta_cdlgravestonedoji aggregate NULL NULL  
ta_cdlhammer aggregate NULL NULL  
ta_cdlhangingman aggregate NULL NULL  
ta_cdlharami aggregate NULL NULL  
ta_cdlharamicross aggregate NULL NULL  
ta_cdlhighwave aggregate NULL NULL  
ta_cdlhikkake aggregate NULL NULL  
ta_cdlhikkakemod aggregate NULL NULL  
ta_cdlhomingpigeon aggregate NULL NULL  
ta_cdlidentical3crows aggregate NULL NULL  
ta_cdlinneck aggregate NULL NULL  
ta_cdlinvertedhammer aggregate NULL NULL  
ta_cdlkicking aggregate NULL NULL  
ta_cdlkickingbylength aggregate NULL NULL  
ta_cdlladderbottom aggregate NULL NULL  
ta_cdllongleggeddoji aggregate NULL NULL  
ta_cdllongline aggregate NULL NULL  
ta_cdlmarubozu aggregate NULL NULL  
ta_cdlmatchinglow aggregate NULL NULL  
ta_cdlonneck aggregate NULL NULL  
ta_cdlpiercing aggregate NULL NULL  
ta_cdlrickshawman aggregate NULL NULL  
ta_cdlrisefall3methods aggregate NULL NULL  
ta_cdlseparatinglines aggregate NULL NULL  
ta_cdlshootingstar aggregate NULL NULL  
ta_cdlshortline aggregate NULL NULL  
ta_cdlspinningtop aggregate NULL NULL  
ta_cdlstalledpattern aggregate NULL NULL  
ta_cdlsticksandwich aggregate NULL NULL  
ta_cdltakuri aggregate NULL NULL  
ta_cdltasukigap aggregate NULL NULL  
ta_cdlthrusting aggregate NULL NULL  
ta_cdltristar aggregate NULL NULL  
ta_cdlunique3river aggregate NULL NULL  
ta_cdlupsidegap2crows aggregate NULL NULL  
ta_cdlxsidegap3methods aggregate NULL NULL  
ta_ceil aggregate NULL NULL  
ta_cmo aggregate NULL NULL  
ta_cos aggregate NULL NULL  
ta_cosh aggregate NULL NULL  
ta_dema aggregate NULL NULL  
ta_dx aggregate NULL NULL  
ta_ema aggregate NULL NULL  
ta_exp aggregate NULL NULL  
ta_floor aggregate NULL NULL  
ta_ht_dcperiod aggregate NULL NULL  
ta_ht_dcphase aggregate NULL NULL  
ta_ht_phasor aggregate NULL NULL  
ta_ht_sine aggregate NULL NULL  
ta_ht_trendline aggregate NULL NULL  
ta_ht_trendmode aggregate NULL NULL  
ta_kama aggregate NULL NULL  
ta_linearreg aggregate NULL NULL  
ta_linearreg_angle aggregate NULL NULL  
ta_linearreg_intercept aggregate NULL NULL  
ta_linearreg_slope aggregate NULL NULL  
ta_ln aggregate NULL NULL  
ta_log10 aggregate NULL NULL  
ta_macd aggregate NULL NULL  
ta_mama aggregate NULL NULL  
ta_max aggregate NULL NULL  
ta_maxindex aggregate NULL NULL  
ta_medprice aggregate NULL NULL  
ta_midpoint aggregate NULL NULL  
ta_midprice aggregate NULL NULL  
ta_min aggregate NULL NULL  
ta_minindex aggregate NULL NULL  
ta_minmax aggregate NULL NULL  
ta_minus_di aggregate NULL NULL  
ta_minus_dm aggregate NULL NULL  
ta_mom aggregate NULL NULL  
ta_natr aggregate NULL NULL  
ta_plus_di aggregate NULL NULL  
ta_plus_dm aggregate NULL NULL  
ta_roc aggregate NULL NULL  
ta_rocp aggregate NULL NULL  
ta_rocr aggregate NULL NULL  
ta_rocr100 aggregate NULL NULL  
ta_rsi aggregate NULL NULL  
ta_sin aggregate NULL NULL  
ta_sinh aggregate NULL NULL  
ta_sma aggregate NULL NULL  
ta_sqrt aggregate NULL NULL  
ta_stoch aggregate NULL NULL  
ta_sum aggregate NULL NULL  
ta_tan aggregate NULL NULL  
ta_tanh aggregate NULL NULL  
ta_tema aggregate NULL NULL  
ta_trange aggregate NULL NULL  
ta_trima aggregate NULL NULL  
ta_trix aggregate NULL NULL  
ta_tsf aggregate NULL NULL  
ta_typprice aggregate NULL NULL  
ta_wclprice aggregate NULL NULL  
ta_willr aggregate NULL NULL  
ta_wma aggregate NULL NULL  

Overloaded Functions

This extension does not add any function overloads.

Added Types

This extension does not add any types.

Added Settings

This extension does not add any settings.