2012-10-07 124 views
5

我正在嘗試使用YQL從雅虎獲取股票期權鏈。我在YQL控制檯嘗試這個命令:如何使用YQL獲得股票期權鏈?

select * from yahoo.finance.options 

不過,我得到這個錯誤XML:

<?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> 

它看起來像這個表不存在了。有誰知道什麼是正確的表?

+0

當我在YQL控制檯中嘗試你的YQL語句時,我得到'在where子句中找不到必需的鍵;期待所需的鍵:(符號)'但是當我添加where子句'symbol ='GOOG'和expiration ='2010-06''時,根本沒有問題。 我們在談論這個,對吧? (http://developer.yahoo.com/yql/console/) –

+0

是的,這就是我說的控制檯。我不得不給我們一個社區表,這是它不工作的原因之一。我認爲yahoo.finance.options是雅虎管理的一張表,但它實際上是來自datatables.org的社區表。謝謝! –

回答

1

yahoo.finance.options是一個社區表。閱讀關於社區表格檢查here。從我剛剛發佈的鏈接:

爲了在社區表中使用YQL,必須傳入數據表env文件。您可以在YQL控制檯上執行此操作,作爲YQL語句的一部分,或通過傳入查詢參數。

的YQL控制檯來測試這個可以發現here

+0

我不知道我可以按「顯示社區表」來獲得此表。這就是爲什麼它不適合我。謝謝! –

3

你必須提供至少一個where clause使這個查詢工作。就像這樣:

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

,或者

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

,或者

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

以上所有的查詢工作的罰款。如果你想要更具體的數據,那麼你必須提供更多的條件來從你的整個數據中過濾出你想要的數據。

+0

這樣做還行嗎? – Merlin

+0

是的,它的工作正常。我剛剛檢查過。轉到此頁:https://developer.yahoo.com/yql/console/?q=select%20%2a%20from%20yahoo.finance.options&env=store://datatables.org/alltableswithkeys#h=select% 20%2a%20from%20yahoo.finance.options%20where%20symbol =%27GOOG%27 and type:select * from yahoo.finance.options where symbol ='YHOO' 然後點擊test buttong,你會看到結果。我的答案中的所有查詢都正常工作。 –

+0

我也檢查過,似乎工作...雅虎限制使用的兩個問題?它只給了我第一個月,我怎麼能得到接下來的三個月,要麼說2014-05,2014-06,2014-07或'未來三個月'。作爲url或uri,字符串是什麼... – Merlin

0

從2014 YQL的中間有問題,所以從yahoo.finance選項鍊刮可通過下面的代碼以獲得:今天我只是想出了PythonMatlab

-1

事情是,你可以只是用它來從雅虎獲得選項數據

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

我不知道爲什麼有人投我的答案,但我在上面的答案中提供的端點返回給你一個JSON,如果你不能處理JOSN,那麼我認爲StackOverflow是你的錯誤網站 –

+1

可能下降投票是因爲這個問題特別要求YQL – BigBen

相關問題