Данные опций Yahoo с R, но есть ошибка? Лучшие примеры в Python или C #? - PullRequest
0 голосов
/ 18 июня 2011

Я пытаюсь запустить скрипт R из: http://www.math.tu -berlin.de / ~ mkeller / R-progs / yahoo_opt.R Описание по адресу: http://www.math.tu -berlin.de/~mkeller/index.php?target=rcode

Я новичок в R, но получаю действительно странную ошибку, когда запускаю следующее в соответствии с инструкциями:

opt<- yahoo.getAllOptions ("IBM") </p>

Ошибка:

попытка URL-адреса 'http://finance.yahoo.com/q/op?s=IBM&m=2011-06' Тип содержимого' text / html;charset = utf-8 'длина неизвестна открытый URL загружен 57 Kb

прочитано 2616 элементов Ошибка в yahoo.getOption (тикер = тикер, срок погашения = mat [j], get.short.rate = FALSE): неожиданные данныеформат

Кто-нибудь знает, как это исправить?Я новичок в R, и это может быть новичком, но я в тупике.Кто-нибудь знает лучший пример исходного кода в C # или Python?Я не против, я просто хочу получить данные опций Yahoo.Спасибо

1 Ответ

0 голосов
/ 18 июня 2011

Вы слышали о консоли YQL и datatables.org?Он обеспечивает доступ ко многим таблицам данных Yahoo (и других) с помощью запросов REST, возвращающих объекты XML или JSON.Есть хорошая таблица опций, к которой вы можете легко получить доступ, используя urllib в Python.Рассмотрим следующий пример:

>>> import urllib2
>>> import json
>>> url='http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20FROM%20yahoo.finance.options%20WHERE%20symbol%3D\"goog\"%20AND%20expiration%3D\"2011-08\"&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback='
>>> req = urllib2.Request(url)
>>> response = urllib2.urlopen(req)
>>> result = json.loads(response.read())

result - это объект json, содержащий все параметры для GOOG с истечением 2011-08.Если вы внимательно посмотрите в URL, вы увидите символ для Google и срок годности.Это может быть легко изменено программно.

>>> result['query']['results']['optionsChain']['option'][0]
{u'strikePrice': u'400', u'lastPrice': u'110.10', u'vol': u'1', u'type': u'C', u'symbol': u'GOOG110820C00400000', u'openInt': u'9', u'ask': u'90.5', u'changeDir': None, u'bid': u'87', u'change': u'0'}
>>> result['query']['results']['optionsChain']['option'][10]
{u'strikePrice': u'490', u'lastPrice': u'21.20', u'vol': u'350', u'type': u'C', u'symbol': u'GOOG110820C00490000', u'openInt': u'56', u'ask': u'21.3', u'changeDir': u'Down', u'bid': u'20.8', u'change': u'-6.9'}

Обратите внимание, что вы также можете вернуть результаты в XML.

Google "yql consol", нажмите на первую ссылку.На правой стороне нажмите на ссылку «Показать таблицы сообщества».Прокрутите вниз до Yahoo.Нажмите на yahoo.finance.options.Вы должны быть в состоянии выяснить остальное:)

...