Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/peerchemist/finta
Common financial technical indicators implemented in Pandas.
https://github.com/peerchemist/finta
algorithmic-trading algotrading fintech pandas python technical-analysis trading trading-algorithms trading-strategy
Last synced: about 1 month ago
JSON representation
Common financial technical indicators implemented in Pandas.
- Host: GitHub
- URL: https://github.com/peerchemist/finta
- Owner: peerchemist
- License: lgpl-3.0
- Archived: true
- Created: 2016-09-01T21:02:46.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-07-24T08:40:51.000Z (over 2 years ago)
- Last Synced: 2024-04-23T07:18:14.789Z (7 months ago)
- Topics: algorithmic-trading, algotrading, fintech, pandas, python, technical-analysis, trading, trading-algorithms, trading-strategy
- Language: Python
- Homepage:
- Size: 746 KB
- Stars: 2,046
- Watchers: 82
- Forks: 670
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-cryptocurrency - FinTA - Calcolo di indicatori di analisi tecnica in Python (Trading Automatico / Trading Automatico - Risorse per sviluppatori)
- awesome-systematic-trading - finta - with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg) | (Analytics / Indicators)
- awesome-systematic-trading - finta - Common financial technical indicators implemented in Pandas (Analytic tools / Indicators)
- awesome-fintech - FinTA
- awesome-python-machine-learning-resources - GitHub - 24% open · ⏱️ 24.07.2022): (金融数据处理)
- awesome-crypto-trading-bots - finta - Common financial technical indicators implemented in Pandas. (Technical analysis libraries)
- awesome-crypto-trading-bots - finta - Common financial technical indicators implemented in Pandas. (Technical analysis libraries)
- awesome-quant - finta - Common financial technical analysis indicators implemented in Pandas. (Python / Indicators)
- awesome-ai-in-finance - finta - Common financial technical indicators implemented in Python-Pandas (70+ indicators). (TA Lib / Crypto Currencies)
README
# FinTA (Financial Technical Analysis)
[![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0)
[![PyPI](https://img.shields.io/pypi/v/finta.svg?style=flat-square)](https://pypi.python.org/pypi/finta/)
[![Downloads](https://pepy.tech/badge/finta/month)](https://pepy.tech/project/finta/month)
[![](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/download/releases/3.6.0/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
[![Build Status](https://travis-ci.org/peerchemist/finta.svg?branch=master)](https://travis-ci.org/peerchemist/finta)
[![Patrons](https://img.shields.io/liberapay/patrons/peerchemist.svg?logo=liberapay)](https://img.shields.io/liberapay/patrons/peerchemist.svg?logo=liberapay)
[![Bitcoin Donate](https://badgen.net/badge/Bitcoin/Donate/F19537?icon=bitcoin)](https://blockstream.info/address/3Jp1RjKZdQjb1Ui4o5MVqhfch3rD1xUynn)
[![Peercoin Donate](https://badgen.net/badge/peercoin/Donate/green?icon=https://raw.githubusercontent.com/peercoin/media/84710cca6c3c8d2d79676e5260cc8d1cd729a427/Peercoin%202020%20Logo%20Files/01.%20Icon%20Only/Inside%20Circle/Transparent/Green%20Icon/peercoin-icon-green-transparent.svg)](https://chainz.cryptoid.info/ppc/address.dws?PWzpZ5igHDSA76gNZ9DwE7aeCbfLsZbDkJ)Common financial technical indicators implemented in Pandas.
![example](examples/plot.png)
*This is work in progress, bugs are expected and results of some indicators
may not be accurate.*## Supported indicators:
Finta supports over 80 trading indicators:
```
* Simple Moving Average 'SMA'
* Simple Moving Median 'SMM'
* Smoothed Simple Moving Average 'SSMA'
* Exponential Moving Average 'EMA'
* Double Exponential Moving Average 'DEMA'
* Triple Exponential Moving Average 'TEMA'
* Triangular Moving Average 'TRIMA'
* Triple Exponential Moving Average Oscillator 'TRIX'
* Volume Adjusted Moving Average 'VAMA'
* Kaufman Efficiency Indicator 'ER'
* Kaufman's Adaptive Moving Average 'KAMA'
* Zero Lag Exponential Moving Average 'ZLEMA'
* Weighted Moving Average 'WMA'
* Hull Moving Average 'HMA'
* Elastic Volume Moving Average 'EVWMA'
* Volume Weighted Average Price 'VWAP'
* Smoothed Moving Average 'SMMA'
* Fractal Adaptive Moving Average 'FRAMA'
* Moving Average Convergence Divergence 'MACD'
* Percentage Price Oscillator 'PPO'
* Volume-Weighted MACD 'VW_MACD'
* Elastic-Volume weighted MACD 'EV_MACD'
* Market Momentum 'MOM'
* Rate-of-Change 'ROC'
* Relative Strenght Index 'RSI'
* Inverse Fisher Transform RSI 'IFT_RSI'
* True Range 'TR'
* Average True Range 'ATR'
* Stop-and-Reverse 'SAR'
* Bollinger Bands 'BBANDS'
* Bollinger Bands Width 'BBWIDTH'
* Momentum Breakout Bands 'MOBO'
* Percent B 'PERCENT_B'
* Keltner Channels 'KC'
* Donchian Channel 'DO'
* Directional Movement Indicator 'DMI'
* Average Directional Index 'ADX'
* Pivot Points 'PIVOT'
* Fibonacci Pivot Points 'PIVOT_FIB'
* Stochastic Oscillator %K 'STOCH'
* Stochastic oscillator %D 'STOCHD'
* Stochastic RSI 'STOCHRSI'
* Williams %R 'WILLIAMS'
* Ultimate Oscillator 'UO'
* Awesome Oscillator 'AO'
* Mass Index 'MI'
* Vortex Indicator 'VORTEX'
* Know Sure Thing 'KST'
* True Strength Index 'TSI'
* Typical Price 'TP'
* Accumulation-Distribution Line 'ADL'
* Chaikin Oscillator 'CHAIKIN'
* Money Flow Index 'MFI'
* On Balance Volume 'OBV'
* Weighter OBV 'WOBV'
* Volume Zone Oscillator 'VZO'
* Price Zone Oscillator 'PZO'
* Elder's Force Index 'EFI'
* Cummulative Force Index 'CFI'
* Bull power and Bear Power 'EBBP'
* Ease of Movement 'EMV'
* Commodity Channel Index 'CCI'
* Coppock Curve 'COPP'
* Buy and Sell Pressure 'BASP'
* Normalized BASP 'BASPN'
* Chande Momentum Oscillator 'CMO'
* Chandelier Exit 'CHANDELIER'
* Qstick 'QSTICK'
* Twiggs Money Index 'TMF'
* Wave Trend Oscillator 'WTO'
* Fisher Transform 'FISH'
* Ichimoku Cloud 'ICHIMOKU'
* Adaptive Price Zone 'APZ'
* Squeeze Momentum Indicator 'SQZMI'
* Volume Price Trend 'VPT'
* Finite Volume Element 'FVE'
* Volume Flow Indicator 'VFI'
* Moving Standard deviation 'MSD'
* Schaff Trend Cycle 'STC'
* Mark Whistler's WAVE PM 'WAVEPM'
```## Dependencies:
- python (3.6+)
- pandas (1.0.0+)TA class is very well documented and there should be no trouble
exploring it and using with your data. Each class method expects proper `ohlc` DataFrame as input.## Install:
`pip install finta`
or latest development version:
`pip install git+git://github.com/peerchemist/finta.git`
## Import
`from finta import TA`
Prepare data to use with finta:
finta expects properly formated `ohlc` DataFrame, with column names in `lowercase`:
["open", "high", "low", "close"] and ["volume"] for indicators that expect `ohlcv` input.### to resample by time period (you can choose different time period)
`ohlc = resample(df, "24h")`### You can also load a ohlc DataFrame from .csv file
`data_file = ("data/bittrex:btc-usdt.csv")`
`ohlc = pd.read_csv(data_file, index_col="date", parse_dates=True)`
____________________________________________________________________________
## Examples:
### will return Pandas Series object with the Simple moving average for 42 periods
`TA.SMA(ohlc, 42)`### will return Pandas Series object with "Awesome oscillator" values
`TA.AO(ohlc)`### expects ["volume"] column as input
`TA.OBV(ohlc)`### will return Series with Bollinger Bands columns [BB_UPPER, BB_LOWER]
`TA.BBANDS(ohlc)`### will return Series with calculated BBANDS values but will use KAMA instead of MA for calculation, other types of Moving Averages are allowed as well.
`TA.BBANDS(ohlc, MA=TA.KAMA(ohlc, 20))`For more examples see examples directory.
------------------------------------------------------------------------
I welcome pull requests with new indicators or fixes for existing ones.
Please submit only indicators that belong in public domain and are
royalty free.## Contributing
1. Fork it (https://github.com/peerchemist/finta/fork)
2. Study how it's implemented.
3. Create your feature branch (`git checkout -b my-new-feature`).
4. Run [black](https://github.com/ambv/black) code formatter on the finta.py to ensure uniform code style.
5. Commit your changes (`git commit -am 'Add some feature'`).
6. Push to the branch (`git push origin my-new-feature`).
7. Create a new Pull Request.------------------------------------------------------------------------