Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python获取股票数据-不使用quandl_Python_R_Stockquotes - Fatal编程技术网

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

使用python获取股票数据-不使用quandl,python,r,stockquotes,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

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

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,但这是一项付费服务。谢谢。

Quandl有免费和付费两种级别。您完全可以从Quandl获得免费的股票数据,并且可以通过他们的api轻松地做到这一点。
pip安装quandl
conda安装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)
他们的网站上也有大量的文档。和多个来源

退房:

对于初学者来说。

是另一个伟大的免费源代码,它以RESTful JSON和CSV 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)
输出:

代码和图片

编辑


更改了一些代码。有关更改,请参阅评论。

尝试
fix\u yahoo\u 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

我知道,谢谢,但只有很少的股票是免费的。对我来说毫无意义。你也可以得到一些每月的股票数据。而且,对投资或研究来说相对无用。为什么要投票呢?你可能会喜欢这个。它有多种方法可以在数据框中显示股价数据。谢谢。这很好,但是请更改列:data['4.close'].plot(),我注意到这个列中缺少Volume列。我也很好奇,例如,我如何从时间开始(所选股票)获取微软的每日谷物数据(MSFT)。查看了这个包的文档,但找不到答案…我不是100%确定,因为我没有太多使用Alpha Vantage,但我认为您只能检索过去20年的数据。我肯定会试着问一个单独的问题,看看是否有人知道。据我所知,Alpha_Vantage有很多历史都不超过5年。此外,您还可以将“outputsize=full”参数添加到API调用中,以显示20年数据的所有信息。最后,日内时间序列不包含“体积”列,但其他时间序列(如time\u series\u WEEKLY)包含。应在每个时间序列下的文件中说明。
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