Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 34 committers (2.9%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.6%) to scientific vocabulary
Keywords
Repository
Technical Analysis Library using Pandas and Numpy
Basic Info
- Host: GitHub
- Owner: bukosabino
- License: mit
- Language: Jupyter Notebook
- Default Branch: master
- Homepage: https://technical-analysis-library-in-python.readthedocs.io/en/latest/
- Size: 9.31 MB
Statistics
- Stars: 4,631
- Watchers: 150
- Forks: 1,070
- Open Issues: 145
- Releases: 0
Topics
Metadata Files
README.md
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.

The library has implemented 43 indicators:
Volume
ID | Name | Class | defs
-- |-- |-- |-- |
1 | Money Flow Index (MFI) | MFIIndicator | moneyflowindex
2 | Accumulation/Distribution Index (ADI) | AccDistIndexIndicator | accdistindex
3 | On-Balance Volume (OBV) | OnBalanceVolumeIndicator | onbalancevolume
4 | Chaikin Money Flow (CMF) | ChaikinMoneyFlowIndicator | chaikinmoneyflow
5 | Force Index (FI) | ForceIndexIndicator | force_index
6 | Ease of Movement (EoM, EMV) | EaseOfMovementIndicator | easeofmovement
smaeaseof_movement
7 | Volume-price Trend (VPT) | VolumePriceTrendIndicator| volumepricetrend
8 | Negative Volume Index (NVI) | NegativeVolumeIndexIndicator| negativevolumeindex
9 | Volume Weighted Average Price (VWAP) | VolumeWeightedAveragePrice | volumeweightedaverage_price
Volatility
ID | Name | Class | defs
-- |-- |-- |-- |
10 | Average True Range (ATR) | AverageTrueRange | averagetruerange
11 | Bollinger Bands (BB) | BollingerBands | bollinger_hband
bollingerhbandindicator
bollinger_lband
bollingerlbandindicator
bollinger_mavg
bollinger_pband
bollinger_wband
12 | Keltner Channel (KC) | KeltnerChannel | keltnerchannelhband
keltnerchannelhband_indicator
keltnerchannellband
keltnerchannellband_indicator
keltnerchannelmband
keltnerchannelpband
keltnerchannelwband
13 | Donchian Channel (DC) | DonchianChannel| donchianchannelhband
donchianchannellband
donchianchannelmban
donchianchannelpband
donchianchannelwband
14 | Ulcer Index (UI) | UlcerIndex| ulcer_index
Trend
ID | Name | Class | defs
-- |-- |-- |-- |
15 | Simple Moving Average (SMA) | SMAIndicator | sma_indicator
16 | Exponential Moving Average (EMA) | EMAIndicator | ema_indicator | Trend
17 | Weighted Moving Average (WMA) | WMAIndicator | wma_indicator
18 | Moving Average Convergence Divergence (MACD) | MACD | macd
macd_diff
macd_signal
19 | Average Directional Movement Index (ADX) | ADXIndicator | adx
adx_neg
adx_pos
20 | Vortex Indicator (VI) | VortexIndicator | vortexindicatorneg
vortexindicatorpos
21 | Trix (TRIX) | TRIXIndicator | trix
22 | Mass Index (MI) | MassIndex | mass_index
23 | Commodity Channel Index (CCI) | CCIIndicator| cci
24 | Detrended Price Oscillator (DPO) | DPOIndicator | dpo
25 | KST Oscillator (KST) | KSTIndicator | kst
kst_sig
26 | Ichimoku Kinkō Hyō (Ichimoku) | IchimokuIndicator | ichimoku_a
ichimoku_b
ichimokubaseline
ichimokuconversionline
27 | Parabolic Stop And Reverse (Parabolic SAR) | PSARIndicator | psar_down
psardownindicator
psar_up
psarupindicator
28 | Schaff Trend Cycle (STC) | STCIndicator | stc
29 | Aroon Indicator | AroonIndicator | aroon_down
aroon_up
Momentum
ID | Name | Class | defs
-- |-- |-- |-- |
30 | Relative Strength Index (RSI) | RSIIndicator | rsi
31 | Stochastic RSI (SRSI) | StochRSIIndicator | stochrsi
stochrsi_d
stochrsi_k
32 | True strength index (TSI) | TSIIndicator | tsi
33 | Ultimate Oscillator (UO) | UltimateOscillator | ultimate_oscillator
34 | Stochastic Oscillator (SR) | StochasticOscillator | stoch
stoch_signal
35 | Williams %R (WR) | WilliamsRIndicator | williams_r
36 | Awesome Oscillator (AO) | AwesomeOscillatorIndicator | awesome_oscillator
37 | Kaufman's Adaptive Moving Average (KAMA) | KAMAIndicator | kama
38 | Rate of Change (ROC) | ROCIndicator | roc
39 | Percentage Price Oscillator (PPO) | PercentagePriceOscillator | ppo
ppo_hist
ppo_signal
40 | Percentage Volume Oscillator (PVO) | PercentageVolumeOscillator | pvo
pvo_hist
pvo_signal
Others
ID | Name | Class | defs -- |-- |-- |-- | 41 | Daily Return (DR) | DailyReturnIndicator | daily_return 42 | Daily Log Return (DLR) | DailyLogReturnIndicator | dailylogreturn 43 | Cumulative Return (CR) | CumulativeReturnIndicator | cumulative_return
Documentation
https://technical-analysis-library-in-python.readthedocs.io/en/latest/
Motivation to use
How to use (Python 3)
sh
$ 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 examplestouse folder.
You can visualize the features in this notebook.
Example adding all features
```python import pandas as pd from ta import addallta_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 = addalltafeatures( df, open="Open", high="High", low="Low", close="Close", volume="VolumeBTC") ```
Example adding particular feature
```python 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=',')
Clean NaN values
df = dropna(df)
Initialize Bollinger Bands Indicator
indicatorbb = BollingerBands(close=df["Close"], window=20, windowdev=2)
Add Bollinger Bands features
df['bbbbm'] = indicatorbb.bollingermavg() df['bbbbh'] = indicatorbb.bollingerhband() df['bbbbl'] = indicatorbb.bollinger_lband()
Add Bollinger Band high indicator
df['bbbbhi'] = indicatorbb.bollingerhbandindicator()
Add Bollinger Band low indicator
df['bbbbli'] = indicatorbb.bollingerlbandindicator()
Add Width Size Bollinger Bands
df['bbbbw'] = indicatorbb.bollinger_wband()
Add Percentage Bollinger Bands
df['bbbbp'] = indicatorbb.bollinger_pband() ```
Deploy and develop (for developers)
sh
$ 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://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
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.
Owner
- Name: Darío López Padial
- Login: bukosabino
- Kind: user
- Location: Granada
- Company: Building software and Gen AI products
- Website: https://www.linkedin.com/in/dar%C3%ADo-l%C3%B3pez-padial-45269150
- Repositories: 54
- Profile: https://github.com/bukosabino
Join us now and share the software. You'll be free.
GitHub Events
Total
- Issues event: 5
- Watch event: 442
- Issue comment event: 4
- Pull request event: 1
- Pull request review event: 2
- Fork event: 205
Last Year
- Issues event: 5
- Watch event: 442
- Issue comment event: 4
- Pull request event: 1
- Pull request review event: 2
- Fork event: 205
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Dario Lopez Padial | b****o@g****m | 432 |
| Kevin Johnson | a****j@g****m | 31 |
| Groni3000 | 7****0 | 11 |
| Tianning Li | l****i@g****m | 10 |
| glyphack | s****i@c****r | 7 |
| d5lewis | d****s@u****u | 7 |
| Dario | d****z@f****g | 5 |
| Christian Janiake | c****e@m****m | 5 |
| coire | c****u@g****m | 4 |
| Conner Brown | c****n@g****m | 3 |
| Michael Privat | m****t@m****m | 3 |
| Or Yarimi | o****i@g****m | 3 |
| glyphack | g****k@p****n | 2 |
| InnaKy | s****r@p****m | 2 |
| Michel Metran | m****n@g****m | 2 |
| Stephen | s****e@g****m | 2 |
| monism123 | 5****3 | 2 |
| Alex Gorbachev | 2****v | 1 |
| Bastian Zimmermann | 1****m | 1 |
| Benjamin Briegel | b****l@g****m | 1 |
| vinopm | v****m@m****m | 1 |
| Darío López Padial | d****l@o****m | 1 |
| Carter Carlson | c****n@g****m | 1 |
| Bintang Pradana Erlangga Putra | b****2@g****m | 1 |
| Cody Harris | 9****e | 1 |
| Dallas Pool | c****a@g****m | 1 |
| Erlend | d****d@g****m | 1 |
| Ghilas BELHADJ | g****j@g****m | 1 |
| Ivan Gutierrez | 1****z | 1 |
| Manuel Martins | m****5@g****m | 1 |
| and 4 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 82
- Total pull requests: 55
- Average time to close issues: 9 months
- Average time to close pull requests: 5 months
- Total issue authors: 79
- Total pull request authors: 36
- Average comments per issue: 1.71
- Average comments per pull request: 0.91
- Merged pull requests: 22
- Bot issues: 0
- Bot pull requests: 4
Past Year
- Issues: 8
- Pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 6
- Pull request authors: 2
- Average comments per issue: 0.13
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Rais-hub-8 (3)
- Groni3000 (2)
- ArmaanSingla92 (1)
- adamDucken (1)
- awlange (1)
- rrfaria (1)
- H3adlock (1)
- jeffkingsley12 (1)
- leewi9 (1)
- AndriiPetrosiuk (1)
- edgetrader (1)
- yebuzhen (1)
- prRZ5F4LXZ (1)
- markdregan (1)
- PhantoNull (1)
Pull Request Authors
- bukosabino (9)
- dependabot[bot] (5)
- djinn (4)
- Groni3000 (3)
- yarimiz (3)
- cozyBrain (2)
- itstalmeez (2)
- lit26 (2)
- Bisleri06 (2)
- WaldemarGrauberger (1)
- mnr73 (1)
- codyharris-circle (1)
- ludydoo (1)
- mohammadmahdiabedi (1)
- gliptak (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 538,624 last-month
- Total docker downloads: 565
-
Total dependent packages: 38
(may contain duplicates) -
Total dependent repositories: 323
(may contain duplicates) - Total versions: 60
- Total maintainers: 1
pypi.org: ta
Technical Analysis Library in Python
- Homepage: https://github.com/bukosabino/ta
- Documentation: https://ta.readthedocs.io/
- License: The MIT License (MIT)
-
Latest release: 0.11.0
published over 2 years ago
Rankings
Maintainers (1)
conda-forge.org: ta
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.
- Homepage: https://github.com/bukosabino/ta
- License: MIT
-
Latest release: 0.10.2
published over 3 years ago
Rankings
Dependencies
- numpy ==1.21.5
- pandas ==1.3.5
- coverage ==4.5.4
- coveralls ==1.8.2
- Jinja2 <3.1
- Sphinx ==2.2.1
- docutils ==0.17.1
- sphinx-rtd-theme ==0.4.3
- jupyterlab >=1.2.21
- matplotlib ==3.1.1
- black ==21.11b1 test
- prospector ==1.5.1 test
- numpy *
- pandas *