前一天我們先抓取好資料後,今天要來計算買賣總量和成交量。
首先我們一樣要這匯入所需的模組:(Finlab、Pandas、pymssql)
接下來撰寫的是資料庫連線函數跟 FinLab 並連接資料庫,每次寫程式的時候,這個步驟絕對不能忘記!
接下來從資料庫中讀取 PP_BrokerChipCR 表格的所有資料,並分別獲取不重複的日期和股票代碼。
這裡計算了有多少不同的股票代碼stock_ids_count
日期date_count
,以及總共有多少筆資料all_count
接下來的解釋比較長:
具體步驟:
外層迴圈 for j in range(0, stock_ids_count)
:
遍歷每一支股票代碼。
內層迴圈 for i in range(0, date_count)
:
遍歷每一個日期的資料。
累積計算:
5天累積:當日期數大於等於5天時,計算過去5天的 BuySell和
Volume的總和
,並計算比率 ChipCR_5
。
20天累積:當日期數大於等於20天時,計算過去20天的 BuySell
和 Volume
的總和,並計算比率 ChipCR_20
。
60天累積:當日期數大於等於60天時,計算過去60天的 BuySell
和 Volume
的總和,並計算比率ChipCR_60
。
更新資料框 df_PP_inventory
:
將計算出的累積值和比率寫入資料框中的相應欄位。準備並執行 SQL 更新:將計算結果整理成 sql_data
。
使用 UPDATE 語句將這些計算結果更新回資料庫中對應的紀錄。
都確認無誤之後,我們就可以去資料庫查詢有沒有抓取完成。
這邊以台積電為例(2330)資料表都確認無誤後,就完成最難的部分了!