<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: midasSSS</title>
    <description>The latest articles on DEV Community by midasSSS (@midassss).</description>
    <link>https://dev.to/midassss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F464407%2Fa66660bc-5d40-471e-986e-3d669cd1d668.jpeg</url>
      <title>DEV Community: midasSSS</title>
      <link>https://dev.to/midassss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/midassss"/>
    <language>en</language>
    <item>
      <title>Real-time financial data streaming using WebSockets</title>
      <dc:creator>midasSSS</dc:creator>
      <pubDate>Sun, 20 Sep 2020 14:28:11 +0000</pubDate>
      <link>https://dev.to/midassss/real-time-financial-data-streaming-using-websockets-4phb</link>
      <guid>https://dev.to/midassss/real-time-financial-data-streaming-using-websockets-4phb</guid>
      <description>&lt;p&gt;This short article was written to cover the lack of any tutorial of how to simply begin receiving stocks, forex, and crypto quotes in under 5 minutes. We will mainly focus on Python implementation, however, the same logic can be easily extended to other languages.&lt;/p&gt;

&lt;p&gt;WebSockets might be a crucial part of the apps which rely on accurate real-time data, such as chart application, portfolio management, and algorithmic trading systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;We will be using the service &lt;a href="https://twelvedata.com" rel="noopener noreferrer"&gt;Twelve Data&lt;/a&gt;. Make sure to have your API Key upgraded to be eligible for the &lt;a href="https://twelvedata.com/prime" rel="noopener noreferrer"&gt;usage&lt;/a&gt; of WebSockets.&lt;/p&gt;

&lt;p&gt;For python users, install the library &lt;code&gt;pip install twelvedata&lt;/code&gt; - &lt;a href="https://github.com/twelvedata/twelvedata-python" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Python
&lt;/h2&gt;

&lt;p&gt;First things first, define the function which will be used when new data is received.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;on_event&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This function should perform any consecutive actions according to your logic: update the price, update a record, display the changes, etc.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Remember that all data received is in &lt;code&gt;json&lt;/code&gt; format or to be more precise a &lt;code&gt;dict&lt;/code&gt; object.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The main block should initialize the &lt;code&gt;TDClient&lt;/code&gt; object and perform the consecutive connection to the server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;twelvedata&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TDClient&lt;/span&gt;

&lt;span class="n"&gt;td&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;TDClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;your_api_key&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;ws&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;td&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;websocket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbols&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;BTC/USD&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;AAPL&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;EUR/USD&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;on_event&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;on_event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;keep_alive&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;WebSocket supports the following methods:&lt;br&gt;
&lt;code&gt;subscribe&lt;/code&gt; - new symbols to be included.&lt;br&gt;
&lt;code&gt;unsubscribe&lt;/code&gt; - remove old symbols from the subscription.&lt;br&gt;
&lt;code&gt;reset&lt;/code&gt; - unsubscribe from all symbols.&lt;br&gt;
&lt;code&gt;connect&lt;/code&gt; - open a new connection with the server.&lt;br&gt;
&lt;code&gt;disconnect&lt;/code&gt; - close existing connection with the server.&lt;br&gt;
&lt;code&gt;keep_alive&lt;/code&gt; - run an infinite loop to receive all the data.&lt;/p&gt;
&lt;h4&gt;
  
  
  Response
&lt;/h4&gt;

&lt;p&gt;In response, you will be getting an object with basic meta-information, tick price, and daily volume. E.g:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;event&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;price&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;symbol&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;BTC/USD&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;currency_base&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Bitcoin&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;currency_quote&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;US Dollar&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;exchange&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Binance&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Digital Currency&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;timestamp&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1600595462&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;price&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;10964.8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;day_volume&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;38279&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Do not forget about market open hours, for instance over the weekends only crypto markets are opened.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxoarjut6tysmohf0g5m1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxoarjut6tysmohf0g5m1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The average latency is about ~150ms, which makes the data reliable and applicable to any usage. Moreover, the single format allows flexibility in streaming data from across different types of assets.&lt;br&gt;
Now you can easily use it for your application, e.g. charting.&lt;/p&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Free Market Data for Python using Twelve Data API </title>
      <dc:creator>midasSSS</dc:creator>
      <pubDate>Sun, 06 Sep 2020 14:48:14 +0000</pubDate>
      <link>https://dev.to/midassss/free-market-data-for-python-using-twelve-data-api-4ij2</link>
      <guid>https://dev.to/midassss/free-market-data-for-python-using-twelve-data-api-4ij2</guid>
      <description>&lt;h1&gt;
  
  
  What is Twelve Data API?
&lt;/h1&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Nevertheless, Twelve Data allows us to begin using data at no cost without time constraints.&lt;/p&gt;

&lt;h1&gt;
  
  
  Getting Started
&lt;/h1&gt;

&lt;p&gt;The Twelve Data API provides the following features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OHLCV values in real-time and historical retrospective.&lt;/li&gt;
&lt;li&gt;Company data, such as earnings.&lt;/li&gt;
&lt;li&gt;Stream data into your app through WebSocket&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To begin install the Python library&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install twelvedata&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You will also need an API key that you can obtain in seconds &lt;a href="https://twelvedata.com/apikey"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Historical and Real-Time quotes
&lt;/h1&gt;

&lt;p&gt;To gather any kind of data you have to call the &lt;code&gt;TDClient&lt;/code&gt; module. Below is a simple example to retrieve &lt;code&gt;GOOG&lt;/code&gt; stock OHLCV values at the weekly interval:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;twelvedata&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TDClient&lt;/span&gt;

&lt;span class="n"&gt;td&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TDClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;td&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time_series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"GOOG"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"1week"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;as_pandas&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This will output something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---udYe5cQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6pra2hlta1pbg6l2i218.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---udYe5cQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6pra2hlta1pbg6l2i218.png" alt="GOOG Pandas Dataframe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By the way, there are a lot of parameters that might be passed to &lt;code&gt;time_series&lt;/code&gt;, which makes it possible to retrieve any kind of data at any intervals and dates.&lt;/p&gt;

&lt;h1&gt;
  
  
  Plot Charts
&lt;/h1&gt;

&lt;p&gt;There are two types of charting available. The first one is plotting the static charts using &lt;code&gt;matplotlib&lt;/code&gt; module. However, my fav is the dynamic chart based on &lt;code&gt;plotly&lt;/code&gt; library that allows the build complex charts even with technical indicators.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;td&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time_series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"GOOG"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"1week"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;with_aroon&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;with_stoch&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;with_ema&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time_period&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;as_plotly_figure&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_eh8_A_u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ty0xg5v0uri80qn3eohv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_eh8_A_u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ty0xg5v0uri80qn3eohv.png" alt="Interactive GOOG chart"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Export data
&lt;/h1&gt;

&lt;p&gt;Apart from &lt;code&gt;pandas.Dataframe&lt;/code&gt; you may also export data in &lt;code&gt;json&lt;/code&gt; and &lt;code&gt;csv&lt;/code&gt; formats.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;ts&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;td&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time_series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"GOOG"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interval&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"1week"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;as_json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;ts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;as_csv&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  Fundamentals
&lt;/h1&gt;

&lt;p&gt;Similar logic applies when you want to request company fundamentals.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;twelvedata&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;TDClient&lt;/span&gt;

&lt;span class="n"&gt;td&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TDClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;earnings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;td&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_earnings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;symbol&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"GOOG"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;outputsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;earnings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;as_pandas&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;#             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
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  Wrapping up
&lt;/h1&gt;

&lt;p&gt;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.&lt;br&gt;
Meanwhile, check out the &lt;a href="https://github.com/twelvedata/twelvedata-python"&gt;GitHub&lt;/a&gt; repo.&lt;/p&gt;

&lt;p&gt;Stay safe!&lt;/p&gt;

</description>
      <category>python</category>
      <category>datascience</category>
      <category>showdev</category>
      <category>github</category>
    </item>
  </channel>
</rss>
