TAcharts
pypi i TAcharts

pypi i TAcharts

# TAcharts 0.0.29

### By: Carl Farterson

##### Contributors: @rnarciso, @t3ch9

This repository provides technical tools to analyze OHLCV data, along with several TA chart functionalities. These functions are optimized for speed and utilize numpy vectorization over built-in pandas methods when possible.

### Methods

#### Indicators With Chart Functionality

• `Bollinger(df=None, filename=None, interval=None, n=20, ndev=2)`: Bollinger Bands
• `Ichimoku(df=None, filename=None, interval=None)`: Ichimoku Cloud
• `Renko(df=None, filename=None, interval=None)`: Renko Chart

#### Indicators Without Chart Functionality

• `atr(high, low, close, n=2)`: average true range from candlestick data
• `cmf(df, n=2)`: Chaikin Money Flow of an OHLCV dataset
• `double_smooth(src, n_slow, n_fast)`: The smoothed value of two EMAs
• `ema(src, n=2)`: exponential moving average for a list of `src` across `n` periods
• `macd(src, slow=25, fast=13)`: moving average convergence/divergence of `src`
• `mmo(src, n=2)`: Murrey Math oscillator of `src`
• `roc(src, n=2)`: rate of change of `src` across `n` periods
• `rolling(src, n=2, fn=None, axis=1)`: rolling `sum`, `max`, `min`, `mean`, or `median` of `src` across `n` periods
• `rsi(src, n=2)`: relative strength index of `src` across `n` periods
• `sdev(src, n=2)`: standard deviation across n periods
• `sma(src, n=2)`: simple moving average of `src` across `n` periods
• `td_sequential(src, n=2)`: TD sequential of `src` across `n` periods
• `tsi(src, slow=25, fast=13)`: true strength indicator

#### utils

• `area_between(line1, line2)`: find the area between line1 and line2
• `crossover(x1, x2)`: find all instances of intersections between two lines
• `draw_candlesticks(ax, df)`: add candlestick visuals to a matplotlib chart
• `fill_values(averages, interval, target_len)`: Fill missing values with evenly spaced samples.
• Example: You're using 15-min candlestick data to find the 1-hour moving average and want a value at every 15-min mark, and not every 1-hour mark.
• `group_candles(df, interval=4)`: combine candles so instead of needing a different dataset for each time interval, you can form time intervals using more precise data.
• Example: you have 15-min candlestick data but want to test a strategy based on 1-hour candlestick data (`interval=4`).
• `intersection(a0, a1, b0, b1)`: find the intersection coordinates between vector A and vector B

### How it works

``````# NOTE: we are using 1-hour BTC OHLCV data from 2019.01.01 00:00:00 to 2019.12.31 23:00:00
from TAcharts.utils.ohlcv import OHLCV

df = OHLCV().btc

``````
dateopenhighlowclosevolume
02019-01-01 00:00:003699.953713.933697.003703.56660.279771
12019-01-01 01:00:003703.633726.643703.343713.83823.625491
22019-01-01 02:00:003714.193731.193707.003716.70887.101362
32019-01-01 03:00:003716.983732.003696.143699.95955.879034
42019-01-01 04:00:003699.963717.113698.003713.07534.113945

#### Bollinger Bands

``````from TAcharts.indicators.bollinger import Bollinger

b = Bollinger(df)
b.build(n=20, ndev=2)

b.plot()
``````

#### Ichimoku

``````from TAcharts.indicators.ichimoku import Ichimoku

i = Ichimoku(df)
i.build(20, 60, 120, 30)

i.plot()
``````

#### Renko

``````from TAcharts.indicators.renko import Renko

r = Renko(df)
r.set_brick_size(auto=True, atr_interval=2)
r.build()

r.plot()
``````

#### wrappers

• `@args_to_dtype(dtype)`: Convert all function arguments to a specific data type

``````from TAcharts.wrappers import args_to_dtype

# Example: `src` is converted to a list
@args_to_dtype(list)
def rsi(src, n=2):
pass
``````
• `@pd_series_to_np_array`: Convert function arguments from `pd.Series` to `np.array` using `pd.Series.values`. This wrapper is 10x quicker than using `@args_to_dtype(np.array)` when working with Pandas series.

``````from TAcharts.wrappers import pd_series_to_np_array

# Example: `high`, `low`, and `close` are all converted into `np.array` data types
@pd_series_to_np_array
def atr(high, low, close, n=14):
pass
``````

111

1yr ago

1

4

5

### OPEN PRs

0
VersionTagPublished
0.0.29
2yrs ago
0.0.28
2yrs ago
0.0.27
2yrs ago
0.0.26
2yrs ago