如何测试股票市场(NYSE)目前是否开市/休市?

问题描述 投票:0回答:3

我正在编写一个与股票市场相关的应用程序,并希望包含一个指示股票市场(NYSE)当前是否开放/关闭的指标。 iPhone 上的 Apple“股票”应用程序包含此信息。我认为股票应用程序正在测试雅虎的某些内容,因为报价来自那里,并且它们直接链接到雅虎财经。然而,对于我在 YQL、StackOverflow 和网络上的所有搜索,我找不到直接查询。

有办法查询NYSE当前是否开盘/休市吗?

谢谢,

达米安

iphone objective-c ios ios5
3个回答
7
投票

维基百科

提供

纽约证券交易所周一至周五上午 9:30 开放交易 – 东部时间下午 4:00,交易所宣布的假期除外 提前。

您可以轻松地对其进行硬编码,或者在数据库中创建一个填充假期的表。然后使用设备的时间和时区来查看 NYSE 是否开放或关闭。


6
投票

Apple 似乎提供了包含此信息的服务。

示例/tl;博士:

拨打以下

curl
电话:

curl "http://wu-quotes.apple.com/dgw?imei=42&apptype=finance" -H "Content-type: text/xml" -d "<?xml version='1.0' encoding='utf−8'?><request devtype='Apple_OSX' deployver='APPLE_DASHBOARD_1_0' app='YGoAppleStocksWidget' appver='unknown' api='finance' apiver='1.0.1' acknotification='0000'><query id='0' timestamp='`date +%s000`' type='getquotes'><list><symbol>GE</symbol></list></query></request>"

(您可能需要用不同的随机数替换

imei
参数)

这将返回类似于以下内容的响应(我已格式化 XML 并删除了不相关的部分):

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result type="getquotes" timestamp="1405539220">
    <list count="1" total="1">
      <quote>
        ...
        <!-- Verify that this is the exchange you are interested in -->
        <exchange>NYSE</exchange>
        ...
        <!-- 0 means market is closed, anything else means its open -->
        <status>1</status>
        ...
      </quote>
    </list>
  </result>
</response>

查找

<status>
元素。如果值为
0
,则 NYSE 休市,否则 NYSE 开市。

详情

Apple 提供了一项服务,MacOS 股票仪表板小部件使用该服务来确定市场是开盘还是收盘(大概 iPhone 应用程序也使用它)。据我所知,这项服务没有记录,但这个答案试图记录与您的问题相关的信息。

该服务位于以下端点 URL:

http://wu-quotes.apple.com/dgw?imei=(UID)&apptype=finance

(您可以简单地使用随机数作为UID)

该服务实际上是为了获取股票报价信息,但在响应中,有一个

status
属性,该属性似乎对应于股票交易的市场是开放还是关闭。要拨打电话,请将以下 XML 发布到其中:

<?xml version='1.0' encoding='utf−8'?>
<request devtype='Apple_OSX' deployver='APPLE_DASHBOARD_1_0' app='YGoAppleStocksWidget' appver='unknown' api='finance' apiver='1.0.1' acknotification='0000'>
  <query id='0' timestamp='{{millis since epoch}}' type='getquotes'>
    <list>
      <symbol>{{stock symbol}}</symbol>
      <!-- More symbols -->
    </list>
  </query>
</request>

(确保内容类型标头设置为“text/xml”)。

既然您表示您对 NYSE 感兴趣,那么您就会发布像 GE 这样的公司的符号(该公司在 NYSE 交易,如我上面的示例所示)。例如,如果您对纳斯达克感兴趣,您可以发布一家在纳斯达克上市的公司(例如 AAPL)。

您收到的回复应采用以下格式:

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <result type="getquotes" timestamp="1405539220">
    <list count="1" total="1">
      <quote>
        <!-- quote details here -->
      </quote>
      <!-- more quotes here if you submitted more than one symbol -->
    </list>
  </result>
</response>

<quote>
元素内:

  1. 查找
    <exchange>
    元素,确保其与您要查找的交易所匹配(例如“NasdaqGS”、“NYSE”)。
  2. 查找
    <status>
    元素。值
    0
    表示股市休市。任何其他值都表示它们是开放的。

股票小部件会迭代其配置的所有交易品种,并当且仅当所有报价具有非零状态时才认为市场开盘。

有关更多详细信息,请参阅

/System/Library/WidgetResources/.parsers/stocksParser.js
,每台 Mac 上都应提供该功能。


0
投票

Finnhub.io 提供此功能。具体来说,该函数的 Python 接口如下所示:

导入finnhub finnhub_client = finnhub.Client(api_key="") 打印(finnhub_client.market_status(交换='美国'))

您可以从 Finnhub 获取免费的身份验证密钥,并将其插入 api_key="" 参数中。我有理由相信免费密钥将赋予您使用此功能的权限。

© www.soinside.com 2019 - 2024. All rights reserved.