python – YQL选项到期

我正在迁移一些Yahoo Finance CSV /屏幕抓取界面以使用YQL,并且正在努力使用yahoo.finance.options表.如果我查询给定符号的所有选项,我找不到与选项关联的到期日期.如果我查询符号和到期,那么我找到与链相关的到期日期,但不是其中的选项.虽然我熟悉期权到期的周期并且可以从给定日期开始引导它,但这是一个糟糕的解决方案;首先,它会产生更多的查询.我更倾向于从数据中反省它,因为它应该可用(它可以被屏幕删除).任何人都知道如何在YQL中获得这个,或者我运气不好?

这是我正在使用的一些python代码:

from xml.etree.ElementTree import ElementTree
import urllib, urllib2

class YQL(object):
    url = 'http://query.yahooapis.com/v1/public/yql'
    env = 'store://datatables.org/alltableswithkeys'
    format = 'xml'

    @classmethod
    def query(cls, string):
        q = urllib.quote(string)
        url = cls.url + '&'.join(('?q=%s' % q, 'env=%s' % cls.env,
                                   'format=%s' % cls.format))
        resp = urllib2.urlopen(url)
        return ElementTree(file=resp).getroot().find('results')[:]

chain = YQL.query('select * from yahoo.finance.options where symbol="WFC"')[0]
chain.attrib
option = chain[0]
option.attrib
for attr in option:
    print attr.tag, attr.text

最佳答案 您可以进一步利用YQL的链接查询功能

SELECT * FROM yahoo.finance.options WHERE symbol="%s" AND expiration in (SELECT contract FROM yahoo.finance.option_contracts WHERE symbol="%s")

显然,%s是你正在寻找的符号.这将从所有可用的到期日期中提取所有选项链,并为您节省多个查询.

点赞