65.9K
CodeProject 正在变化。 阅读更多。
Home

从 Alpha Vantage 获取股票市场数据

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2018年1月8日

CPOL

4分钟阅读

viewsIcon

33189

如何从 Alpha Vantage 下载股票市场数据。

首次发布于The Data Wrangler

作为一名股票交易员,我需要随时可用的股票市场数据来进行分析和可视化。这些数据对于决策至关重要,我经常将其渲染成图表以更好地理解。

免费的雅虎金融API曾是获取股票市场数据的首选。然而,自其停用以来,Alpha Vantage推出了一个新的股票API。它同样免费且非常易于使用。Alpha Vantage提供日线和分时数据,我创建了一个开源的命令行应用程序来下载这些数据。您也可以参考这篇文章,其中描述了股票API的标准和最佳实践——例如,根据拆股和股息调整历史股票价格。

本文介绍了alpha-vantage-cli。我将向您展示如何使用此工具下载股票市场数据。我将提供从命令行使用以及在Node.js JavaScript代码中将其作为API使用的示例。

以下是下载的CSV文件示例

Microsoft stock price history

目录

使用DocToc生成

获取Alpha Vantage API密钥

Alpha Vantage是免费的,但要使用它,您必须注册一个API密钥。请访问此链接进行注册。

后续示例使用的是“demo”API密钥,请注意,此密钥的使用次数非常有限。

使用命令行应用程序

您可以将alpha-vantage-cli用作命令行应用程序,将股票市场数据下载到CSV文件中。

Node.js安装

首先,您需要安装Node.js。这很简单,请参阅Node.js网站了解更多详情。

安装命令行应用程序

安装Node.js后,您可以通过运行以下命令通过npm安装该工具:

> npm install -g alpha-vantage-cli

这会将该工具全局安装,以便您可以在任何目录中运行它。

您可以使用--version参数检查其是否安装正确:

> alpha-vantage-cli --version

这应该会显示该工具的最新版本。还有一个--help参数,可以帮助您了解该工具的选项。

> alpha-vantage-cli --help

从命令行获取股票市场数据

最简单的用法如下:

> alpha-vantage-cli --type=<data-type> --symbol=<code-for-the-instrument> 
  --api-key=<your-api-key> 

以下示例下载微软的日线数据:

> alpha-vantage-cli --type=daily --symbol=MSFT --api-key=demo --out=MSFT-daily.csv

这会将数据下载到名为MSFT-daily.csv的文件中。有关日线数据外观的截图,请参见本文开头处的截图。

您也可以这样下载分时数据:

> alpha-vantage-cli --type=intraday --symbol=MSFT --api-key=demo --out=MSFT-intraday.csv

这会将数据下载到名为MSFT-intraday.csv的文件中。

分时数据看起来与日线数据相似

Microsoft intraday stock history

请注意日线数据和分时数据之间时间戳的差异。

还有其他各种选项,包括设置分时数据的间隔。请使用该工具的--help参数了解详情。

使用代码模块

alpha-vantage-cli也可以导入到Node.js脚本中,以便从代码中使用。

安装代码模块

要使用,请使用npm在您的Node.js项目中本地安装,如下所示:

npm install --save alpha-vantage-cli

从代码获取股票市场数据

以下是JavaScript代码文件中的使用示例。别忘了将API密钥替换为您自己的!

var AlphaVantageAPI = require('alpha-vantage-cli').AlphaVantageAPI;

var yourApiKey = 'demo';
var alphaVantageAPI = new AlphaVantageAPI(yourApiKey, 'compact', true);

alphaVantageAPI.getDailyData('MSFT')
    .then(dailyData => {
        console.log("Daily data:");
        console.log(dailyData);
    })
    .catch(err => {
        console.error(err);
    });

上面的示例代码获取日线数据。获取分时数据几乎相同,只需使用getIntradayData函数即可。alpha-vantage-cli也可以从TypeScript代码中使用,有关更多示例,请参阅Github页面。

获取源代码

alpha-vantage-cli的源代码可在Github上获取:

需要支持?

您是否需要帮助入门alpha-vantage-cli?您是否更愿意使用桌面应用程序而不是命令行工具?请成为The Data Wrangler的赞助者,我很乐意为您提供帮助。

它是如何工作的?

alpha-vantage-cli使用request-promise从Alpha Vantage股票历史API下载数据。

手动下载数据相当容易。您可以尝试在浏览器中打开以下链接来自己操作:

该链接下载了微软的近期价格历史记录,格式为CSV文件。它使用的是Alpha Vantage的demo API密钥。要将其用于任何其他公司,您需要注册自己的API密钥

alpha-vantage-cli提供了一个简单的命令行工具和API作为REST API的接口。这允许您编写批处理文件来下载股票数据,或者如果您需要更复杂的功能,可以从Node.js脚本直接调用它。

结论

在这篇文章中,我介绍了alpha-vantage-cli,这是我用于从Alpha Vantage下载股票数据的开源命令行工具和API。

您已经学会了如何获取股票数据,以便在自己的分析和可视化中使用,并支持您的股票交易决策。

资源

alpha-vantage-cli

历史

  • 2018年1月8日:初始版本
© . All rights reserved.