Skip to main content

TA Charting tool

Project description

TAcharts

By: Carter Carlson

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.


indicators

  • atr(high, low, close, n=2): average true range from candlestick data
  • bollinger(df=None, filename=None, interval=None, n=20, ndev=2): Bollinger bands for the close of an instrument
  • 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
  • ichimoku(df=None, filename=None, interval=None): Ichimoku Cloud
  • macd(src, slow=25, fast=13): moving average convergence/divergence of src
  • mmo(src, n=2): Murrey Math oscillator of src
  • renko(df=None, filename=None, interval=None): Renko Chart
  • roc(src, n=2): rate of change of src across n periods
  • rolling(src, n=2, fn=None, axis=1): rolling sum, max, min, or mean 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
  • demo_df: provide BTC's hourly OHLCV data in case no data is provided
  • 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

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
    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
    

How it works

Create your DataFrame variable

# NOTE: File should contain the columns 'date', 'open', 'high', 'low', and 'close'
import pandas as pd
df = pd.read_csv('../Daily.csv')

Bollinger Bands

from TAcharts.indicators.bollinger import bollinger
from TAcharts.plot import plot

b = Bollinger(df)
b.build(n=20)
b.plot()

png

Ichimoku

from TAcharts.indicators.ichimoku import Ichimoku
from TAcharts.plot import plot

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

i.plot()

png

Renko

from TAcharts.indicators.renko import Renko
from TAcharts.plot import plot


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

r.plot()

png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TAcharts-0.0.3.tar.gz (12.5 kB view hashes)

Uploaded Source

Built Distribution

TAcharts-0.0.3-py3-none-any.whl (36.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page