① 量化投研基礎設施:股票日頻資料庫的搭建
搭建本地股票日頻資料庫,為量化投研提供堅實基礎
背景與需求
本文旨在手搓一個股票日頻資料庫,以滿足量化投資書籍編寫與本地數據介面實現的需求。使用tushare作為數據源,提供穩定可靠的數據,同時,通過代碼實現資料庫搭建,便於後續章節的深入探討與因子計算。
准備工作
選用tushare作為數據來源,安裝庫並獲取token。考慮數據儲存方式,推薦使用交易日為單位的文件夾結構,結合feather文件提高讀取速度,確保高效數據介面的實現。復權數據處理也納入考量,為量化分析提供完整數據集。
資料庫搭建與優化
採用交易日為更新單位,簡化資料庫維護流程。選擇feather文件格式,利用pandas的高效性能,實現數據的快速讀寫。在數據介面設計上,支持按股票代碼、日期、復權方式與欄位查詢,確保研究需求的靈活滿足。復權操作確保數據的准確性和分析的可靠性。
Python實現與功能
代碼實現包括數據提取、數據介面設計與數據更新功能。數據提取部分遍歷交易日,合並股票日度行情與復權因子,保存至feather文件。數據介面提供按參數查詢所需數據的能力,數據更新功能確保資料庫的及時更新,滿足研究與分析需求。
測試與應用
通過示例展示了如何調用介面獲取特定股票的後復權數據與全市場數據,驗證了數據介面的靈活性與高效性。量化研究應聚焦於核心問題,而非基礎設施層面的細節,確保在這些基礎上深入研究,實現真正意義上的價值。
② 怎麼做實時的股票資料庫
如果主站提供有相關的介面的話,可以調主站的介面.如果主站不提供相關介面.那就不不斷抓取.獲取最新的信息了.
③ mysql怎麼做股票資料庫
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import tushare as ts
from sqlalchemy import create_engine
code_list = []
#資料庫鏈接參數
host = '10.0.0.5'
port = 3306
user = 'root'
password = 'qweqwe'
database = 'stock'
charset = "utf8"
table = "stock_data"
# create table stock_data(id int auto_increment,code int(6) zerofill,date date not null,open decimal(10,2) not null,high decimal(10,2) not null,close decimal(10,2) not null,low decimal(10,2) not null,volume decimal(10,2),turnover decimal(10,2),primary key (id),index(code),index(date),index(open),index(high),index(close),index(low));
def get_data (code):
df = ts.get_hist_data(code)
data = df.iloc[::-1, [0, 1, 2, 3, 4, 13]]
data["code"] = code
return data
def save_data_to_mysql (data,user = 'root',password = 'qweqwe',database = 'stock',charset = "utf8",table = "stock_data"):
engine = create_engine('mysql://' + user + ':' + password + '@' + host + '/' + database + '?charset=' + charset)
data.to_sql(table, engine, if_exists='append')
return
for code in code_list:
try:
data = get_data(code)
save_data_to_mysql(data)
print str(code) + "導入mysql成功"
except:
print str(code) + "獲取數據失敗"
④ 【手把手教你】搭建自己的量化分析資料庫
量化交易的分析根基在於數據,包括股票歷史交易數據、上市公司基本面數據、宏觀和行業數據等。面對信息流量的持續增長,掌握如何獲取、查詢和處理數據信息變得不可或缺。對於涉足量化交易的個體而言,對資料庫操作的掌握更是基本技能。目前,MySQL、Postgresql、Mongodb、SQLite等開源資料庫因其高使用量和受歡迎程度,位列2018-2019年DB-Engines排行榜前十。這幾個資料庫各有特點和適用場景。本文以Python操作Postgresql資料庫為例,藉助psycopg2和sqlalchemy實現與pandas dataframe的交互,一步步構建個人量化分析資料庫。
首先,安裝PostgreSQL。通過其官網下載適合操作系統的版本,按照默認設置完成安裝。安裝完成後,可以在安裝目錄中找到pgAdmin4,這是一個圖形化工具,用於查看和管理PostgreSQL資料庫,其最新版為Web應用程序。
接著,利用Python安裝psycopg2和sqlalchemy庫。psycopg2是連接PostgreSQL資料庫的介面,sqlalchemy則適用於多種資料庫,特別是與pandas dataframe的交互更為便捷。通過pip安裝這兩個庫即可。
實踐操作中,使用tushare獲取股票行情數據並保存至本地PostgreSQL資料庫。通過psycopg2和sqlalchemy介面,實現數據的存儲和管理。由於數據量龐大,通常分階段下載,比如先下載特定時間段的數據,後續不斷更新。
構建數據查詢和可視化函數,用於分析和展示股價變化。比如查詢股價日漲幅超過9.5%或跌幅超過-9.5%的個股數據分布,結合選股策略進行數據查詢和提取。此外,使用20日均線策略,開發數據查詢和可視化函數,對選出的股票進行日K線、20日均線、成交量、買入和賣出信號的可視化分析。
資料庫操作涉及眾多內容,本文著重介紹使用Python與PostgreSQL資料庫的交互方式,逐步搭建個人量化分析資料庫。雖然文中使用的數據量僅為百萬條左右,使用Excel的csv文件讀寫速度較快且直觀,但隨著數據量的增長,建立完善的量化分析系統時,資料庫學習變得尤為重要。重要的是,文中所展示的選股方式和股票代碼僅作為示例應用,不構成任何投資建議。
對於Python金融量化感興趣的讀者,可以關注Python金融量化領域,通過知識星球獲取更多資源,包括量化投資視頻資料、公眾號文章源碼、量化投資分析框架,與博主直接交流,結識圈內朋友。