bukosabino/ta
Technical Analysis Library using Pandas and Numpy
repo name | bukosabino/ta |
repo link | https://github.com/bukosabino/ta |
homepage | https://technical-analysis-library-in-python.readthedocs.io/en/latest/ |
language | Jupyter Notebook |
size (curr.) | 9418 kB |
stars (curr.) | 893 |
created | 2018-01-02 |
license | MIT License |
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 Pandas and Numpy.
The library has implemented 33 indicators:
Volume
- 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)
Volatility
- Average True Range (ATR)
- Bollinger Bands (BB)
- Keltner Channel (KC)
- Donchian Channel (DC)
Trend
- 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)
Momentum
- Money Flow Index (MFI)
- Relative Strength Index (RSI)
- 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)
Others
- Daily Return (DR)
- Daily Log Return (DLR)
- Cumulative Return (CR)
Documentation
https://technical-analysis-library-in-python.readthedocs.io/en/latest/
Motivation to use
How to use (python >= v3.6)
$ 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
import ta
# Load datas
df = pd.read_csv('ta/tests/data/datas.csv', sep=',')
# Clean NaN values
df = ta.utils.dropna(df)
# Add all ta features
df = ta.add_all_ta_features(
df, open="Open", high="High", low="Low", close="Close", volume="Volume_BTC")
Example adding particular feature
import pandas as pd
import ta
# Load datas
df = pd.read_csv('ta/tests/data/datas.csv', sep=',')
# Clean NaN values
df = ta.utils.dropna(df)
# Initialize Bollinger Bands Indicator
indicator_bb = ta.volatility.BollingerBands(close=df["Close"], n=20, ndev=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 play-requirements.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://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:
- 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
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 something related with this library, Python, Technical Analysis, AlgoTrading, Machine Learning, etc.