金融數據庫--3Baostock

一、 Baostock 是什么?

Baostock(寶碩股票)是一個免費、開源的證券數據平臺(SDK),旨在為金融量化投資者、研究人員和學生提供穩定、準確、易用的A股歷史數據和相關金融數據。

其核心是一個?Python 庫,用戶通過調用其提供的API函數,即可便捷地獲取數據到本地進行分析和回測,無需復雜的爬蟲技術。

官方定位: “無需注冊,即可獲取大量準確、完整的證券歷史行情數據、上市公司財務數據等。”

二、 核心功能與數據范圍

Baostock 的數據覆蓋范圍是其最大的競爭力之一。

1. 行情數據 (核心)

  • K線數據: 提供日、周、月級別的K線數據。
    • 包含:日期、開盤價、最高價、最低價、收盤價、成交量、成交額、換手率、復權因子等。

  • 復權處理: 支持前復權后復權不復權三種價格,極大地方便了量化回測。
  • 時間范圍: 數據可追溯至1990-12-19(上證交易所開業初期),覆蓋了A股幾乎全部歷史。

2. 基本面數據 (價值)

  • 公司資料: 上市公司基本信息、所屬行業、地域等。
  • 財務數據: 按季度、年度提供資產負債表、利潤表、現金流量表的核心指標。
    • 例如:每股收益、凈利潤、營業收入、資產負債率等
  • 估值數據: 市盈率(PE)、市凈率(PB)、市銷率(PS)等,且提供動/靜態、滾動的計算方式

3. 宏觀數據 & 行業數據

  • 宏觀經濟指標: 如GDP、CPI、PPI、PMI、貨幣供應量(M0, M1, M2)等。
  • 行業分類數據: 提供股票所屬的證監會、申萬等行業分類信息。
  • 利率數據: 存貸款利率、國債收益率等。

4. 其他數據

  • 融資融券數據
  • 指數成分股數據
  • 除除息信息、送股信息

三、 優勢 (Pros)

  1. 完全免費與開源: 這是其最吸引人的特點。相比于Wind、Choice等動輒數萬元的終端,Baostock 對個人投資者和研究者極其友好。代碼開源也意味著透明和安全。
  2. 數據質量高且準確: 數據經過清洗和整理,準確度較高,尤其是復權處理做得很好,避免了回測中的“坑”。
  3. 接口簡單易用: 純Python接口,API設計清晰,只需幾行代碼就能獲取數據,學習成本極低。對Python數據分析生態(Pandas, NumPy, Matplotlib)兼容性極佳,返回的數據通常是Pandas DataFrame格式,可直接進行分析和可視化。
  4. 數據歷史長度足夠: 長達30多年的歷史數據,足以滿足絕大多數長期策略回測的需求。
  5. 無需注冊和認證: 下載即用,沒有復雜的申請流程和API Key限制,降低了使用門檻。
  6. 穩定性與維護: 項目持續維護更新,社區有一定活躍度,遇到問題可以通過官方文檔或社區尋求幫助。

四、 劣勢與局限性 (Cons)

  1. 數據頻率限制: 最大的局限性在于不支持日內高頻數據(如1分鐘、5分鐘、Tick數據)。主要專注于日、周、月線級別的低頻數據。這對于需要高頻交易策略的研究者來說是不可用的。
  2. 實時性限制: 數據并非實時更新,通常有15分鐘左右的延遲。不適合用于實盤交易決策,更側重于歷史回測和研究
  3. 數據廣度與深度: 雖然覆蓋了核心數據,但與付費的頂級終端(如Wind)相比,在數據的廣度和深度上仍有差距。例如,更細分的財務指標、詳細的研報數據、新聞輿情、大宗交易、龍虎榜等數據可能缺失或不如專業終端全面。
  4. API調用限制: 雖然沒有明確的文檔說明,但可能存在未公開的請求頻率限制。如果短時間內發出海量請求,IP可能會被暫時限制訪問。通常需要在自己的代碼中添加time.sleep()來規避。
  5. 依賴網絡與服務器: 數據獲取依賴于Baostock的服務器,如果服務器出現故障或維護,服務會中

五、 適用場景

  • 個人量化愛好者/學習者: 學習和實踐量化交易的絕佳工具,零成本入門。
  • 學術研究: 撰寫論文、進行金融市場相關實證研究的可靠數據來源。
  • 中長期策略回測: 基于日線或周線數據的價值投資、趨勢跟蹤、因子投資等策略的回測。
  • 基本面分析: 獲取和分析上市公司財務報表數據。
  • 金融數據分析教學: 在高校課程中,作為學生練習數據獲取、清洗、分析和可視化的完美案例。

不適用場景

  • 高頻交易策略開發
  • 實盤交易信號生成(因數據延遲)
  • 需要極度深度和前沿數據的專業機構投資經理

六、 與替代品的對比

特性BaostockTushareAkShareWind(萬得) / Choice(東方財富)
成本完全免費免費+積分(Pro版收費)完全免費非常昂貴
數據頻率日、周、月日、周、月、分鐘、Tick(積分)日、周、月、分鐘、Tick全頻率,包括實時
數據范圍A股、宏觀、指數非常廣泛(A股、港股、美股、期貨、期權等)極其廣泛(全球市場、宏觀、商品、新聞等)最全面、最權威
易用性非常簡單簡單(但接口版本多)接口較多,需查找圖形界面+API,功能強大
實時性延遲15分鐘實時數據需積分/付費實時/略有延遲實時
核心用戶初學者、研究者、個人個人、專業開發者專業開發者、研究者專業機構、基金經理

簡單總結

  • Baostock:?“專注、簡單、免費的A股歷史數據專家”
  • Tushare/AkShare:?“免費且數據廣泛的爬蟲聚合庫”,功能更強大但接口可能更復雜。
  • Wind/Choice:?“專業機構的全能武器”,無所不包但價格高昂。

七、 快速入門指南

安裝:pip install baostock
  1. 基本使用流程(四步曲)
    python
import baostock as bs
import pandas as pd# 1. 登錄系統
lg = bs.login()
# 顯示登錄返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)# 2. 獲取數據
# 查詢復權后(前復權)的日K線數據
rs = bs.query_history_k_data_plus("sh.600000","date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",start_date='2023-01-01', end_date='2024-01-01',frequency="d", adjustflag="2") # adjustflag: 2-前復權, 3-后復權# 3. 將數據轉換為pandas DataFrame
data_list = []
while (rs.error_code == '0') & rs.next():# 獲取一條記錄,將記錄合并在一起data_list.append(rs.get_row_data())
df = pd.DataFrame(data_list, columns=rs.fields)# 4. 登出系統
bs.logout()# 處理數據:轉換數據類型
df['close'] = df['close'].astype('float')
df['volume'] = df['volume'].astype('float')
print(df.head())
  1. 重要提示
  • 務必在程序結束前調用?bs.logout()
  • 獲取大量數據時,請在循環請求中添加?time.sleep(0.5)?以避免被限流。

總結

Baostock 是一個極其優秀、專注于A股歷史低頻數據的免費解決方案。?它以其簡單、可靠、免費的特性,成為了無數個人量化交易者和研究人員入門和研究的“第一塊基石”。

如果你的需求是:

  • 免費
  • 獲取A股漫長的歷史日線數據
  • 進行中長期策略回測
  • 學習Python量化分析

那么,Baostock 幾乎是你的不二之選。但如果你的需求擴展到高頻、實時或全球市場,則需要考慮 Tushare、AkShare 或付費的專業數據終端。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922029.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922029.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序-1-微信開發者工具環境搭建和初始化創建項目

文章目錄1 小程序概述1.1 什么是微信小程序1.2 大前端概念1.3 賬號注冊1.4 開發流程1.5 小程序成員2 創建項目2.1 創建項目流程2.2 創建項目2.3 本地開發支持http3 項目目錄3.1 項目目錄結構3.2 配置文件3.2.1 app.json(全局配置)3.2.2 xxx.json(頁面配置)3.2.3 project.config…

Go語言開發AI應用

為什么選擇Go語言開發AI應用在人工智能快速發展的今天,選擇合適的編程語言對于AI應用的成功至關重要。雖然Python長期以來被認為是AI開發的首選語言,但Go語言正在逐漸嶄露頭角,成為AI應用開發的有力競爭者。Go語言的核心優勢1. 卓越的性能表現…

10. 游戲開發中的TCP與UDP

1.TCP和UDP 2.TCP為什么慢于UDP 3.可靠UDP1.TCP和UDP 1).通過打電話的方式說明TCP和UDPa.TCP(傳輸控制協議), 就像打電話- 需要先撥號, 接通, 問候(建立連接)- 你一句, 我一句, 對方沒有聽清會要求你重復(確認與重傳)- 保證對話有條不紊, 內容準確無誤(可靠, 有序)- 如果信號不…

CMap常用函數

CMap 是 MFC 中用于存儲鍵值對(key-value)的關聯容器類,類似于 C 標準庫中的 std::map,但依賴 MFC 框架實現。它采用哈希表(Hash Table)作為底層數據結構,支持高效的鍵值查找、插入和刪除操作。…

Rocky9.0去堆疊雙發arp(支持“ARP 廣播雙發”)

摘要 在去堆疊/MLAG 場景下,默認 bonding 只會以單口回復 ARP,另一臺交換機收不到 ARP Reply。本文在 Linux bonding 驅動中增加參數 arp_broadcast_mode,當開啟時對 ARP 包臨時切換到 廣播模式,實現雙口同時發 ARP Reply。文內提…

網頁連接攝像頭

攝像機處理 <!-- camera_solve.html --> <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

FPGA雷達信號處理之:自適應門限閾值

一、原理 參考這個博主&#xff0c;講的很仔細&#xff1a;基于脈沖功率的雷達脈沖參數檢測原理詳解 二、FPGA實現 使用system generator搭建算法模型如下&#xff1a; 在這里&#xff0c;濾波器窗長度為8&#xff0c;原博主設置為50效果更好&#xff0c;門限公式如下&#xf…

Vue 中實現選中文本彈出彈窗的完整指南

在現代 Web 應用中&#xff0c;選中文本后顯示相關操作或信息是一種常見的交互模式。本文將詳細介紹如何在 Vue 中實現選中文本后彈出彈窗的功能&#xff0c;包括其工作原理、多種實現方式以及實際項目中的應用示例。 一、實現原理 1. 文本選中檢測機制 瀏覽器提供了 Select…

第4節-排序和限制-FETCH

摘要: 在本教程中&#xff0c;你將學習如何使用 PostgreSQL 的 FETCH 子句從查詢中檢索部分行。 PostgreSQL FETCH 簡介 在 PostgreSQL 中&#xff0c;OFFSET 子句的作用類似于 LIMIT 子句。FETCH 子句允許你限制查詢返回的行數。 LIMIT 子句并非 SQL 標準的一部分。不過&#…

洛谷 P2680 [NOIP 2015 提高組] 運輸計劃(二分答案 + 樹上差分)

題目鏈接題目概括與評價 很經典&#xff0c;突破口藏的很深&#xff0c;求最小值這里&#xff0c;是問題切入點&#xff0c;想到用二分答案&#xff0c;然后思考怎么寫 f_check 函數。二分答案樹上差分。代碼 #include <iostream> #include <vector> #include <…

接力鄧承浩,姜海榮能講好深藍汽車新故事嗎?

出品 | 何璽排版 | 葉媛深藍汽車迎來新話事人。9月5日&#xff0c;新央企長安汽車旗下品牌深藍汽車傳出新的人事調整。多家業內媒體報道稱&#xff0c;榮耀前中國區CMO姜海榮已正式加入長安汽車&#xff0c;并出任旗下深藍汽車CEO一職。原CEO鄧承浩則升任深藍汽車董事長&#x…

esp32-c3寫一個收集附近 WiFi 和藍牙信號通過

下面給你一個基于 ESP-IDF(v5.x) 的完整示例&#xff1a;在 ESP32-C3 上同時掃描附近 Wi-Fi 與藍牙&#xff08;BLE&#xff09;廣播&#xff0c;把結果以 JSON 結構統一輸出到串口&#xff0c;并且可可選通過 MQTT 上報到服務器&#xff08;打開一個宏即可&#xff09;。日志默…

文心大模型 X1.1:百度交出的“新深度思考”答卷

文心大模型 X1.1&#xff1a;百度交出的“新深度思考”答卷 2025年9月9日&#xff0c;WAVE SUMMIT 2025深度學習開發者大會在北京正式召開&#xff0c;由深度學習技術及應用國家工程研究中心主辦&#xff0c;百度飛槳與文心大模型聯合承辦。大會上&#xff0c;百度正式發布了基…

開始 ComfyUI 的 AI 繪圖之旅-Flux.1圖生圖(八)

文章標題一、Flux Kontext Dev1.關于 FLUX.1 Kontext Dev1.1 版本說明1.2 工作流說明1.3 模型下載2.Flux.1 Kontext Dev 工作流2.1 工作流及輸入圖片下載2.2 按步驟完成工作流的運行3.Flux Kontext 提示詞技巧3.1 基礎修改3.2 風格轉換3.3 角色一致性3.4 文本編輯4.常見問題解決…

Java 生成微信小程序二維碼

1. java 二維碼生成工具類import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import com.pdatao.api.controller.file.FileController; import com.pdatao.api.error.CommunityException; import org.apache.commons.io.IOUtils; import org.springframe…

智慧健康觸手可及:AI健康小屋——未來健康管理的全能守護者

AI健康小屋&#xff0c;這座融合人工智能、物聯網與醫療科技的“健康堡壘”&#xff0c;正悄然重構健康管理生態。它以科技為引擎&#xff0c;將專業醫療資源下沉至社區、企業、家庭&#xff0c;通過智能檢測、精準分析、個性化干預&#xff0c;實現從疾病治療到主動預防的健康…

[工作表控件19] 驗證規則實戰:如何用正則表達式規范業務輸入?

在企業應用中,數據準確性至關重要。工作表控件通過“驗證規則”能力,支持在文本字段和附件字段中使用正則表達式(RegEx)進行格式校驗。它能幫助開發者輕松實現郵箱、身份證號、車牌號、URL 等格式的高效驗證,大幅提升數據質量與表單使用體驗。 一、官方功能介紹與基礎能力…

uniapp分包實現

關于分包優化的說明 在對應平臺的配置下添加"optimization":{"subPackages":true}開啟分包優化 目前只支持mp-weixin、mp-qq、mp-baidu、mp-toutiao、mp-kuaishou的分包優化 分包優化具體邏輯&#xff1a; 靜態文件&#xff1a;分包下支持 static 等靜態…

ctfshow_web14------(PHP+switch case 穿透+SQL注入+文件讀取)

題目&#xff1a;解釋&#xff1a;$c intval($_GET[c]); //獲取整數值 6sleep($c);//延遲執行當前腳本若干秒。提示一下哈沒有break會接著執行下面的但是像是44444&#xff0c;555555,sleep的時間太久我們用3進入here_1s_your_f1ag.php是一個查詢頁面&#xff0c;sql注入查看源…

linux x86_64中打包qt

下載安裝 地址: Releases linuxdeploy/linuxdeploy mv linuxdeploy-x86_64.AppImage linuxdeployqtchmod 777 linuxdeployqtsudo mv linuxdeployqt /usr/local/bin/linuxdeployqt --version報錯 Applmage默認依賴FUSE&#xff0c;需要掛載自身為虛擬文件系統才能運行, ubuntu…