Привет, Хабр! Представляю вашему вниманию перевод статьи «Исторические данные о ценах на акции в Python» Ишан Шах.
Статья о том, как получить ежедневные исторические данные по акциям с помощью yfinance и минутные данные с помощью Alpha vantage.
Как вы знаете, акции являются очень волатильными инструментами, и очень важно тщательно анализировать поведение цены, прежде чем принимать какие-либо торговые решения.
Что ж, сначала вам нужно получить данные, и в этом может помочь Python. Данные о запасах можно загрузить с помощью различных пакетов.
В этой статье речь пойдет о Yahoo Finance и Alpha Vantage.
Yahoo Финансы
Для начала давайте попробуем пакет yfianance. Его можно установить с помощью команды pip install yfinance. В приведенном ниже коде показано, как получить данные по AAPL за период с 2016 по 2019 год и отобразить скорректированную цену закрытия (скорректированную цену закрытия для дивидендов и дроблений) на графике.
# 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()
Ну а если вам нужно получить несколько долей, то нужно внести небольшое дополнение в код. DataFrame используется для хранения значений.
Используя пакет matplotlib и полученные данные, вы можете построить график дневной доходности.
# 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()
# 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()
В стоимости российских акций есть небольшая тонкость.
К названию акции добавляется точка и МЕ заглавными буквами.
Спасибо специалистам SmartLab за советы.
Получение минутных данных с помощью Alpha vantage
К сожалению, бесплатная версия Yahoo Finance не позволяет получать данные с частотой реже, чем ежедневно.
Для этого вы можете использовать пакет Alpha vantage, который позволяет получать такие интервалы, как 1 минута, 5 минут, 15 минут, 30 минут, 60 минут.
Эти данные позже можно проанализировать, создать торговую стратегию и оценить эффективность с помощью пакета pyfolio. Он позволяет оценить коэффициент Шарпа, коэффициент Сортино, максимальную просадку и многие другие необходимые показатели.
надеюсь мой перевод оригинальный статьи будет вам полезен.
Код проверен и все работает. Но пока для меня остается вопрос о возможности использования Alpha vantage для российского рынка.
Теги: #Машинное обучение #python #Финансы в ИТ #python торговля на фондовой бирже инвестиции
-
Газохимия
19 Oct, 24 -
Модилиани, Франко
19 Oct, 24 -
Выдержка Из Лицензии Браузера Google Chrome
19 Oct, 24 -
Управление Продуктами B2B: По Итогам Встречи
19 Oct, 24 -
Увеличьте Свой Сайт. Электронные Версии
19 Oct, 24