A Python library for stock data analysis using BaoStock API
Project description
CHENYE-STOCK-ANALYSIS
CHENYE-STOCK-ANALYSIS 是一个基于 BaoStock 的 Python 包,用于轻松获取中国 A 股市场的股票数据并进行常见的技术指标计算(如布林带、KDJ 指标)。此工具可帮助开发者快速实现股票数据分析与可视化。
功能特点
- 获取最新交易日数据: 提供中国 A 股市场最近交易日的日期查询。
- 股票代码过滤: 获取所有非 ST 股、非科创板和非北交所股票代码及名称。
- 股票数据采集: 基于给定股票代码及日期范围,获取历史 K 线数据。
- 技术指标计算:
- 布林带(Bollinger Bands):计算中轨、上轨和下轨。
- KDJ 指标:计算 K、D、J 指标。
- 数据导出: 支持将获取到的股票数据保存为 CSV 文件。
安装
在 Python 环境中运行以下命令安装该包:
pip install CHENYE-STOCK-ANALYSIS==0.1.0
如何使用
以下是使用该包的完整示例代码:
# Step 1: 安装包
!pip install CHENYE-STOCK-ANALYSIS==0.1.0
# Step 2: 导入包
from stock_analysis.stock_analysis import DataFetcher
# Step 3: 初始化 DataFetcher
fetcher = DataFetcher()
try:
# 找到最近交易日
recent_trading_day = fetcher.find_recent_trading_day()
print(f"最近交易日: {recent_trading_day}")
# 获取所有 A 股股票代码和名称
codes, names = fetcher.get_all_stock_codes()
print(f"获取到 {len(codes)} 支股票")
# 限制为前 10 支股票(仅作示例)
limited_codes = codes[:10]
limited_names = names[:10]
# 获取所有股票的最近交易日数据
data = fetcher.get_data_for_all_stocks(limited_codes, limited_names, recent_trading_day)
print(data)
# 保存数据到本地文件
data.to_csv("stock_data.csv", index=False)
print("数据已保存到 stock_data.csv")
finally:
# 注销 BaoStock
fetcher.logout()
函数详细说明
1. DataFetcher 类
初始化
fetcher = DataFetcher()
- 作用:初始化
DataFetcher对象,并登录到 BaoStock 系统。 - 登录失败时会抛出异常。
2. find_recent_trading_day()
recent_trading_day = fetcher.find_recent_trading_day()
- 作用:获取中国 A 股市场最近的交易日。
- 返回值:
str类型,格式为YYYYMMDD。
3. get_all_stock_codes()
codes, names = fetcher.get_all_stock_codes()
- 作用:获取所有 A 股股票代码和名称,过滤掉 ST 股、科创板及北交所股票。
- 返回值:
codes:股票代码列表。names:股票名称列表。
4. fetch_stock_data(code, start_date, end_date)
df = fetcher.fetch_stock_data("sh.600000", "20231201", "20231231")
- 作用:根据指定股票代码和日期范围,获取历史 K 线数据。
- 参数:
code:股票代码(如sh.600000)。start_date:起始日期,格式YYYYMMDD。end_date:结束日期,格式YYYYMMDD。
- 返回值:
pandas.DataFrame,包含日期、开盘价、收盘价等信息。
5. compute_bollinger_bands(df, period=20, multiplier=2)
df_with_bbands = fetcher.compute_bollinger_bands(df)
- 作用:计算布林带(Bollinger Bands)的中轨、上轨和下轨。
- 参数:
df:输入的pandas.DataFrame,需包含close列。period:计算窗口,默认为 20。multiplier:标准差倍数,默认为 2。
- 返回值:更新后的
DataFrame,新增以下列:布林带中轨布林带上轨布林带下轨
6. compute_kdj(df, n=7, m1=3, m2=3)
df_with_kdj = fetcher.compute_kdj(df)
- 作用:计算 KDJ 指标(K、D、J 值)。
- 参数:
df:输入的pandas.DataFrame,需包含low,high,close列。n:计算周期,默认为 7。m1:K 值平滑周期,默认为 3。m2:D 值平滑周期,默认为 3。
- 返回值:更新后的
DataFrame,新增以下列:K值D值J值
7. build_stock_record(df, code, name, check_date)
record = fetcher.build_stock_record(df, "sh.600000", "浦发银行", "20231231")
- 作用:构建单只股票在指定日期的记录(字典形式)。
- 参数:
df:包含指标计算结果的pandas.DataFrame。code:股票代码。name:股票名称。check_date:目标日期,格式YYYYMMDD。
- 返回值:包含股票代码、名称、技术指标等信息的字典。
8. get_data_for_all_stocks(codes, names, recent_trading_day)
data = fetcher.get_data_for_all_stocks(codes, names, recent_trading_day)
- 作用:批量获取股票数据,并计算布林带和 KDJ 指标。
- 参数:
codes:股票代码列表。names:股票名称列表。recent_trading_day:最近交易日。
- 返回值:包含所有股票数据的
DataFrame。
9. logout()
fetcher.logout()
- 作用:退出 BaoStock 系统。
- 在程序结束时调用以释放资源。
支持和反馈
如果您在使用中有任何问题或建议,请通过 GitHub Issues 提交问题,我们会尽快回复。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chenye_stock_analysis-0.1.1.tar.gz.
File metadata
- Download URL: chenye_stock_analysis-0.1.1.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4251ebe128afcef3aec3c900871628443a03ff9cba1cab7a7bbb19512dd723d4
|
|
| MD5 |
09a006013cca74189878e6228c06f0c9
|
|
| BLAKE2b-256 |
8138318699723fed3d307606018130707c2fdc2ba4c0bca89594d47ac0cd528b
|
File details
Details for the file CHENYE_STOCK_ANALYSIS-0.1.1-py3-none-any.whl.
File metadata
- Download URL: CHENYE_STOCK_ANALYSIS-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6793926e0890a266e32c7071a11d09f81f34bff77d428a12f0f0ce385ea473e4
|
|
| MD5 |
0862f0843048dd21d2c138f8716b707f
|
|
| BLAKE2b-256 |
d5f5a0ed0ef23a559a9bbdea418e45f88f9f18f42520834c41fa1d616be9897a
|