Technical Analysis Library in Python
Clone or download
Latest commit 953be3d Jan 2, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
data add example dataset Jul 17, 2018
dev update notebooks Jan 2, 2019
doc generate image to doc Apr 9, 2018
docs doc May 5, 2018
examples_to_use example notebook Jan 3, 2019
ta adding scikit-learn pipeline Jan 2, 2019
.gitignore Consolidated ema_fast, ema_slow to ema due to redundancy Jul 31, 2018
LICENSE prepare to pypi Apr 6, 2018
MANIFEST update pypi Jan 2, 2019 Update Dec 31, 2018
requirements.txt adding scikit-learn pipeline Jan 2, 2019
setup.cfg autodoc Apr 10, 2018 update pypi Jan 2, 2019

Technical Analysis Library in Python

It is a Technical Analysis library to financial time series datasets (open, close, high, low, volume). You can use it to do feature engineering from financial datasets. It is builded on Python Pandas library.

alt text

The library has implemented 32 indicators:


  • Accumulation/Distribution Index (ADI)
  • On-Balance Volume (OBV)
  • On-Balance Volume mean (OBV mean)
  • Chaikin Money Flow (CMF)
  • Force Index (FI)
  • Ease of Movement (EoM, EMV)
  • Volume-price Trend (VPT)
  • Negative Volume Index (NVI)


  • Average True Range (ATR)
  • Bollinger Bands (BB)
  • Keltner Channel (KC)
  • Donchian Channel (DC)


  • Moving Average Convergence Divergence (MACD)
  • Average Directional Movement Index (ADX)
  • Vortex Indicator (VI)
  • Trix (TRIX)
  • Mass Index (MI)
  • Commodity Channel Index (CCI)
  • Detrended Price Oscillator (DPO)
  • KST Oscillator (KST)
  • Ichimoku Kinkō Hyō (Ichimoku)


  • Money Flow Index (MFI)
  • Relative Strength Index (RSI)
  • True strength index (TSI)
  • Ultimate Oscillator (UO)
  • Stochastic Oscillator (SR)
  • Williams %R (WR)
  • Awesome Oscillator (AO)


  • Daily Return (DR)
  • Daily Log Return (DLR)
  • Cumulative Return (CR)


Motivation to use

How to use (python 3)

$ virtualenv -p python3 virtualenvironment
$ source virtualenvironment/bin/activate
$ pip install ta

To use this library you should have a financial time series dataset including “Timestamp”, “Open”, “High”, “Low”, “Close” and “Volume” columns.

You should clean or fill NaN values in your dataset before add technical analysis features.

You can get code examples in examples_to_use folder.

You can visualize the features in this notebook.

Example adding all features

import pandas as pd
from ta import *

# Load datas
df = pd.read_csv('your-file.csv', sep=',')

# Clean NaN values
df = utils.dropna(df)

# Add ta features filling NaN values
df = add_all_ta_features(df, "Open", "High", "Low", "Close", "Volume_BTC", fillna=True)

Example adding individual features

import pandas as pd
from ta import *

# Load datas
df = pd.read_csv('your-file.csv', sep=',')

# Clean NaN values
df = utils.dropna(df)

# Add bollinger band high indicator filling NaN values
df['bb_high_indicator'] = bollinger_hband_indicator(df["Close"], n=20, ndev=2, fillna=True)

# Add bollinger band low indicator filling NaN values
df['bb_low_indicator'] = bollinger_lband_indicator(df["Close"], n=20, ndev=2, fillna=True)

Deploy to developers

$ git clone
$ cd ta
$ pip install -r requirements.txt
$ cd dev
$ python

Based on:



Developed by Darío López Padial (aka Bukosabino) and other contributors:

Please, let me know about any comment or feedback.

Also, I am a software freelance focused on Data Science using Python tools such as Pandas, Scikit-Learn, Zipline or Catalyst. Don't hesitate to contact me if you need something related to this library, Technical Analysis, Algo Trading, Machine Learning, etc.