2012-10-07 31 views
5

Estoy tratando de obtener cadenas de opciones sobre acciones de Yahoo usando YQL. He tratado este comando en la consola YQL:¿Cómo puedo obtener cadenas de opciones sobre acciones usando YQL?

select * from yahoo.finance.options 

Sin embargo, me sale este XML error:

<?xml version="1.0" encoding="UTF-8"?> 
<error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:lang="en-US"> 
    <diagnostics> 
     <publiclyCallable>true</publiclyCallable> 
    </diagnostics> 
    <description>No definition found for Table yahoo.finance.options</description> 
</error> 

parece que esta tabla no existe más. ¿Alguien sabe cuál es la mesa correcta?

+0

Cuando probé su instrucción YQL en la consola YQL, recibí 'No puedo encontrar las claves requeridas en where cláusula; esperando claves requeridas: (símbolo). 'Pero cuando agrego una cláusula where' symbol = 'GOOG' AND expiration = '2010-06' 'no hay ningún problema. Estamos hablando de este, ¿verdad? (http://developer.yahoo.com/yql/console/) –

+0

Sí, esa es la consola de la que estoy hablando. Tengo para nosotros una mesa comunitaria, y esa es parte de la razón por la que no funcionaba. Pensé que yahoo.finance.options era una tabla que Yahoo administraba, pero en realidad es una tabla de comunidad de datatables.org. ¡Gracias! –

Respuesta

1

yahoo.finance.options es una tabla de comunidad. Para leer acerca de las tablas de la comunidad, marque here. Desde el enlace que acabo de publicar:

Para utilizar YQL con las tablas de la comunidad, debe pasar el archivo env de datatables. Puede hacer esto en la consola YQL como parte de una instrucción YQL, o pasando un parámetro de consulta.

La consola YQL para probar esto se puede encontrar here

+0

No sabía que podía pulsar "mostrar tablas de la comunidad" para obtener esta tabla. Es por eso que no estaba funcionando para mí. ¡Gracias! –

3

Usted tiene que proporcionar al menos un where clause para hacer este trabajo de consulta. De esta manera:

select * from yahoo.finance.options where symbol='MMM' 

o,

select * from yahoo.finance.options where symbol='A' 

o,

select * from yahoo.finance.options where symbol='YHOO' 

Todas las consultas anteriores funcionan bien. Si desea datos más específicos, debe proporcionar más condiciones para filtrar los datos deseados de la totalidad de los datos.

+0

¿Todavía funciona esto? – Merlin

+0

Sí, funciona bien. Acabo de verificar. Vaya a esta página: https://developer.yahoo.com/yql/console/?q=select%20%2a%20from%20yahoo.finance.options&env=store://datatables.org/alltableswithkeys#h=select% 20% 2a% 20desde% 20yahoo.finance.options% 20where% 20symbol =% 27GOOG% 27 y escribe: selecciona * de yahoo.finance.options donde symbol = 'YHOO' y luego presiona la tecla de prueba, verás Los resultados. Todas las consultas en mis respuestas están funcionando bien. –

+0

Lo comprobé también, parece funcionar ... ¿Dos preguntas yahoo limitan el uso?Solo me dio el primer mes. ¿Cómo puedo obtener los próximos tres meses diciendo 2014-05, 2014-06, 2014-07 o "los próximos tres meses"? Como url o uri, ¿cuál es la cadena ... – Merlin

0

Desde mediados de 2014 YQL tiene el problema, por lo que la cadena de opción de yahoo.finance con el raspado podría ser llegar a funcionar con los siguientes códigos: Python y Matlab

-1

Algo que acabo de descubrir hoy en día es que se puede solo use esto para obtener los datos de la opción de yahoo

https://query2.finance.yahoo.com/v7/finance/options/SPXS?straddle=true 
+0

No sé por qué alguien abajo votado mi respuesta, pero el punto final que he proporcionado en la respuesta anterior le devuelve un JSON, y si no se puede procesar una JOSN, entonces creo que es el sitio web StackOverflow mal para usted probablemente debido –

+1

votó porque la pregunta específicamente solicita el YQL – BigBen

Cuestiones relacionadas