如何测试股票市场(纽约证券交易所)目前是否开放/关闭?

时间:2012-02-24 10:16:57

标签: iphone objective-c ios ios5

我正在撰写与股票市场相关的应用程序,并希望包含股票市场(纽约证券交易所)目前是否开放/关闭的指标。 iPhone上的Apple“Stocks”应用程序包含此信息。我认为股票应用程序正在测试来自雅虎的东西,因为报价来自那里,他们直接链接到雅虎财经。但是,对于我在YQL,StackOverflow和Web上的所有搜索,我找不到直接查询。

有没有办法查询纽约证券交易所当前是开仓还是平仓?

谢谢,

达明

2 个答案:

答案 0 :(得分:6)

wikipedia

提供
  

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

您可以轻松地对此进行硬编码,或者在填充假期的数据库中设置表格。然后使用设备的时间和时区来查看纽约证券交易所是开放还是关闭。

答案 1 :(得分:5)

Apple似乎提供有此信息的服务。

实施例/ TL; DR:

进行以下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,则纽约证券交易所关闭,否则纽约证券交易所开盘。

详细

Apple提供了一项服务,MacOS Stocks Dashboard小部件使用该服务来确定市场是开放还是关闭(可能是iPhone应用程序也使用它)。据我所知,此服务没有记录,但此答案会尝试记录与您的问题相关的信息。

该服务位于以下端点网址:

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>

(确保Content-type标头设置为“text / xml”)。

既然您表示您对纽约证券交易所感兴趣,那么您就会发布像GE这样的公司的代码(在纽约证券交易所交易,如上例所示)。如果您对纳斯达克感兴趣,那么您将发布一家纳斯达克交易公司(例如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表示股票市场已关闭。任何其他价值都意味着它们是开放的。
  3. Stocks小部件遍历其配置的所有符号,并且当且仅当所有引号具有非零状态时才认为市场是开放的。

    有关详细信息,请参阅每个Mac上应该提供的/System/Library/WidgetResources/.parsers/stocksParser.js