用 Google 試算表製做簡易股票報價表及理財表
用 Google 試算表製做歷史股價走勢圖(K線)
用 Google 試算表進行技術分析(雙週線)(月線)
如果還沒追蹤blog的也趕快去按追蹤
=======================================
好啦以下是正文,近期有許多網友提到有關抓取興櫃或上櫃股價的問題,我才發現這塊還滿多人在操作的,因為本人沒有在投資興櫃或上櫃的股票,所以過去一直沒有注意到,感謝各方大大的建議
在此教學以網友提到的金洲(4417)股票為例
以下資料為抓取"台灣證交所"的資料,還有抓取櫃買中心的資料
這部分會有兩個函式
一個是上市跟上櫃
function TWPRICE(code) {
var url = "http://mis.tse.com.tw/stock/api/getStock.jsp?ch=" + code + ".tw&json=1&_=";
var response = UrlFetchApp.fetch(url);
var json = response.getContentText("UTF-8");
var data = JSON.parse(json);
return data.msgArray[0].y;
}
另一個是抓取興櫃
function EmergingPRICE(code) {
var formData = {
'SymbolID': String(code)
};
var options = {
'method' : 'post',
'payload' : formData
};
var url = "http://mis.tpex.org.tw/OTC/Quote.asmx/GETQ20";
var response = UrlFetchApp.fetch(url,options);
var xml = response.getContentText("UTF-8");
var document = XmlService.parse(xml);
var root = document.getRootElement();
var items = root.getChildren();
return items[10].getText();
}
然後把以上的程式碼都放進 "工具" > "指令碼編輯器"
然後進入表格
輸入表格的名稱
然後輸入要查詢的股票
程式碼如下
上市上櫃用這個:
=TWPRICE(股票名稱)
興櫃用這個:
=EmergingPRICE(股票名稱)
最後按下enter
試算表連結如下
https://docs.google.com/spreadsheets/d/1GxuqlleJbkDJzc5eofXx5nmxxDU5AqJghVq4dd9bUl4/edit?usp=sharing
不過這股價很像不是即時的,而是前一天的收盤價,這部分要如何抓取資料,還需要再研究看看,用excel去抓取yahoo的報價很像可以克服這個問題,就留待下一篇excel的教學做講解,感謝大家的回覆。
我將思想傳授他人,他人之所得,亦無損於我之所有;猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。湯瑪斯‧傑弗遜(Thomas Jefferson)
請問如何捉台股上櫃個股的歷史年度高低價 ?
回覆刪除http://www.tpex.org.tw/web/stock/statistics/monthly/st42.php?l=zh-tw
可以參考EXCEL那篇的方法
刪除資工心理人大正妹 非常感謝解惑
回覆刪除不客氣,教學相長
刪除您好 上市股價 =TWPRICE() 可抓到股價 但上櫃 =EmergingPRICE() 還是抓不到股價
回覆刪除我測試了一下正常
刪除要不要檢查一下
你好,請問可以抓中文股名嗎?例如 =TWNAME(2330) ,就會出現"台積電"
回覆刪除老師,請問,我照著妳的程式碼貼入TWPRICE(股票名稱)
回覆刪除會出現「不明函式:TWPRICE」請問是哪裡出問題了呢?可惜無法貼圖給老師看,只能用文字敘述…
因為你沒有先把程式碼放進 "工具" > "指令碼編輯器"
刪除請問有辦法抓取上櫃股票的本益比和股價淨值比的方法嗎? 先感恩了
回覆刪除可以參考抓取第三方資料的教學
刪除作者已經移除這則留言。
回覆刪除你好,請教一個問題。我想把抓到的股價與我設定的股價做比較,好像無法比較。
回覆刪除如=IF(K2>L2,"建議買進","停止買進")。K2是我設定的股價(38),L2是抓進來的現價(35),顯示結果為"停止買進"。如果我將L2改為手動輸入35,則會顯示"建議買進"。不曉得有什麼方法或小技巧可以調整設定?謝謝
你好 請問00679B是不是沒辦法抓取 謝謝 試了其他的代號有
回覆刪除用TWPRICE("00679B")
刪除您好,測試了一下,上櫃只能抓到前一天的收盤價,是我有甚麼問題嗎?謝謝
回覆刪除您好~上櫃的code跑起來有error,有解決的方法嗎?
回覆刪除The entity "nbsp" was referenced, but not declared. (第 20 行,檔案名稱:程式碼)
20行是 var document = XmlService.parse(Xml);
我也遇到一樣的問題
刪除Exception: Error on line 31: The entity "nbsp" was referenced, but not declared. (第 20 行,檔案名稱:程式碼)
刪除我也是~懇請協助
Victorlove0913@gmail.com
這個連結需要取得權限 ~~
回覆刪除是不是共用關掉了呢 ? ..
試算表連結如下
https://docs.google.com/spreadsheets/d/1GxuqlleJbkDJzc5eofXx5nmxxDU5AqJghVq4dd9bUl4/edit?usp=sharing
可以試試這個:
回覆刪除=IMPORTXML("https://www.bloomberg.com/quote/"&$A1&"","//span[@class='priceText__1853e8a5']")
其中A1那格式股票代號,但必須是在Bloomberg網站上的股票代號,例如00679B在Bloomberg的代號是00679B.TT,A1納格就必須填00679B.TT,依此類推。
目前測試過上市、上櫃都可用,而且是即日報價而非前一天報價。
感謝您的分享,我撥空來試試看
刪除感謝分享,經過測試後發現可以用,不過有個地方要修正,以您的例子,應該是要用00679B:TT,而非00679B.TT,
刪除是的,抱歉一時手殘lol,感謝提醒!
刪除昨天都還可以使用 (9/17)但今天就不行了,是Bloomberg有改版嗎?
刪除好像這幾天不行使用,不知版主有沒有解決之道,感謝!
刪除作者已經移除這則留言。
回覆刪除請問老師,如何爬下列連結資料。感謝。
回覆刪除https://mis.twse.com.tw/stock/group.jsp?ind=D2&ex=tse&currPage=0&type=warrant
作者已經移除這則留言。
刪除sorry ! 文不對題所以刪掉了
刪除line 2 改成這樣
回覆刪除var url = "https://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=" + code + ".tw&json=1&delay=0";
code 的話 上櫃的要 加 otc_ 例如 otc_5443 ; 上市的則加 tse_ 例如 tse_2330
function TWPRICE(code) {
刪除var url = "https://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=" + code + ".tw&json=1&delay=0";
var response = UrlFetchApp.fetch(url);
var json = response.getContentText("UTF-8");
var data = JSON.parse(json);
return data.msgArray[0].y;
}
作者已經移除這則留言。
回覆刪除版主你好,請問有新的上櫃股價抓取的程式可供分享嗎?感謝~
回覆刪除您好!我設定了程式碼後,發現6690安碁的股價仍無法抓取,請問有方法解決嗎?謝謝!
回覆刪除我不是版主,只是路過的。建議可參考這篇,我試過是可以的 http://wushinetlife.blogspot.com/2019/08/python_6.html?m=1
回覆刪除