dirkolbrich/yahoo-finance-query

此包已废弃,不再维护。未建议替代包。

用于查询Yahoo Finance API的PHP类

v1.0.5 2016-10-25 07:34 UTC

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数据。默认的returnTypearray

配置设置必须作为数组传递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();

以下查询方法可用

  1. symbolSuggest($string)

    通过YAHOO.Finance.SymbolSuggest.ssCallback查询符号建议

    $string = 'basf';
    $data = $query->symbolSuggest($string)->get();
  2. 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();
  3. 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 获取完整的历史报价集。

  4. intraDay($symbol [, $period, $param])

    查询 finance.yahoo.com 以获取日内报价。符号必须作为字符串传递。

    $period 是可选的,默认设置为 1d。可以检索到最近 15 天的日内报价。

    $param 是可选的,默认设置为 quote。有关其他选项,请参阅 $intraDayParams 变量。

    $symbol = 'bas.de';
    $period = '5d';
    $data = $query->intraDay($symbol, $period)->get();
  5. stockInfo($symbol)

    查询 finance.yahoo.com 以获取基本的股票信息。必须以字符串的形式传递符号。

    $symbol = 'bas.de';
    $data = $query->stockInfo($symbol)->get();
  6. indexList(array $symbol)

    查询一个返回组成部分的符号和名称的指数。可以传递多个符号作为数组。

    有关更多世界指数的符号,请参阅 http://finance.yahoo.com/intlindices?e=europe。符号中必须包含 caret ^ 字符。

    $symbol = array('^GDAXI');
    $data = $query->indexList($symbol)->get();
  7. 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

Matthias Brusdeylins 的不同 API 端点概述(德语)

Thomas Belser 的 YQL 控制台教程(德语)