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

Dam*_*sso 2 iphone objective-c ios ios5

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

有没有办法查询纽约证券交易所当前是开放还是关闭?

谢谢,

达米安

aly*_*lid 6

维基百科提供

纽约证券交易所开放时间为美国东部时间周一至周五上午9:30至下午4:00,但交易所提前申报的假期除外.

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


Jac*_*eow 6

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>"
Run Code Online (Sandbox Code Playgroud)

(您可能必须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>
Run Code Online (Sandbox Code Playgroud)

寻找<status>元素.如果该值为0,则纽约证券交易所关闭,否则纽约证券交易所开盘.

细节

Apple提供了一项服务,MacOS Stocks Dashboard小部件使用该服务来确定市场是开放还是关闭(可能是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>
Run Code Online (Sandbox Code Playgroud)

(确保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>
Run Code Online (Sandbox Code Playgroud)

<quote>元素内:

  1. 寻找<exchange>元素以确保它与您正在寻找的交易所匹配(例如,"NasdaqGS","NYSE").
  2. 寻找<status>元素.0股票市场的价值已经关闭.任何其他价值意味着它们是开放的.

股票小部件遍历其配置的所有符号,并且当且仅当所有报价具有非零状态时才考虑市场开放.

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