在进行数据分析和可视化时,股市数据是决策过程中不可或缺的一部分。为了更好地理解这些数据,经常将其渲染成图表。尽管Yahoo金融API已经停止服务,但Alpha Vantage提供了一个新的免费股市API,它同样易于使用,并且提供每日和日内数据。创建了一个开源的命令行应用程序来下载这些数据。此外,还可以参考描述股市API标准和最佳实践的文章,例如,根据股票分割和股息调整历史股价。
本文将介绍名为alpha-vantage-cli的工具。将展示如何使用这个工具从命令行下载股市数据,并提供从命令行和Node.jsJavaScript代码中使用它的示例。下载的CSV文件内容如下:
Alpha Vantage是免费的,但要使用它,必须注册一个API密钥。请按照注册。以下示例使用的是'demo' API密钥,请意识到这有非常有限的使用次数。
可以使用alpha-vantage-cli作为命令行应用程序下载股市数据到CSV文件。
首先,需要安装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= --symbol= --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的文件中。日内数据的外观与每日数据相似:
注意每日和日内数据的时间戳差异。还有其他各种选项,包括设置日内数据的间隔。请使用工具的--help参数获取详细信息。
alpha-vantage-cli也可以导入到Node.js脚本中从代码中使用。
要使用,请在Node.js项目中使用npm本地安装:
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下载数据。手动下载数据相当简单。可以尝试自己通过在浏览器中打开以下链接: