Free Market Data for Python using Twelve Data API

midassss

midasSSS

Posted on September 6, 2020

Free Market Data for Python using Twelve Data API

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:

GOOG Pandas Dataframe

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

Interactive GOOG chart

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!

💖 💪 🙅 🚩
midassss
midasSSS

Posted on September 6, 2020

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related