Obtenir des cotations boursières en utilisant Python

Bonjour, Habr! Je vous présente la traduction de l'article «Historical Stock Price Data in Python» par Ishan Shah.

Un article sur la façon d'obtenir des données historiques quotidiennes sur les actions en utilisant yfinance et des données minute en utilisant alpha vantage.


Comme vous le savez, les actions sont un instrument très volatil et il est très important d'analyser soigneusement le comportement des prix avant de prendre des décisions commerciales. Eh bien, vous devez d'abord obtenir les données et python peut vous aider.

Les données d'échange peuvent être téléchargées à l'aide de divers packages. Cet article portera sur Yahoo Finance et Alpha Vantage.

Yahoo finance


Tout d'abord, essayez le package yfianance. Il peut être installé à l'aide de la commande pip install yfinance. Le code ci-dessous montre comment obtenir les données pour AAPL de 2016 à 2019 et construire le prix de clôture ajusté (prix de clôture ajusté pour les dividendes et le fractionnement) sur le graphique.

# Import the yfinance. If you get module not found error the run !pip install yfianance from your Jupyter notebook
import yfinance as yf

# Get the data for the stock AAPL
data = yf.download('AAPL','2016-01-01','2019-08-01')

# Import the plotting library
import matplotlib.pyplot as plt
%matplotlib inline

# Plot the close price of the AAPL
data['Adj Close'].plot()
plt.show()

image

Eh bien, si vous devez obtenir plusieurs partages, vous devez faire un petit ajout au code. Un DataFrame est utilisé pour stocker des valeurs. En utilisant le package matplotlib et les données reçues, vous pouvez créer un graphique de rentabilité quotidien.

# Define the ticker list
import pandas as pd
tickers_list = ['AAPL', 'WMT', 'IBM', 'MU', 'BA', 'AXP']

# Import pandas
data = pd.DataFrame(columns=tickers_list)

# Fetch the data

for ticker in tickers_list:
    data[ticker] = yf.download(ticker,'2016-01-01','2019-08-01')['Adj Close']

# Print first 5 rows of the data
data.head()

image

# Plot all the close prices
((data.pct_change()+1).cumprod()).plot(figsize=(10, 7))

# Show the legend
plt.legend()

# Define the label for the title of the figure
plt.title("Adjusted Close Price", fontsize=16)

# Define the labels for x-axis and y-axis
plt.ylabel('Price', fontsize=14)
plt.xlabel('Year', fontsize=14)

# Plot the grid lines
plt.grid(which="major", color='k', linestyle='-.', linewidth=0.5)
plt.show()

image

Pour les valeurs sur les actions russes, il y a une légère subtilité. Un point et des majuscules ME sont ajoutés au nom du stock. Merci d'experts sur le smartlab invité.

image

Obtenez des données infimes avec Alpha vantage


Malheureusement, la version gratuite de Yahoo Finance ne vous permet pas de recevoir des données avec une fréquence inférieure au quotidien. Pour cela, vous pouvez utiliser le package Alpha vantage, qui vous permet d'obtenir des intervalles tels que 1 min, 5 min, 15 min, 30 min, 60 min.

image

À l'avenir, ces données pourront être analysées, créer une stratégie de trading et évaluer l'efficacité à l'aide du package pyfolio. Dans ce document, vous pouvez évaluer le ratio de Sharpe, le coefficient de Sortino, le rabattement maximal et de nombreux autres indicateurs nécessaires.

J'espère que ma traduction de l' article original vous sera utile. Le code a été vérifié et tout fonctionne. Mais pour l'instant, la question pour moi est la possibilité d'utiliser Alpha vantage pour le marché russe.

Source: https://habr.com/ru/post/undefined/


All Articles