查询以检索一天的股票报价变化

Query to retrieve stock quotes variation from a single day

我是 YQL 新手,我找到了从股票中检索单引号的查询

select * from yahoo.finance.quote symbol = "YHOO"

和另一个获取相同信息但在日期范围内的查询

select * from yahoo.finance.historicaldata symbol = "YHOO" and startDate = "2016-09-01" and endDate = "2016-09-22"

我想不通的是:我们如何从一整天的交易中检索报价?

我目前正在使用 Yahoo 财经应用程序并注意到它们提供了关于价格变化的良好图形,所以我认为有一种方法可以实现它。

我也尝试阅读 yql tables 存储库,但在我使用的两个 table 上,没有(至少是明确的)关于如何通过小时范围的线索。

您可以通过直接查询 Yahoo Finance API 端点(而不是通过 YQL)并接收 JSON 格式的列表来检索一天的完整报价。

终点是http://chartapi.finance.yahoo.com/instrument/1.0/$symbol/chartdata;type=$type;range=$range/json/,其中:

  • $symbol 是股票代码,例如AAPL 苹果或 BAS.DE 巴斯夫在 Xetra 交易
  • $type是查询的类型,可以查询quotesmaclosevolume
  • $range1d5d10d15d
  • 所需的最晚日期

一个示例查询是 http://chartapi.finance.yahoo.com/instrument/1.0/aapl/chartdata;type=quote;range=1d/json/ 它为您提供了最后一天 AAPL 的所有报价。

据我所知,您只能查询最近15天的行情。我还没有找到查询过去某天的方法。

只是我以自我为中心的提示:查看我的 PHP 包 YahooFinanceQuery on Github,它使用上述查询的实现并处理返回的 JSON 以过滤结果。

作为对我之前回答的 update/extension,我找到了一个新的 API 端点来下载每日报价。 雅虎在 2017 年初更改了他们的 API 端点。

新端点是: https://query1.finance.yahoo.com/v8/finance/chart/{$symbol}?range={$range}&interval={$interval},其中:

  • $symbol 是股票代码,例如Apple 的 AAPL
  • $range 是查询的期望范围,允许的参数是 [1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max]
  • $interval 是所需的报价间隔,例如每 5 分钟,允许的参数为 [1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo]

例如:https://query1.finance.yahoo.com/v8/finance/chart/AAPL?range=10d&interval=1m 您收到过去 10 个交易日 AAPL 股票的 OHLCV 报价,间隔为 1 分钟。全部采用 JSON 格式。

并非所有 $range 参数都会 return 指定 $interval 的结果,但会 return 最接近的可能组合。例如,"max" 范围将 return 所有具有“1mo”间隔的报价。