Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chenye_stock_analysis-0.1.1.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

CHENYE_STOCK_ANALYSIS-0.1.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

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

Hashes for chenye_stock_analysis-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4251ebe128afcef3aec3c900871628443a03ff9cba1cab7a7bbb19512dd723d4
MD5 09a006013cca74189878e6228c06f0c9
BLAKE2b-256 8138318699723fed3d307606018130707c2fdc2ba4c0bca89594d47ac0cd528b

See more details on using hashes here.

File details

Details for the file CHENYE_STOCK_ANALYSIS-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for CHENYE_STOCK_ANALYSIS-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6793926e0890a266e32c7071a11d09f81f34bff77d428a12f0f0ce385ea473e4
MD5 0862f0843048dd21d2c138f8716b707f
BLAKE2b-256 d5f5a0ed0ef23a559a9bbdea418e45f88f9f18f42520834c41fa1d616be9897a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page