Skip to main content

Python client for Twelve Data API

Project description

Twelve Data API

Official python library for Twelve Data API. This package supports all main features of the API:

  • Get stock, forex and cryptocurrency OHLC time series.
  • Get over 90+ technical indicators.
  • Output data as: json, csv, pandas
  • Full support for static and dynamic charts.

chart example

Free API Key is required. It might be requested here

Installation

Use the package manager pip to install Twelve Data API library (without optional dependencies):

pip install twelvedata

Or install with pandas support:

pip install twelvedata[pandas]

Or install with pandas, matplotlib and plotly support used for charting:

pip install twelvedata[pandas,matplotlib,plotly]

Usage

Supported parameters
Parameter Description Type Required
symbol stock ticker (e.g. AAPL, MSFT);
physical currency pair (e.g. EUR/USD, CNY/JPY);
digital currency pair (BTC/USD, XRP/ETH)
string yes
interval time frame: 1min, 5min, 15min, 30min, 45min, 1h, 2h, 4h, 8h, 1day, 1week, 1month string yes
apikey your personal API Key, if you don't have one - get it here string yes
exchange if symbol is traded in multiple exchanges specify the desired one, valid for both stocks and cryptocurrencies string no
country if symbol is traded in multiple countries specify the desired one, valid for stocks string no
outputsize number of data points to retrieve int no
timezone timezone at which output datetime will be displayed, supports: UTC, Exchange or according to IANA Time Zone Database string no
start_date start date and time of sampling period, accepts yyyy-MM-dd or yyyy-MM-dd hh:mm:ss format string no
end_date end date and time of sampling period, accepts yyyy-MM-dd or yyyy-MM-dd hh:mm:ss format string no

Time series

  • TDClient requires api_key parameter. It accepts all common parameters.
  • TDClient.time_series() accepts all common parameters. Time series may be converted to several formats:
    • TDClient.time_series().as_json() - will return JSON array
    • TDClient.time_series().as_csv() - will return CSV with header
    • TDClient.time_series().as_pandas() - will return pandas.DataFrame
from twelvedata import TDClient
# Initialize client - api_key parameter is requiered
td = TDClient(apikey="YOUR_API_KEY_HERE")
# Construct the necessary time serie
ts = td.time_series(
    symbol="AAPL",
    interval="1min",
    outputsize=10,
    timezone="America/New_York",
)
# Returns pandas.DataFrame
ts.as_pandas()

Technical indicators

This Python library supports all indicators implemented by Twelve Data. Full list of 90+ technical indicators may be found in API Documentation.

  • Technical indicators are part of TDClient.time_series() object.
  • It has universal format TDClient.time_series().with_{Technical Indicator Name}, e.g. .with_bbands(), .with_percent_b(), .with_macd()
  • Indicator object accepts all parameters according to its specification in API Documentation, e.g. .with_bbands() accepts: series_type, time_period, sd, ma_type. If parameter is not provided it will be set to default.
  • Indicators may be used in arbitrary order and conjugated, e.g. TDClient.time_series().with_aroon().with_adx().with_ema()
  • By default, technical indicator will output with OHLC values. If you do not need OHLC, specify TDClient.time_series().without_ohlc()
from twelvedata import TDClient

td = TDClient(apikey="YOUR_API_KEY_HERE")
ts = td.time_series(
    symbol="ETH/BTC",
    exchange="Huobi",
    interval="5min",
    outputsize=22,
    timezone="America/New_York",
)
# Returns: OHLC, BBANDS(close, 20, 2, EMA), PLUS_DI(9), WMA(20), WMA(40)
ts.with_bbands(ma_type="EMA").with_plus_di().with_wma(time_period=20).with_wma(time_period=40).as_pandas()

# Returns: STOCH(14, 1, 3, SMA, SMA), TSF(close, 9)
ts.without_ohlc().with_stoch().with_tsf().as_json()

Charts

Charts support OHLC, technical indicators and custom bars.

Static

Static charting is based on matplotlib library. Make sure you have installed it.

  • Use .as_pyplot_figure()
from twelvedata import TDClient

td = TDClient(apikey="YOUR_API_KEY_HERE")
ts = td.time_series(
    symbol="MSFT",
    outputsize=75,
    interval="1day",
)
# 1. Returns OHLCV chart
ts.as_pyplot_figure()

# 2. Returns OHLCV + BBANDS(close, 20, 2, SMA) + %B(close, 20, 2 SMA) + STOCH(14, 3, 3, SMA, SMA)
ts.with_bbands().with_percent_b().with_stoch(slow_k_period=3).as_pyplot_figure()

Interactive

Interactive charting is based on plotly library. Make sure you have installed it.

  • Use .as_plotly_figure()
from twelvedata import TDClient

td = TDClient(apikey="YOUR_API_KEY_HERE")
ts = td.time_series(
    symbol="DNR",
    outputsize=50,
    interval="1week",
)
# 1. Returns OHLCV chart
ts.as_plotly_figure()

# 2. Returns OHLCV + EMA(close, 7) + MAMA(close, 0.5, 0.05) + MOM(close, 9) + MACD(close, 12, 26, 9)
ts.with_ema(time_period=7).with_mama().with_mom().with_macd().as_plotly_figure()

Support

Visit our official website https://twelvedata.com or reach out to the Twelve Data team at info@twelvedata.com.

Roadmap

  • Save-load chart templates
  • Auto-update charts
  • Custom plots coloring
  • Interactive charts (plotly)
  • Static charts (matplotlib)
  • Pandas support

Contributing

  1. Clone repo and create a new branch: $ git checkout https://github.com/twelvedata/twelvedata -b name_for_new_branch.
  2. Make changes and test.
  3. Submit Pull Request with comprehensive description of changes.

License

This package is open-sourced software licensed under the MIT license.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

twelvedata-0.1.1-py2.py3-none-any.whl (30.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file twelvedata-0.1.1-py2.py3-none-any.whl.

File metadata

  • Download URL: twelvedata-0.1.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.7

File hashes

Hashes for twelvedata-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b28babd2c850511893eb4bd527390b757ad1e6202d7cd8a2b950e8f7f1a5c133
MD5 6d623ad6f2676224d57abc59c8641eab
BLAKE2b-256 58bdc67fb2232399d7b60736af85d4253875dbbda949163d433c135b4e8d1950

See more details on using hashes here.

Supported by

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