radicalloop/yahoo-finance-query

一个用于查询 Yahoo Finance API 的 PHP 类

v1.0.6 2017-06-07 13:10 UTC

This package is auto-updated.

Last update: 2024-08-29 04:42:59 UTC


README

一个用于查询 Yahoo Finance API 的 PHP 类。

特性

  • 通过 Yahoo.Finance.Symbol.AutoSuggest 搜索符号
  • 查询符号的当前报价
  • 查询单个符号的历史报价
  • 查询单个符号的日内报价
  • 查询基本股票信息
  • 查询与指数符号相关的股票列表
  • 查询与相关行业相关的所有行业列表

示例

您可以在 http://code.dirkolbrich.de/YahooFinanceQuery/ 测试 example.php

安装

在项目根目录的 composer.json 中通过 require 引用

{
    "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 为空,则查询将使用所有可能的参数。

    默认将查询 'Symbol'、'LastTradeTime' 和 'LastTradeDate' 参数。结果数组将添加一个统一的 UTC 'LastTradeTimestamp'。

    $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 = daily。有关其他选项,请参阅 $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。符号中必须包含撇号 ^

    $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 控制台教程(德语)