In this tutorial, we would understand how to write a simple python script to plot live stock chart. In the previous tutorials, we have fetched data using Google API, but as a matter of fact Google has recently deprecated it’s API. Also, Yahoo finance API is no longer in use. In order to fetch stock data, we would use Alpha Vantage API in this script. This API is free to use, and can fetch real-time and historical data from all popular exchanges in the world. Check the API documentation here.
Check out all the Python related tutorials in the below link:
Generate API key from Alpha Vantage website using below link:
Once the API key is generated, open command prompt and copy past the below commands (one by one) to install alpha_vantage and matplotlib modules:
pip install alpha_vantage pip install matplotlib
Python Script to plot Live Stock Chart
from alpha_vantage.timeseries import TimeSeries import matplotlib.pyplot as plt import sys def stockchart(symbol): ts = TimeSeries(key='your_key', output_format='pandas') data, meta_data = ts.get_intraday(symbol=symbol,interval='1min', outputsize='full') print data data['close'].plot() plt.title('Stock chart') plt.show() symbol=raw_input("Enter symbol name:") stockchart(symbol)
Here is the output of this script when executed from PyCharm:
At the bottom left of the output screen you can see the options to zoom-in and zoom-out, and scroll through the chart.
Now, let’s understand the code logic and see how it works
The first few import statements are to use the modules we installed in previous step. Next, there is a function where we fetch the intraday data for the symbol entered. Please note that we have use the API key value from Alpha Vantage. Finally the line chart is plotted using the ‘close’ values in the time series. Similarly you can also plot open, high , low and volume data.
You can explore the Alpha Vantage API documentation, and there are literally lot many features you can make use of. The best thing is that the API usage is free of cost, which is hard to find anywhere else. Let us know in comments section if you have any queries.