【云圖說】第235期 DDS讀寫兩步走 帶您領略只讀節點的風采
982
2025-03-31
在這個實體經濟都開始數字驅動的時代,股市韭菜也得與時俱進,不能停留在拍腦袋決定買或賣的時點上。本文用于記錄0-1給自己搭一個金融數據庫的過程。
3. 數據庫定時更新
3.1. 追加式更新
我們以上證指數收盤價為例,來演示一下數據庫追加式的定時更新,并嘗試用一種新方法來做演示。
3.1.1. 查看數據格式
首先來看一下數據表的格式。
show columns from SSEC;
3.1.2. 獲取數據
我們從tushare獲取新的數據(熱點復現|用Dash做A股量化策略可視也曾提到過tushare)。
import tushare as ts pro = ts.pro_api('your token')
import datetime new_SSEC = pro.index_daily(ts_code='000001.SH', trade_date=datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d'))[['trade_date', 'close']] new_SSEC
3.1.3. 連接mysql并將數據插入數據庫
這里我們使用sqlalchemy,通過pandas的DataFrame來實現插入。
from sqlalchemy import create_engine engine=create_engine('mysql+pymysql://root:password@host:port/database')
root、password、host、port、database處請替換成自己的數據庫設置,可參見給自己搭一個金融數據庫(一)或留言交流。
new_SSEC.to_sql('SSEC', engine, index=False, if_exists='append')
注意必須記得加上if_exists='append'。加了這個參數后,如果數據表已經存在,則在原記錄上增加。默認的參數下,如果數據表已經存在,將會刪除后重新建表。
再去查一下數據庫,可以看到插入已經成功了。
3.2. 修改式更新
也有可能有些表不是插入新的記錄,而是理發原記錄。
比如我有一個表,表結構如下:
它是用來記錄每一次買賣的,賣出可能不是跟買入一起記錄的,而是后期再去更新的,那個需要用到update,與給自己搭一個金融數據庫(二)介紹的insert非常相似。
3.2.1. 連接數據庫
import pymysql import pymysql conn = pymysql.connect(host='host', user='root', password='password', port=3306, database='stock', charset='utf8') cur = conn.cursor()
3.2.2. 修改數據庫
>>> for i in hold_detail.index: ... sql = "update hold_detail set sale_date=%s, sale_price=%f where id=%d" % (hold_detail['sale_date'][i], hold_detail['sale_price'][i], hold_detail['id'][i]) ... cur.execute(sql) ... conn.commit()
如此,自己的金融數據庫搭建完畢。當然,如何用起來才是關鍵,有機會再做記錄。
數據庫 金融專區
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。