Free Market Data for Python using Twelve Data API
midasSSS
Posted on September 6, 2020
What is Twelve Data API?
Twelve Data is a company that provides high-quality financial market data. The main features are the variety of data (stocks, forex, crypto, indices, etfs), a large number of historical entries, and support of over a hundred technical indicators.
Nevertheless, Twelve Data allows us to begin using data at no cost without time constraints.
Getting Started
The Twelve Data API provides the following features:
- OHLCV values in real-time and historical retrospective.
- Company data, such as earnings.
- Stream data into your app through WebSocket
To begin install the Python library
pip install twelvedata
You will also need an API key that you can obtain in seconds here.
Historical and Real-Time quotes
To gather any kind of data you have to call the TDClient
module. Below is a simple example to retrieve GOOG
stock OHLCV values at the weekly interval:
from twelvedata import TDClient
td = TDClient(my_api_key)
ts = td.time_series(symbol="GOOG", interval="1week").as_pandas()
This will output something like this:
By the way, there are a lot of parameters that might be passed to time_series
, which makes it possible to retrieve any kind of data at any intervals and dates.
Plot Charts
There are two types of charting available. The first one is plotting the static charts using matplotlib
module. However, my fav is the dynamic chart based on plotly
library that allows the build complex charts even with technical indicators.
ts = td.time_series(symbol="GOOG", interval="1week")
ts.with_aroon().with_stoch().with_ema(time_period=24).as_plotly_figure().show()
Export data
Apart from pandas.Dataframe
you may also export data in json
and csv
formats.
ts = td.time_series(symbol="GOOG", interval="1week")
ts.as_json()
ts.as_csv()
Fundamentals
Similar logic applies when you want to request company fundamentals.
from twelvedata import TDClient
td = TDClient(my_api_key)
earnings = td.get_earnings(symbol="GOOG", outputsize=30)
earnings.as_pandas()
# eps_estimate eps_actual difference surprise_prc
# date
# 2020-07-30 8.34 10.13 1.79 21.46
# 2020-04-28 10.38 9.87 -0.51 -4.91
# 2020-02-03 12.59 15.35 2.76 21.92
# 2019-10-28 12.46 10.12 -2.34 -18.78
# 2019-07-25 11.33 14.21 2.88 25.42
# 2019-04-29 10.63 9.50 -1.13 -10.63
# 2019-02-04 10.82 12.77 1.95 18.02
# 2018-10-25 10.40 13.06 2.66 25.58
# 2018-07-23 9.54 4.54 -5.00 -52.41
# 2018-04-23 9.32 13.33 4.01 43.03
# 2018-02-01 9.96 9.70 -0.26 -2.61
# 2017-10-26 8.33 9.57 1.24 14.89
# 2017-07-24 4.47 5.01 0.54 12.08
# 2017-04-27 7.39 7.73 0.34 4.60
Wrapping up
At this post, we made a brief overview of some features that the Twelve Data Python library provides. In the next article, we will cover the topic of streaming market data with WebSockets.
Meanwhile, check out the GitHub repo.
Stay safe!
Posted on September 6, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.