昨天了解完甚麼是買超、賣超後,今天就來抓資料吧~首先我們要這匯入所需的模組:(Finlab、Pandas、pymssql)
接下來撰寫的是資料庫連線函數跟刪除最近五筆資料的函數,需要寫到刪除最近五筆資料的函數是因為這樣我們就不需要每次更新都要重新抓一大筆資料,只需要跟新一個禮拜的資料就行
再來我們要連接Finlab,抓取我們所要的資料
我們透過 FinLab 取得券商交易資料,並根據指定的日期範圍(2023年的所有資料)來篩選數據。reset_index()
將 DataFrame
的索引重設為默認數字
data_count
是資料筆數,即券商交易資料中的記錄總數。stock_ids
取得券商交易資料的所有欄位名稱。
sql這一段是用來插入資料到 [dbo].[PP_BrokerTransactions] 表的 SQL 語句。它會插入日期、股票代碼、券商代碼、買進數量、賣出數量和買賣差額等資料。
最最最後,從 broker_transactions DataFrame
中逐筆取出資料,並且將資料插入到資料庫中:
取出每一筆交易的日期tx_date
、股票代碼stock_id
、券商代碼BrokerId
、買進數量Buy
、賣出數量Sell
,並計算買賣差額BuySell
。
將這些資料加入 sql_data 列表,並用 cursor.execute()
執行 SQL 語句,將資料插入到資料庫中。
插入資料後,使用 db_conn.commit()
將更改提交到資料庫。
都檢查完之後,我們就可以去資料庫查詢有沒有抓取完成。
這邊以台積電為例(2330)資料表都確認無誤後,就大功告成啦!