ta

Technical Analysis Library using Pandas and Numpy

https://github.com/bukosabino/ta

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

financial fundamental-analysis momentum numpy oscillator pandas python python3 series-datasets technical-analysis technical-analysis-library trading trend trend-analysis volatility volume
Last synced: 5 months ago · JSON representation

Repository

Technical Analysis Library using Pandas and Numpy

Basic Info
Statistics
  • Stars: 4,631
  • Watchers: 150
  • Forks: 1,070
  • Open Issues: 145
  • Releases: 0
Topics
financial fundamental-analysis momentum numpy oscillator pandas python python3 series-datasets technical-analysis technical-analysis-library trading trend trend-analysis volatility volume
Created about 8 years ago · Last pushed over 1 year ago
Metadata Files
Readme Funding License

README.md

CircleCI Documentation Status Coverage Status Code style: black Linter: Prospector PyPI PyPI - Downloads 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.

Bollinger Bands graph example

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

Logo OpenSistemas

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

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

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

All Time
  • Total Commits: 548
  • Total Committers: 34
  • Avg Commits per committer: 16.118
  • Development Distribution Score (DDS): 0.212
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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
enhancement (10) good first issue (6) next version (3) bug (2) discussion (1)
Pull Request Labels
dependencies (5) bug (1)

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

  • Versions: 55
  • Dependent Packages: 38
  • Dependent Repositories: 320
  • Downloads: 538,624 Last month
  • Docker Downloads: 565
Rankings
Dependent packages count: 0.6%
Dependent repos count: 0.8%
Downloads: 1.2%
Stargazers count: 1.2%
Average: 1.4%
Forks count: 1.5%
Docker downloads count: 3.1%
Maintainers (1)
Last synced: 6 months ago
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.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 3
Rankings
Forks count: 5.9%
Stargazers count: 6.3%
Dependent repos count: 18.1%
Average: 20.5%
Dependent packages count: 51.6%
Last synced: 6 months ago

Dependencies

requirements-core.txt pypi
  • numpy ==1.21.5
  • pandas ==1.3.5
requirements-coverage.txt pypi
  • coverage ==4.5.4
  • coveralls ==1.8.2
requirements-doc.txt pypi
  • Jinja2 <3.1
  • Sphinx ==2.2.1
  • docutils ==0.17.1
  • sphinx-rtd-theme ==0.4.3
requirements-play.txt pypi
  • jupyterlab >=1.2.21
  • matplotlib ==3.1.1
requirements-test.txt pypi
  • black ==21.11b1 test
  • prospector ==1.5.1 test
setup.py pypi
  • numpy *
  • pandas *