Python client for twelvedata API
Project description
Twelve Data API
Official python library for Twelve Data API. This package supports all main features of 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.
Free API Key is requiered. 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
requiresapi_key
parameter. It accepts all common parameteres.TDClient.time_series()
accepts all common parameters. Time series may be converted to several formats:TDClient.time_series().as_json()
- will return JSON arrayTDClient.time_series().as_csv()
- will return CSV with headerTDClient.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 it's specification in API Documentation, e.g.
.with_bbands()
accepts:series_type
,time_period
,sd
,ma_type
. If parameter is not provided it wil 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 official website https://twelvedata.com or reach out 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
- Clone repo and create a new branch:
$ git checkout https://github.com/twelvedata/twelvedata -b name_for_new_branch
. - Make changes and test.
- Submit Pull Request with comprehensive description of changes.
License
This package is open-sourced software licensed under the MIT license.
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 Distributions
Built Distribution
Hashes for twelvedata-0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73289b7b696476a3e4b4ab69da89580b53b6170eedb1fadf09c6bb8125287194 |
|
MD5 | 6fceee8fdd7025d6a64c2d9f352b3ed5 |
|
BLAKE2b-256 | d6ea3dd8e39b8acc74c4fa3e31b7738d414b57e1a5b2bb065ee981c5dc8bec26 |