使用python获取股票数据-不使用quandl

时间:2018-07-21 20:14:15

标签: python r stockquotes

我使用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 = '.'))
}

我只知道Python中的pandas_datareader可以实现类似的功能。不幸的是,由于yahoo和google API发生了变化,此软件包被破坏了。这段代码:

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 个答案:

答案 0 :(得分:8)

Alpha Vantage是另一个很好的免费资源,它以RESTful JSON和CSV API的形式提供实时股票报价。这是API documentation

设置

设置非常简单。您所需要做的就是从here生成一个免费的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)

输出:

Output

Source获取代码和图片。

修改

更改了一些代码。请参阅注释以进行更改。

答案 1 :(得分:4)

尝试Manager Marketplace Jan Feb Mar mgr1 US 312 546 987 mgr1 DE 546 329 715 mgr2 FR 267 195 546

fix_yahoo_finance

答案 2 :(得分:2)

Quandl具有免费和付费等级。您绝对可以从Quandl获得免费的股票数据,并且可以通过他们的api轻松实现。 pip install quandlconda 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)

他们的网站上还有大量文档。和多种来源。

退房:

对于初学者。