получить данные запасов с помощью python-не используя quandl
у меня нет проблем с использованием пакета R quantmod, который использует Yahoo для получения данных о запасах:
get_stock_prices <- function(target, return_format = "tibble", ...) {
# Get stock prices
print(target)
stock_prices_xts <- getSymbols(Symbols = target, auto.assign = FALSE, ...)
# Rename
names(stock_prices_xts) <- c("Open", "High", "Low", "Close", "Volume", "Adjusted")
# Return in xts format if tibble is not specified
if (return_format == "tibble") {
stock_prices <- stock_prices_xts %>%
as_tibble() %>%
rownames_to_column(var = "Date") %>%
mutate(Date = ymd(Date))
} else {
stock_prices <- stock_prices_xts
}
write.csv(stock_prices, file = paste(target, "csv", sep = '.'))
}
Я знаю только pandas_datareader в Python, чтобы достичь чего-то подобного. К сожалению, этот пакет сломан, поскольку API yahoo и google изменились. Этот код:
import pandas_datareader as pdr
panel_data = pdr.get_data_yahoo('MSFT')
результаты:
Yahoo Actions has been immediately deprecated due to large breaks in the API without the
introduction of a stable replacement. Pull Requests to re-enable these data
connectors are welcome.
есть ли в настоящее время рабочий пакет Python для достижения вышеуказанного. Я знаю о quandl, но это платная услуга. Спасибо.
3 ответов
Альфа Vantage еще один отличный источник, который является бесплатным и предоставляет котировки акций в реальном времени как RESTful JSON и CSV API. Вот это документация по API для него.
настройка
это довольно просто настроить. Все, что вам нужно сделать, это создать бесплатный ключ API из здесь а затем установите их модуль вместе с matplotlib
pip install matplotlib
pip install alpha_vantage
примеры
Вы можете проверить примеры на их странице документации,но я также перечислю несколько здесь.
вот код, который я нашел в интернете:
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['4. close'].plot()
plt.title('Stock chart')
plt.show()
symbol=raw_input("Enter symbol name:")
stockchart(symbol)
выход:
источник для кода и изображения.
редактировать
изменены некоторые код вокруг. Обратитесь к комментариям к переменам.
Quandl имеет бесплатные и платные уровни. Вы можете абсолютно бесплатно получить данные о запасах от Quandl, и вы можете сделать это легко через их api. Либо pip install quandl
или conda install quandl
. Все, что вам нужно сделать-это зарегистрироваться на бесплатный аккаунт и получить ключ API. Потом что-то вроде этого.
import quandl
quandl.ApiConfig.api_key = "YOUR_API_KEY"
df = quandl.get_table("WIKI/PRICES", ticker = ["MSFT"],
qopts = {"columns": ["date", "ticker", "adj_open", "adj_close"]},
paginate=True)
там тонны документации на их сайте. И множество источников.
проверить:
https://blog.quandl.com/stock-market-data-ultimate-guide-part-1.
https://www.quandl.com/search?filters=%5B%22Free%22%2C%22Equities%22%5D.
Для начала.
попробовать fix_yahoo_finance
:
from pandas_datareader import data as pdr
import fix_yahoo_finance as yf
data = yf.download("MSFT", start="2017-01-01", end="2017-04-30")
print(data)
[*********************100%***********************] 1 of 1 downloaded
Open High ... Adj Close Volume
Date ...
2017-01-03 62.790001 62.840000 ... 60.664047 20694100
2017-01-04 62.480000 62.750000 ... 60.392612 21340000
2017-01-05 62.189999 62.660000 ... 60.392612 24876000
2017-01-06 62.299999 63.150002 ... 60.916084 19922900
2017-01-09 62.759998 63.080002 ... 60.722206 20256600
2017-01-10 62.730000 63.070000 ... 60.702820 18593000