美股台股投資觀測站

yahoo finance api教學、股票api接口、股票報價 API在PTT/mobile01評價與討論,在ptt社群跟網路上大家這樣說

yahoo finance api教學在[心得] 用yahoo api抓股價Excel巨集- 看板Stock

作者[心得] 用yahoo api抓股價Excel巨集
標題kslman ()
時間2016-02-16 22:50:33 UTC



網誌好讀版:
http://kslman.blogspot.tw/2016/02/excelyahoo-apiexcel.html

------以下是內文------

之前有用PTT板上大大寫的excel巨集,不過他用的方式是去抓網頁。

缺點是網頁有修改的話版位就走樣。而且如果要讀取的股票數量多的話,速度會很慢。
(那個巨集板上大大也沒有要繼續維護了...可惜)

昨天研究了一下,最後找到了api的這個巨集方法。參考了:
http://kuanming-style.blogspot.tw/2013/02/excelvbayahoo-finance-apis.html
和巨集作者M.Kishinevsky and M. Higgs的檔案:
http://www.pythonclub.org/project/yahoo-data-api


yahoo提供的api應該比較不會有甚麼異動才是,而且抓資料速度快超多。

我改了一個平常在用的Excel範本,提供各位參考:

https://sites.google.com/site/kslman/file/Stock%2Byahoo_sample.xlsm?attredirects=0&d=1

縮網址:
https://goo.gl/Od1fpe

md5:8d17c8b6af281aa7bea464c39ef5acc0



使用說明:


1.打開後記得啟用巨集


2.「即時」分頁中的按鈕「Download Data」點下去,就會把A欄有Symbols的股票更新。


3.「即時」分頁中的「C2」裡的值「l1c1vhgd1rm4n」可以自定義。

右邊Yahoo Tag那張圖裡面有說明填入甚麼樣的代碼會回饋甚麼值。

不過表頭不會跟著更新,如果有興趣DIY修改的,自己要搞清楚是動到哪一欄。


4.如果要新增要查詢的股票,在「參照」分頁中自行在A、B、C增加編號、名稱和類別,

D和E是公式,只要往下拉就可以。然後把得到的Yahoo Symbols貼到「即時」分頁A欄。


5.分頁「關注」和「對帳單sample」就只是兩個範本而已。

提供參考如果抓api資訊後,Excel後續可以幫助你做甚麼事情的範本。


如果對巨集有甚麼疑問的話,可以自己打開來看。

內容跟原作者M.Kishinevsky and M. Higgs的內容是一樣的,我只是加上中文註解。

巨集如下。


Sub GetData()
'宣告變數
Dim QuerySheet As Worksheet
Dim DataSheet As Worksheet
Dim qurl As String
Dim i As Integer
'告訴Excel不要每更新一格就重新計算
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
'將現在的工作表設為資料表
Set DataSheet = ActiveSheet
'從第七列開始,只要第一欄(A欄)內容不是空的,就把代碼加到Yahoo Finance API的
網址中
Range("C7").CurrentRegion.ClearContents
i = 7
qurl = "http://download.finance.yahoo.com/d/quotes.csv?s=" + Cells(i, 1)
i = i + 1
While Cells(i, 1) <> ""
qurl = qurl + "+" + Cells(i, 1)
i = i + 1
Wend
qurl = qurl + "&f=" + Range("C2")
'將網址放到C1的欄位中
Range("c1") = qurl
'抓取資料
QueryQuote:
With ActiveSheet.QueryTables.Add(Connection:="URL;" & qurl,
Destination:=DataSheet.Range("C7"))
.BackgroundQuery = True
.TablesOnlyFromHTML = False
.Refresh BackgroundQuery:=False
.SaveData = True
End With
'將CSV的格式塞到Excel的表格當中
Range("C7").CurrentRegion.TextToColumns Destination:=Range("C7"),
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, other:=False

'讓Excel重新活回來,讓資料能夠顯示
'turn calculation back on
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
' Range("C7:H2000").Select
' Selection.Sort Key1:=Range("C8"), Order1:=xlAscending, Header:=xlGuess, _
' OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Columns("C:C").ColumnWidth = 12
Columns("J:J").ColumnWidth = 25.43
Range("h2").Select

End Sub




PS:
原作者網誌中也有附上完整的api代碼說明
http://www.pythonclub.org/project/yahoo-data-api

不過有些代碼就算抓出來,並對照它的英文敘述我也還是看不懂是甚麼。

如知道代碼意思且有興趣幫忙解釋的大大,可在下面推文,我有空會持續完善這張表。


目前我已知代碼解釋如下。

d1 Last Trade Date 最後交易日期
l1 Last Trade (Price Only) 成交價
c1 Change 漲跌(值)
c Change & Percent Change 漲跌值與百分比
v Volume 成交量(這裡顯示股數非張數)
h Day's High 當天最高價
g Day's Low 當天最低價
r P/E Ratio 本益比
n Name 股票英文名稱

--
修正了一下連結
剛抓了其中一支股票研究了一下,價格跟我手機看盤工具大概差了30分鐘左右。

所以雖然盤中會更新,但相對沒有這麼及時喔,如果有更即時資訊需求的用戶請注意。
修正錯字
就像我提及的參考網站中有提到:

「我們並不會用到所有的API,只會應用到其中的CSV API裡頭的
Quotes。官方的說明是Downloading quotes of stocks, indices or exchange rates,
因為這個例子並不需要歷史資料,只要最後交易日的股價而已。]」

所以yahoo api看起來是可以抓歷史資料的,只是在這邊我們只抓最後交易日股價。

然後我也有查過其他文章,裡面除了yahoo也還有提及google的api,有興趣可參考:
http://lovecoding.logdown.com/posts/257928-use-yahoo-api-to-obtain-historical-stock-price-data

縮網址:
http://goo.gl/6VBKlf
補充了一下檔案的MD5碼。
新增網誌好讀版。

推 becareful : 推 02/16 23:19
→ Justisaac : 這有即時嘛~?還是只是當日? 02/16 23:20
→ kslman : 問得好,明天開盤的時候如果有想到,我來研究一下 02/16 23:23
推 kaka642000 : 分享給推 02/16 23:55
→ Altair : yahoo finance給的台股資料不是即時 02/17 00:05
→ Altair : Yahoo!奇摩股市(凱基)的才是即時 02/17 00:05
→ Altair : 印象中 yahoo finance的是延遲15 or 20分鐘 02/17 00:07
推 verylovemary: 推! 02/17 00:13
推 raa1 : 強 02/17 00:55
推 ReiTukisima : 推 實用技術心得 02/17 01:08
→ f204137 : 高手 02/17 01:39
推 Mtcat : 02/17 03:02
推 applethree : 猛 02/17 06:55
推 k29571159 : 推高手+實用 02/17 08:19
推 isky20123 : 推!!多點技術文 02/17 08:37
推 a199111222 : 收下了 感謝 02/17 08:46
推 chialin39 : 感謝分享 02/17 09:14
推 wibblypig : 推 02/17 09:16
→ hjgx : 可以佛心做一個動畫放youtube 教學一下怎麼用嗎 02/17 11:33
推 yoluofgiprts: 推 02/17 11:45
推 michaelxxx : 想問一下有沒有歷史股價的api作法 02/17 12:03
→ michaelxxx : 用下網頁+迴圈去抓,往往會抓到當掉 02/17 12:03
推 iixiii5130 : 推 03/13 15:12

yahoo finance api教學關鍵字相關的推薦文章

yahoo finance api教學在使用Python及Yahoo Finance API抓取台股歷史資料的討論與評價

證交所在政府資料開放平台中提供了個股日成交資訊,也可以透過API查詢歷史記錄,但很容易因為頻繁抓取資料而被暫時的鎖IP,之後會再寫另外一篇文章說明。

yahoo finance api教學在yfinance 攻略!Python 下載股票價格數據無難度的討論與評價

YFinance 與Yahoo! Finance API; YFinance 使用教學; 獲取單一股票的數據; 獲取多個股票的交易數據; 提取高頻股票數據(High Frequency); 教學完整 ...

yahoo finance api教學在google finance api教學- Google 搜尋的討論與評價

2020年9月13日 — 環境準備好,就可以抓Yahoo Finance上面的資料囉!為什麼不用Google呢?因為Google已經沒有提供API了,所以轉而向Yahoo要。 本篇會教如何取得網路 ..

yahoo finance api教學在ptt上的文章推薦目錄

    yahoo finance api教學在【Day5】取得資訊-Python #2:抓股票資料 - iT 邦幫忙的討論與評價

    因為Google已經沒有提供API了,所以轉而向Yahoo要。 本篇會教如何取得網路資料,會以Yahoo Finance為範例。會參考前輩的網站,這裡面很多寶物,大家 ...

    yahoo finance api教學在Python 範例程式碼!使用Yahoo Finance 爬取0050ETF 股價的討論與評價

    透過Python 取得股價資料是一個相當方便的方法,本文將透過yahoo finance 的股價抓取方式,告訴大家該如何透過yahoo finance 套件獲取股價資訊,也會提供程式碼告訴 ...

    yahoo finance api教學在最新趨勢觀測站- yahoo finance api教學的推薦與評價的討論與評價

    yahoo finance api教學 在yfinance台股2022-精選在臉書/Facebook/Dcard上的焦點新聞... 的評價; yahoo finance api教學在[心得] 用yahoo api抓股價Excel巨集- 看板Stock - ...

    yahoo finance api教學在如何使用Python取得歷史股價,簡介yfinance、ffn、FinMind的討論與評價

    顧名思義,yfinance 的資料來源是Yahoo Finance API,以國外股市來說,大概是目前我找的到最完整的資料來源. 使用起來也很簡單.

    yahoo finance api教學在Python - 透過Yahoo Finance API抓取台股歷史資料 - 方格子的討論與評價

    無論是投資或是資料科學專案,經常需要股市資料作分析。證交所在政府資料開放平台中提供了個股日成交資訊,也可以透過API查詢歷史記錄,但很容易因為 ...

    yahoo finance api教學在用Python 打造自己的股市資料庫— 美股篇. Python ... - Medium的討論與評價

    Python DIY 資料庫系列;Yahoo Finance API;FRED API;Google Trends API ... 希望大家滿意這篇教學~如果喜歡這篇文章,歡迎按下拍手給我支持,你們 ...

    yahoo finance api教學在[財經爬蟲] 如何使用Python 網路爬蟲抓取新版Yahoo 股市上的 ...的討論與評價

    為了能夠讓我們的交易機器人隨時能根據最新的行情做決策,我們便必須要找到即時行情的 API ,讓Python 網路爬蟲能夠順利蒐集新版 Yahoo 股市資訊!

    yahoo finance api教學的PTT 評價、討論一次看



    更多推薦結果