调用免费开源的A股金融数据平台 - 无需注册即可获取历史K线、财务数据、宏观数据
bash
pip install baostock
python
import baostock as bs
import pandas as pd
# 登录系统
lg = bs.login()
print('login respond error_code:', lg.error_code)
print('login respond error_msg:', lg.error_msg)
# 获取历史K线数据
rs = bs.query_history_k_data_plus(
"sh.600000",
"date,code,open,high,low,close,volume,amount",
start_date='2024-01-01',
end_date='2024-12-31',
frequency="d",
adjustflag="3"
)
# 转换为DataFrame
data_list = []
while (rs.error_code == '0') & rs.next():
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
print(result)
# 登出系统
bs.logout()
函数说明login()登录系统logout()登出系统
函数说明query_history_k_data_plus()获取历史A股K线数据(日/周/月/分钟线)
参数说明:
code: 股票代码(sh.600000 或 sz.000001)fields: 指标列表,逗号分隔start_date: 开始日期(YYYY-MM-DD)end_date: 结束日期(YYYY-MM-DD)frequency: 数据类型(d=日线, w=周线, m=月线, 5/15/30/60=分钟线)adjustflag: 复权类型(1=后复权, 2=前复权, 3=不复权)常用指标:
text
date,code,open,high,low,close,volume,amount,adjustflag,turn,tradestatus,pctChg
peTTM,pbMRQ,psTTM,pcfNcfTTM,isST
函数说明query_dividend_data()查询除权除息信息
参数:
code: 股票代码year: 年份yearType: 年份类型(report=预案公告年份, operate=除权除息年份)函数说明query_adjust_factor()查询复权因子信息
参数:
code: 股票代码start_date: 开始日期end_date: 结束日期函数说明query_profit_data()季频盈利能力query_operation_data()季频营运能力query_growth_data()季频成长能力query_balance_data()季频偿债能力query_cash_flow_data()季频现金流量query_dupont_data()季频杜邦指数
参数:
code: 股票代码year: 统计年份quarter: 统计季度(1/2/3/4)主要返回字段:
函数说明query_performance_express_report()季频业绩快报query_forecast_report()季频业绩预告
函数说明query_stock_basic()证券基本资料
参数:
code: 股票代码(可选)code_name: 股票名称(支持模糊查询)返回字段:
函数说明query_trade_dates()交易日查询query_all_stock()证券代码查询
函数说明query_deposit_rate_data()存款利率query_loan_rate_data()贷款利率query_required_reserve_ratio_data()存款准备金率query_money_supply_data_month()货币供应量/月query_money_supply_data_year()货币供应量/年
函数说明query_stock_industry()行业分类query_sz50_stocks()上证50成分股query_hs300_stocks()沪深300成分股query_zz500_stocks()中证500成分股
sh.xxxxxx - 上海证券交易所(6位数字)sz.xxxxxx - 深圳证券交易所(6位数字)sh.000001 - 上证指数sh.000300 - 沪深300指数"全市场扫描" = 全部A股股票 ,不包括沪深300/上证50/中证500等成分股
除非特别指明"沪深300"、"上证50",否则默认都是全部A股
字段值说明type``1仅A股股票 (排除指数/ETF/可转债)status``1仅上市状态 (排除退市/停牌)python
# 获取上市中的A股股票列表 (全市场)
rs = bs.query_stock_basic()
data = []
while rs.next():
data.append(rs.get_row_data())
df = pd.DataFrame(data, columns=rs.fields)
stocks = df[(df['type'] == '1') & (df['status'] == '1')]
# 约 5,191 只A股 (全市场)
# 仅沪深300成分股 (需特别指明)
rs = bs.query_hs300_stocks()
全市场扫描 (5,000+股票) 耗时长, 必须提示用户确认后再执行
text
⚠️ 即将进行全市场扫描
- 扫描范围:全部A股股票
- 预估时间:约30-60分钟
- 扫描进行中,请稍候...
/
python
import baostock as bs
import pandas as pd
lg = bs.login()
# 获取浦发银行日K线
rs = bs.query_history_k_data_plus(
"sh.600000",
"date,code,open,high,low,close,volume,amount,pctChg",
start_date='2024-01-01',
end_date='2024-12-31'
)
data_list = []
while (rs.error_code == '0') & rs.next():
data_list.append(rs.get_row_data())
df = pd.DataFrame(data_list, columns=rs.fields)
print(df)
bs.logout()
python
import baostock as bs
lg = bs.login()
# 获取所有股票
rs = bs.query_stock_basic()
while rs.next():
print(rs.get_row_data())
bs.logout()
python
import baostock as bs
lg = bs.login()
# 获取浦发银行2024年Q2盈利能力
rs = bs.query_profit_data(code="sh.600000", year=2024, quarter=2)
while rs.next():
print(rs.get_row_data())
bs.logout()
python
import baostock as bs
lg = bs.login()
# 获取上证50成分股
rs = bs.query_sz50_stocks()
while rs.next():
print(rs.get_row_data())
bs.logout()
本技能集成了 MyTT 技术分析库,当用户说"分析xxx的技术面"时,自动调用技术分析功能。
用户输入系统行为"分析中金黄金的技术面"调用 baostock + MyTT → 输出标准化技术分析报告"查询中金黄金的K线数据"仅调用 baostock → 输出原始K线数据(不经过MyTT)
当用户要求技术分析时,必须输出以下标准化格式:
bash
# 命令行使用
python3 scripts/technical_analysis.py sh.600489
# 或指定其他股票
python3 scripts/technical_analysis.py sz.000001
text
📈 中金黄金 (sh.600489) 技术分析报告
更新时间: 2026-03-14 22:13:42
============================================================
【均线系统】
├── MA5: 31.47 元 (方向: ↘)
├── MA10: 32.17 元 (方向: ↘)
├── MA20: 31.39 元 (方向: ↗)
├── MA30: 32.28 元 (方向: ↗)
├── MA60: 28.35 元 (方向: ↗)
└── 信号: MA5<MA10 死叉, MA20>MA60 多头
【MACD指标】
├── DIF: 0.4310
├── DEA: 0.7290
└── MACD: -0.5960
信号: 空头 死叉
【KDJ指标】
├── K: 24.53
├── D: 34.17
└── J: 5.26
信号: 死叉, 超卖
【RSI指标】
├── RSI(6): 52.08
├── RSI(12): 52.08
└── RSI(24): 52.08
信号: 偏强
【BOLL布林带】
├── 上轨: 33.93
├── 中轨: 31.39
└── 下轨: 28.84
信号: 在中轨附近
【综合判断】
├── 短期: ⭐⭐ (2/5)
├── 中期: ⭐⭐⭐⭐ (4/5)
└── 建议: 中性震荡
============================================================
数据来源: BaoStock + MyTT
本技能集成了以下 MyTT 指标函数:
分类指标说明趋势MACD指数平滑异同移动平均线趋势DMI动向指标趋势TRIX三重指数平滑平均线趋势EXPMAEMA指数平均数趋势BBI多空指标均线MA简单移动平均均线EMA指数移动平均均线SMA中国式SMA超买超卖KDJ随机指标超买超卖RSI相对强弱指标超买超卖WR威廉指标超买超卖CCI顺势指标超买超卖ROC变动率指标超买超卖MTM动量指标通道BOLL布林带通道KTN肯特纳交易通道通道TAQ唐安奇通道能量OBV能量潮能量VR容量比率能量MFI资金流量指标能量ASI振动升降指标能量EMV简易波动指标形态BRAR情绪指标形态PSY心理线形态DPO区间震荡线