股票即時資訊積木

以前在學校時,天天上課,雖然也有股票的戶頭,但沒有時間操盤,退休之後時間都是自己的,開始能夠在股市中賺取微薄的生活費了。台灣證券交易所有個「基本市況報導網站」,上面可看到目前上市及上櫃大盤的漲跌,右上方「個股行情查詢」輸入個別公司股票編號後,便會在網頁中呈現目前該公司在股市中的即時交易行情。例如輸入「台積電」的2330:

查詢2330後便會出現目前該股票的交易行情,五秒會更新一次資料,雖不夠即時,但如果想了解目前漲跌情況,也已足夠。

從網頁內容查詢得知,這個網頁會去呼叫以下這個網址去取得台積電2330的即時交易資料,而且是以json檔案格式呈現,網址如下:https://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=tse_2330.tw,只要把網址上的2330換成任一股票的編號,即可查詢該公司股票的即時行情。以下為查詢台積電2330的json檔案內容:

{"msgArray":[{"tv":"7119","ps":"7119","pz":"508.0000","fv":"48","oa":"511.0000","ob":"510.0000","a":"509.0000_510.0000_511.0000_512.0000_513.0000_","b":"508.0000_507.0000_506.0000_505.0000_504.0000_","c":"2330","d":"20201217","ch":"2330.tw","ot":"14:30:00","tlong":"1608186600000","f":"4_30_27_522_597_","ip":"0","g":"1155_1169_988_1750_1099_","mt":"000000","ov":"49179","h":"515.0000","i":"24","it":"12","oz":"510.0000","l":"508.0000","n":"台積電","o":"515.0000","p":"0","ex":"tse","s":"7119","t":"13:30:00","u":"560.0000","v":"38118","w":"459.0000","nf":"台灣積體電路製造股份有限公司","y":"510.0000","z":"508.0000","ts":"0"}],"referer":"","userDelay":5000,"rtcode":"0000","queryTime":{"sysDate":"20201217","stockInfoItem":2188,"stockInfo":631317,"sessionStr":"UserSession","sysTime":"15:46:20","showChart":false,"sessionFromTime":-1,"sessionLatestTime":-1},"rtmessage":"OK","exKey":"if_tse_2330.tw_zh-tw.null","cachedAlive":704}

以上這些json資料有些複雜,經過我的解析之後,做成的積木如下:

範例:

顯示台積電股票(2330)即時資訊在LCD1602上。因為以上的網站是每五秒更新一次,在更新的時候不一定剛好會有交易成功的時候,因此,因此沒有交易的時候,成交價及成交量取回來的資料是個減號「-」,因此有時候成交價及成交量為「-」是正常的,也因為會有減號出現,所以這個積木所有取回來的值都先轉為字串。

程式執行結果:

如果想要能顯示中文,LCD1602液晶顯示器是不能顯示中文的,但是如果搭配OLED,可先在繪圖軟體處理中文,便能在OLED上顯示了。OLED中文及圖案處理請參看以下文章:OLED動態更換自訂圖案