dirkolbrich / yahoo-finance-query
用于查询Yahoo Finance API的PHP类
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2023-05-05 14:44:47 UTC
README
信息提示:这是一个废弃项目。
鉴于Yahoo最新的API更改(2017年3月),以及我越来越多地转向Golang,我将不再维护此PHP包。欢迎fork并进行自己的调整。
感谢您的关注。我将永久保留这些文件供您和我进行文档记录。我在自己的网站空间上的公开代码示例将被终止。
我特别感谢所有贡献者。您教会了我很多。
YahooFinanceQuery
用于查询Yahoo Finance API的PHP类。
功能
- 通过Yahoo.Finance.Symbol.AutoSuggest搜索符号
- 查询符号的当前报价
- 查询单个符号的历史报价
- 查询单个符号的日内报价
- 查询基本股票信息
- 查询与指数符号相关的股票列表
- 查询与相关行业相关的全部行业列表
示例
您可以在/example
下找到example.php文件。
安装
在项目根目录的composer.json
中要求
{ "require": { "dirkolbrich/yahoo-finance-query": "dev-master" } }
实现
非常简单
use DirkOlbrich\YahooFinanceQuery\YahooFinanceQuery; // [...] $query = new YahooFinanceQuery;
或者静态的
use DirkOlbrich\YahooFinanceQuery\YahooFinanceQuery; // [...] YahooFinanceQuery->make();
配置
YahooFinanceQuery可以被配置为返回数组或原始JSON数据。默认的returnType
是array
。
配置设置必须作为数组传递array('returnType' => 'array')
或array('returnType' => 'json')
。
在初始化时
$query = new YahooFinanceQuery(array('returnType' => 'json'));
或者静态的
YahooFinanceQuery->make(array('returnType' => 'json'));
在运行时
$query = new YahooFinanceQuery; $query->config(array('returnType' => 'json'));
可以使用以下方法检索当前的配置设置
$query->getConfig();
要检索原始cURL结果,请使用raw()
作为查询的附加部分。必须在实际查询方法之前调用此方法。
$query->raw()->quote()->get();
要强制通过YQL API(如果可能)进行查询,请使用查询字符串中的yql()
方法。必须在实际查询方法之前调用此方法。默认设置为不使用YQL,因为我认为YQL查询不可靠,并且结果通常被截断。
$query->yql()->quote()->get();
使用
查询是可连的。使用get()
方法检索结果。
$data = $query->method()->get();
以下查询方法可用
-
symbolSuggest($string)
通过YAHOO.Finance.SymbolSuggest.ssCallback查询符号建议
$string = 'basf'; $data = $query->symbolSuggest($string)->get();
-
quote(array $symbol [, array $params])
查询给定符号和给定参数的当前报价。
传递的参数
$symbol
必须是一个数组。可以传递多个符号。传递的参数
$params
是可选的,也必须是一个数组。它接受参数作为文字或作为标签。请参阅类定义中的$quoteParams
变量作为参考。如果$params
为空,则查询将使用所有可能的参数。默认情况下,将查询'符号'、'最后交易时间'和'最后交易日期'。结果数组将添加一个统一的UTC '最后交易时间戳'。
$symbol = array('bas.de'); $params = array('LastTradePriceOnly', 'x', 'c1'); $data = $query->quote($symbol, $params)->get();
-
historicalQuote(array $symbol [, $startDate, $endDate, $param])
根据给定的符号和日期范围查询历史报价。
每个查询只能传递一个
$symbol
,并且必须是字符串。$startDate
和$endDate
必须是 YYYY-MM-DD 格式。如果没有传递日期,则查询将获取所有可用的历史报价。如果只传递一个日期,另一个将设置为最大可用值。$param
默认设置为d
= 每日。有关其他选项,请参阅$historicalQuoteParams
变量。$symbol = array('bas.de'); $startDate = 2013-07-26; $endDate = 2014-01-06; $param = 'd'; $data = $query->historicalQuote($symbol, $startDate, $endDate, $param)->get();
建议不要使用历史报价的
yql()
方法,因为 YQL 控制台只允许最多 365 个单独的结果报价。无法通过 YQL 获取完整的历史报价集。 -
intraDay($symbol [, $period, $param])
查询 finance.yahoo.com 以获取日内报价。符号必须作为字符串传递。
$period
是可选的,默认设置为1d
。可以检索到最近 15 天的日内报价。$param
是可选的,默认设置为quote
。有关其他选项,请参阅$intraDayParams
变量。$symbol = 'bas.de'; $period = '5d'; $data = $query->intraDay($symbol, $period)->get();
-
stockInfo($symbol)
查询 finance.yahoo.com 以获取基本的股票信息。必须以字符串的形式传递符号。
$symbol = 'bas.de'; $data = $query->stockInfo($symbol)->get();
-
indexList(array $symbol)
查询一个返回组成部分的符号和名称的指数。可以传递多个符号作为数组。
有关更多世界指数的符号,请参阅 http://finance.yahoo.com/intlindices?e=europe。符号中必须包含 caret
^
字符。$symbol = array('^GDAXI'); $data = $query->indexList($symbol)->get();
-
sectorList()
查询完整的行业列表及其对应的行业。
此函数为静态函数,没有参数。
$data = $query->sectorList()->get();
以这种形式返回数组
Array ( [0] => Array ( [name] => Basic Materials [industries] => Array ( [0] => Array ( [name] => Agricultural Chemicals [id] => 112 ) [1] => Array ( [name] => Aluminum [id] => 132 ) ... ) ) [1] => Array ( [name] => Conglomerates [industries] => Array ( ... ) ) )
资源
一些有教育意义的博客文章和网站
Yahoo YQL 主页
关于此主题的博客文章
Joseph D. Purcell 的博客文章,概述了金融 API
www.gummy-stuff.org 解释了 Yahoo Finance .csv API
- http://www.gummy-stuff.org/Yahoo-data.htm 更新:Yahoo 对 Ponzo 先生的公开可用的 API 文档进行了骚扰,并声称侵犯了他们的 TOS。但多亏了互联网档案馆,该网站的最后一个快照可在 http://web.archive.org/web/20140527154306/http://www.gummy-stuff.org/Yahoo-data.htm 获取。
Matthias Brusdeylins 的不同 API 端点概述(德语)
Thomas Belser 的 YQL 控制台教程(德语)