iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
Python

30天做出理財小助理系列 第 21

Day21:抓取買超、賣超資料

  • 分享至 

  • xImage
  •  

昨天了解完甚麼是買超、賣超後,今天就來抓資料吧~首先我們要這匯入所需的模組:(Finlab、Pandas、pymssql)
https://ithelp.ithome.com.tw/upload/images/20241005/201693769H2OQZ8sf2.jpg
接下來撰寫的是資料庫連線函數跟刪除最近五筆資料的函數,需要寫到刪除最近五筆資料的函數是因為這樣我們就不需要每次更新都要重新抓一大筆資料,只需要跟新一個禮拜的資料就行https://ithelp.ithome.com.tw/upload/images/20241005/20169376WyH6ICgFvX.jpg
再來我們要連接Finlab,抓取我們所要的資料
https://ithelp.ithome.com.tw/upload/images/20241005/20169376VUqHzYyEo0.jpg
我們透過 FinLab 取得券商交易資料,並根據指定的日期範圍(2023年的所有資料)來篩選數據。reset_index()DataFrame 的索引重設為默認數字

data_count 是資料筆數,即券商交易資料中的記錄總數。stock_ids 取得券商交易資料的所有欄位名稱。

sql這一段是用來插入資料到 [dbo].[PP_BrokerTransactions] 表的 SQL 語句。它會插入日期、股票代碼、券商代碼、買進數量、賣出數量和買賣差額等資料。
https://ithelp.ithome.com.tw/upload/images/20241005/20169376YMJSbrJRtS.jpg

最最最後,從 broker_transactions DataFrame 中逐筆取出資料,並且將資料插入到資料庫中:

取出每一筆交易的日期tx_date、股票代碼stock_id、券商代碼BrokerId、買進數量Buy賣出數量Sell,並計算買賣差額BuySell
將這些資料加入 sql_data 列表,並用 cursor.execute() 執行 SQL 語句,將資料插入到資料庫中。
插入資料後,使用 db_conn.commit() 將更改提交到資料庫。
https://ithelp.ithome.com.tw/upload/images/20241005/2016937670q1ztkVF9.jpg

都檢查完之後,我們就可以去資料庫查詢有沒有抓取完成。
https://ithelp.ithome.com.tw/upload/images/20241005/201693762cl98wq60p.jpg
這邊以台積電為例(2330)資料表都確認無誤後,就大功告成啦!


上一篇
Day20:買超?賣超?(2)
下一篇
Day22:計算不同時間範圍(5 天、20 天、60 天)的買賣總量和成交量
系列文
30天做出理財小助理24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言