You are on page 1of 7

4.05.

2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy

bukosabino / ta Public

Technical Analysis Library using Pandas and Numpy

technical-analysis-library-in-python.readthedocs.io/en/latest/


MIT License


3k
stars

706
forks


Star Notifications

Code Issues 97 Pull requests 15 Actions Projects Wiki Security Insights


master
Go to file

bukosabino … 10 days ago

View code

build passing
docs passing
coverage 98%
code style black

Linter Prospector
pypi v0.10.1

downloads 73k/month
Donate $ PayPal

Technical Analysis Library in Python


It is a Technical Analysis library useful to do feature engineering from financial time series
datasets (Open, Close, High, Low, Volume). It is built on Pandas and Numpy.

https://github.com/bukosabino/ta 1/7
4.05.2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy

The library has implemented 42 indicators:

Volume

Money Flow Index (MFI)


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

Volatility

Average True Range (ATR)


Bollinger Bands (BB)
Keltner Channel (KC)
Donchian Channel (DC)
Ulcer Index (UI)

https://github.com/bukosabino/ta 2/7
4.05.2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy

Trend

Simple Moving Average (SMA)


Exponential Moving Average (EMA)
Weighted Moving Average (WMA)
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)
Parabolic Stop And Reverse (Parabolic SAR)
Schaff Trend Cycle (STC)

Momentum

Relative Strength Index (RSI)


Stochastic RSI (SRSI)
True strength index (TSI)
Ultimate Oscillator (UO)
Stochastic Oscillator (SR)
Williams %R (WR)
Awesome Oscillator (AO)
Kaufman's Adaptive Moving Average (KAMA)
Rate of Change (ROC)
Percentage Price Oscillator (PPO)
Percentage Volume Oscillator (PVO)

Others

Daily Return (DR)


Daily Log Return (DLR)
Cumulative Return (CR)

Documentation
https://technical-analysis-library-in-python.readthedocs.io/en/latest/
https://github.com/bukosabino/ta 3/7
4.05.2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy

Motivation to use
English
Spanish

How to use (Python 3)


$ pip install --upgrade 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 add_all_ta_features

from ta.utils import dropna

# Load datas

df = pd.read_csv('ta/tests/data/datas.csv', sep=',')

# Clean NaN values

df = dropna(df)

# Add all ta features

df = add_all_ta_features(

df, open="Open", high="High", low="Low", close="Close", volume="Volume_BTC")

Example adding particular feature

import pandas as pd

from ta.utils import dropna

from ta.volatility import BollingerBands

# Load datas

df = pd.read_csv('ta/tests/data/datas.csv', sep=',')

https://github.com/bukosabino/ta 4/7
4.05.2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy

# Clean NaN values

df = dropna(df)

# Initialize Bollinger Bands Indicator

indicator_bb = BollingerBands(close=df["Close"], window=20, window_dev=2)

# Add Bollinger Bands features

df['bb_bbm'] = indicator_bb.bollinger_mavg()

df['bb_bbh'] = indicator_bb.bollinger_hband()

df['bb_bbl'] = indicator_bb.bollinger_lband()

# Add Bollinger Band high indicator

df['bb_bbhi'] = indicator_bb.bollinger_hband_indicator()

# Add Bollinger Band low indicator

df['bb_bbli'] = indicator_bb.bollinger_lband_indicator()

# Add Width Size Bollinger Bands

df['bb_bbw'] = indicator_bb.bollinger_wband()

# Add Percentage Bollinger Bands

df['bb_bbp'] = indicator_bb.bollinger_pband()

Deploy and develop (for developers)


$ git clone https://github.com/bukosabino/ta.git

$ cd ta

$ pip install -r requirements-play.txt

$ make test

Sponsor

Thank you to OpenSistemas! It is because of your contribution that I am able to continue


the development of this open source library.

Based on
https://github.com/bukosabino/ta 5/7
4.05.2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy

https://en.wikipedia.org/wiki/Technical_analysis
https://pandas.pydata.org
https://github.com/FreddieWitherden/ta
https://github.com/femtotrader/pandas_talib

In Progress
Automated tests for all the indicators.

TODO
Use NumExpr to speed up the NumPy/Pandas operations? Article Motivation
Add more technical analysis features.
Wrapper to get financial data.
Use of the Pandas multi-indexing techniques to calculate several indicators at the same
time.
Use Plotly/Streamlit to visualize features

Changelog
Check the changelog of project.

Donation
README.md

If you think ta library help you, please consider buying me a coffee.

Credits
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 engineer freelance focused on Data Science using Python tools such as
Pandas, Scikit-Learn, Backtrader, Zipline or Catalyst. Don't hesitate to contact me if you need
to develop something related with this library, Python, Technical Analysis, AlgoTrading,
Machine Learning, etc.

R l
https://github.com/bukosabino/ta 6/7
4.05.2022 16:51 GitHub - bukosabino/ta: Technical Analysis Library using Pandas and Numpy
Releases


62
tags

Sponsor this project

bukosabino
Darío López Padial

tidelift.com/funding/github/pypi/ta

Learn more about GitHub Sponsors

Packages

No packages published

Used by 1.1k

+ 1,120

Contributors 25

+ 14 contributors

Languages

Jupyter Notebook 84.0%


Python 16.0%

https://github.com/bukosabino/ta 7/7

You might also like