Common financial technical indicators implemented in Pandas.
Project description
FinTA (Financial Technical Analysis)
Common financial technical indicators implemented in Pandas.
This is work in progress, bugs are expected and results of indicators might not be correct.
Supported indicators:
['SMA', 'SMM', 'EMA', 'DEMA', 'TEMA', 'TRIMA', 'TRIX', 'AMA', 'LWMA', 'VAMA', 'VIDYA', 'ER', 'KAMA', 'ZLEMA', 'WMA', 'HMA', 'VWAP', 'SMMA', 'ALMA', 'MAMA', 'FRAMA', 'MACD', 'PPO', 'VW_MACD', 'MOM', 'ROC', 'RSI', 'IFT_RSI', 'SWI', 'TR', 'ATR', 'SAR', 'BBANDS', 'BBWIDTH', 'PERCENT_B', 'KC', 'DO', 'DMI', 'ADX', 'PIVOTS', 'STOCH', 'STOCHD', 'STOCHRSI', 'WILLIAMS', 'UO', 'AO', 'MI', 'VORTEX', 'KST', 'TSI', 'TP', 'ADL', 'CHAIKIN', 'MFI', 'OBV', 'WOBV', 'VZO', 'EFI', 'CFI', 'EBBP', 'EMV', 'CCI', 'COPP', 'BASP', 'BASPN', 'CMO', 'CHANDELIER', 'QSTICK', 'TMF', 'WTO', 'FISH', 'ICHIMOKU', 'APZ', 'VR', 'SQZMI', 'VPT', 'FVE', 'VFI']
Dependencies:
- python (3.4+)
- pandas (0.21.1+)
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
data 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 prepare the DataFrame into ohlc
format you can do something as following:
standardize column names of your source
df.columns = ["date", 'close', 'volume']
set index on the date column, which is requirement to sort it by time periods
df.set_index('date', inplace=True)
select only price column, resample by time period and return daily ohlc (you can choose different time period)
ohlc = df["close"].resample("24h").ohlc()
ohlc()
method applied on the Series above will automatically format the dataframe in format expected by the library so resulting ohlc
Series is ready to use.
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, TA.KAMA(ohlc, 20))
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
- Fork it (https://github.com/peerchemist/finta/fork)
- Study how it's implemented.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create a new Pull Request.
Donate
Buy me a beer 🍺:
Bitcoin: 39PdX8jhXvUpzpkDibwMAVHVs6ZtoHCjnm
Peercoin: PRn448Km1ZJ2BhdPQfiSS3q4Af2vkjwwvH
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.