This is a collection of technical indicators collected or developed for Freqtrade as well as utilities such as timeframe resampling.
We basically provide you with easy to use indicators, collected from all over github and custom methods. Over time we plan to provide a simple API wrapper around TA-Lib, PyTi and others, as we find them. So you have one place, to find 100s of indicators.
-
Consensus - an indicator which is based on a consensus model, across several indicators you can easily customize these. It is based on the TradingView buy/sell graph. - MovingAverage Consensus - Oscillator Consensus - Summary Consensus
-
volume weighted moving average
-
laguerre
-
trendlines, 2 different algorithms to calculate trendlines
-
fibonacci retracements
-
pivots points
- resample - easily resample your dataframe to a larger interval
- merge - merge your resampled dataframe into your original dataframe, so you can build triggers on more than 1 interval!
The following indicators are available and have been 'wrapped' to be used on a dataframe with the standard open/close/high/low/volume columns:
- chaikin_money_flow - Chaikin Money Flow, requires dataframe and period
- accumulation_distribution - requires a dataframe
- osc - requires a dataframe and the periods
- aroon - dataframe, period, field
- atr - dataframe, period, field
- atr_percent - dataframe, period, field
- bollinger_bands - dataframe, period, stdv, field, prefix
- cmo - dataframe, period, field
- cci - dataframe, period
- williams percent
- momentum oscilator
- hull moving average
- ultimate oscillator
- sma
- ema
- tema
We will try to add more and more wrappers as we get to it, but please be patient or help out with PR's! It's super easy, but also super boring work.
to use the library, please install it with pip
pip install technical
To get the latest version, install directly from github:
pip install git+https://github.com/freqtrade/technical
and than import the required packages
from technical.indicators import accumulation_distribution, ...
from technical.util import resample_to_interval, resampled_merge
# Assuming 1h dataframe -resampling to 4h:
dataframe_long = resample_to_interval(dataframe, 240) # 240 = 4 * 60 = 4h
dataframe_long['rsi'] = ta.RSI(dataframe_long)
# Combine the 2 dataframes
dataframe = resampled_merge(dataframe, dataframe_long, fill_na=True)
"""
The resulting dataframe will have 5 resampled columns in addition to the regular columns,
following the template resample_<interval_in_minutes>_<orig_column_name>.
So in the above example:
['resample_240_open', 'resample_240_high', 'resample_240_low','resample_240_close', 'resample_240_rsi']
"""
We will happily add your custom indicators to this repo! Just clone this repository and implement your favorite indicator to use with Freqtrade.
Have fun!