TALi++ - Incremental Technical Analysis Library
Project description
TALi++ - Incremental Technical Analysis Library
talipp
(or tali++
) is a Python library implementing financial indicators for technical analysis. The distinctive feature of the library is its incremental computation which fits extremely well real-time applications or applications with iterative input in general.
Unlike existing libraries for technical analysis which typically have to work on the whole input vector in order to calculate new values of indicators, talipp
due to its incremental architecture calculates new indicators' values exclusively based on the delta input data. That implies, among others, it requires O(1)
time to produce new values in comparison to O(n)
(or worse) required by other libraries.
Supported incremental operations include:
- appending new values to the input
- updating the last input value
- removing arbitrary number of the input values
Incremental nature of talipp
naturally excels in applications with frequent CUD
operations but it can be used for charting, back-testing, ... as any other existing library.
What's new in version 1.0.0
talipp
released
For the full history of changes see CHANGELOG.
List of incremental indicators
talipp
currently provides below set of indicators. If your favourite indicator is missing, then create a ticket via GitHub Issues and there is a chance that it will be included in the future version of the library.
Type | Indicators |
---|---|
trend | Average Directional Index (ADX) Awesome Oscillator (AO) Ichimoku Kinko Hyo Know Sure Thing (KST) Moving Average Convergence Divergence (MACD) Mass Index Moving Average (ALMA, SMA, SMMA, DEMA, EMA, HMA, TEMA, VWMA, WMA) Parabolic SAR SFX TOR |
support/resistance | High/Low Pivots |
momentum | Chaikin Oscillator Rate of Change (ROC) Relative strength index (RSI) Stochastic Oscillator Stochastic RSI Ultimate Oscillator (UO) |
volume | Accumulation/Distribution (ADL) On-balance Volume (OBV) |
volatility | Average True Range (ATR) Bollinger Bands (BB) Donchian Channel (DC) Keltner Channel (KC) Standard deviation |
Installation
pip install talipp
In case you want to install the latest version from the repo, use
pip install git+https://github.com/nardew/talipp.git@master
Examples
Consult examples
folder to see usage of every single indicator included in the library. To get the basic look and feel of the API, see below.
from talipp.indicators import EMA, Stoch
from talipp.ohlcv import OHLCVFactory
# EMA indicator ([float] -> [float])
ema = EMA(period = 3, input_values = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10])
# treat indicators as any other list
print(f'EMA(3): {ema}') # [3.0, 5.0, 7.0, 4.5, 4.25, 5.125, 6.5625, 8.28125]
print(f'Last EMA value: {ema[-1]}') # 8.28125
# append a new input value incrementally
ema.add_input_value(11)
print(f'EMA after adding a new value: {ema}') # [3.0, 5.0, 7.0, 4.5, 4.25, 5.125, 6.5625, 8.28125, 9.640625]
# change the last added value
ema.update_input_value(15)
print(f'EMA after updating the last value: {ema}') # [3.0, 5.0, 7.0, 4.5, 4.25, 5.125, 6.5625, 8.28125, 11.640625]
# change the last added value again
ema.update_input_value(18)
print(f'EMA after updating the last value: {ema}') # [3.0, 5.0, 7.0, 4.5, 4.25, 5.125, 6.5625, 8.28125, 13.140625]
# remove the last added value
ema.remove_input_value()
print(f'EMA after removing the last value: {ema}') # [3.0, 5.0, 7.0, 4.5, 4.25, 5.125, 6.5625, 8.28125]
# STOCH indicator ([OHLCV] -> [composite])
stoch = Stoch(5, 3, OHLCVFactory.from_dict({
'high': [5, 10, 15, 20, 25, 30, 35],
'low': [1, 4, 7, 10, 13, 16, 19],
'close': [3, 9, 8, 19, 18, 17, 19]
}))
# print result as a list of composite values for 'k' and 'd' output parameters
print(f'Stoch(5, 3) composite result: {stoch}') # [StochVal(k=70.83333333333333, d=None), StochVal(k=50.0, d=None), StochVal(k=42.857142857142854, d=54.563492063492056)]
# print result as lists per output parameters
print(f'Stoch(5, 3) decomposed result: {stoch.to_lists()}') # {'k': [70.83333333333333, 50.0, 42.857142857142854], 'd': [None, None, 54.563492063492056]}
Contact
- to report issues, bugs, docu corrections or to propose new features use preferably Github Issues
- for topics requiring more personal approach feel free to send an e-mail to
Support
If you like the library and you feel like you want to support its further development, enhancements and bug fixing, then it will be of great help and most appreciated if you:
- file bugs, proposals, pull requests, ...
- spread the word
- donate an arbitrary tip
BTC
:3GJPT6H6WeuTWR2KwDSEN5qyJq95LEErzf
ETH
:0xC7d8673Ee1B01f6F10e40aA416a1b0A746eaBe68
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.
Source Distribution
Built Distribution
File details
Details for the file talipp-1.0.0.tar.gz
.
File metadata
- Download URL: talipp-1.0.0.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c87484bef3ded14d18c6b68baa13aad63d9d7c06666b4e29235cb7c5981ae2b |
|
MD5 | c5d0a639d5e0082f10d34dc622053984 |
|
BLAKE2b-256 | e8043ff0d050d11501744e1fe3176761aefc1e0ed79f214f4604a76160c208c9 |
File details
Details for the file talipp-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: talipp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abf86bc34d7c2998bb402de4ccdb6e69cfe325ff6e528685fb302ad205c035be |
|
MD5 | 229d36e1c5163438556c391b5aabffda |
|
BLAKE2b-256 | ac3a1c8a192fd6c0c50757995db555ad2d6c0997cb97efe0645dfedae2010f43 |