Skip to main content

Elegant and efficient Python library for wind financial data access with comprehensive abstraction layers and 100% forward compatibility

Project description

Kepler Wind

优雅的量化数据访问接口,基于 Wind 金融终端数据库。

安装

pip install kepler-wind

快速开始

from kepler.wind import Wind

w = Wind()

API 设计

按资产分类,每个资产提供截面和时序查询方法。

股票池

# 当前成分股
w.universe.members("HS300")

# 历史成分股
w.universe.at("HS300", "20240101")

# 完整变更历史
w.universe.history("HS300")

# 支持的指数
w.universe.members("A")        # 全A股
w.universe.members("ZZ500")    # 中证500
w.universe.members("MSCI")     # MSCI

指数

# 历史数据(自动识别指数类型)
w.index.history("000001.SH")                    # 普通指数
w.index.history("801010.SI")                    # 申万指数
w.index.history("CI005001.WI")                  # 中信指数
w.index.history("884001.WI")                    # Wind行业指数
w.index.history(["000001.SH", "801010.SI"])     # 混合查询

# 成分权重
w.index.weight("000300.SH")
w.index.weight("000300.SH", date="20240101")

收益率

# 截面:某日所有股票收益率
w.returns.on("20240101")

# 时序:日收益率
w.returns.daily("000001.SZ")
w.returns.daily(["000001.SZ", "000002.SZ"])

# 时序:月收益率
w.returns.monthly("000001.SZ")

行业

# A股行业(中信分类)
w.industry.on("20240101")                   # 截面:某日所有股票行业
w.industry.on("20240101", level=2)          # 二级行业
w.industry.of("000001.SZ")                  # 单股行业
w.industry.of("000001.SZ", date="20240101")

# 港股行业
w.industry_hk.on("20240101")                          # 港股中信行业(默认)
w.industry_hk.on("20240101", source="wind")           # 港股Wind一级行业
w.industry_hk.on("20240101", source="wind", level=2)  # 港股Wind二级行业
w.industry_hk.of("0001.HK", date="20240101")

基金

# 历史净值
w.fund.history("000001.OF")

# 筛选基金
w.fund.filter(type="股票型")

迁移指南

从旧版本迁移到新版本的 API 对照:

股票池

旧 API 新 API
universe_A() w.universe.members("A")
universe_A(cur_sign=False) w.universe.history("A")
universe_normal("HS300") w.universe.members("HS300")
universe_normal("HS300", cur_sign=False) w.universe.at("HS300", date)
universe_msci() w.universe.members("MSCI")
Universe("HS300") w.universe.members("HS300")
get_all_normal_index("HS300") w.universe.members("HS300")
get_all_msci() w.universe.members("MSCI")
get_all_stk() w.universe.members("A")
get_all_hk("HS300") w.universe.members("HK")

指数

旧 API 新 API
get_index_data("000001.SH") w.index.history("000001.SH")
get_index_data(["000001.SH", "801010.SI"]) w.index.history(["000001.SH", "801010.SI"])
get_index_data_tmp(codes, "zx") w.index.history(codes) (自动识别)
get_index_weight("000300.SH") w.index.weight("000300.SH")
get_index_weight("000300.SH", "20240101") w.index.weight("000300.SH", date="20240101")

收益率

旧 API 新 API
get_daily_ret("000001.SZ") w.returns.daily("000001.SZ")
get_daily_ret(["000001.SZ", "000002.SZ"]) w.returns.daily(["000001.SZ", "000002.SZ"])
get_monthly_ret("000001.SZ") w.returns.monthly("000001.SZ")

行业

旧 API 新 API
get_industry("20240101") w.industry.on("20240101")
get_industry("20240101", sid="000001.SZ") w.industry.of("000001.SZ", date="20240101")
get_industry("20240101", level=2) w.industry.on("20240101", level=2)
get_industry_hk("20240101") w.industry_hk.on("20240101")
get_industry_windhk("20240101", level=2) w.industry_hk.on("20240101", source="wind", level=2)

基金

旧 API 新 API
get_fund_nav("000001.OF") w.fund.history("000001.OF")
get_fund_nav(["000001.OF", "000002.OF"]) w.fund.history(["000001.OF", "000002.OF"])
get_fund_list() w.fund.filter()
get_fund_filter("股票型") w.fund.filter(type="股票型")

配置

方式一:配置文件

配置文件位于 ~/.kepler/wind/wind.toml

[wind]
engine = "mysql+pymysql://user:pass@host:3306/db"
schema = ""  # MySQL 留空,PostgreSQL 填 "public"

方式二:代码传入

from kepler.wind import Wind

# MySQL
w = Wind(url="mysql+pymysql://user:pass@host:3306/wind")

# PostgreSQL
w = Wind(url="postgresql://user:pass@host:5432/db", schema="public")

依赖

  • kepler-atlas >= 0.1.5
  • kepler-pulse >= 0.1.8
  • pandas
  • sqlalchemy

License

MIT

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

kepler_wind-0.2.3.tar.gz (28.7 kB view details)

Uploaded Source

Built Distribution

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

kepler_wind-0.2.3-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

Details for the file kepler_wind-0.2.3.tar.gz.

File metadata

  • Download URL: kepler_wind-0.2.3.tar.gz
  • Upload date:
  • Size: 28.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for kepler_wind-0.2.3.tar.gz
Algorithm Hash digest
SHA256 1994195f126bf16828267b2b9f04ab97699c70bcd75a56557a12d14a8910bac9
MD5 685a349cfa8e623e17844b476a6c363a
BLAKE2b-256 cda4dbbe313747aa6ff7a0106ae8aee358666e5bd4c13bb08f9b96eb95cb6406

See more details on using hashes here.

File details

Details for the file kepler_wind-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: kepler_wind-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 30.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for kepler_wind-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7c5d3f22bc4893f5d5aa59959bb183c72fa5de3892f8079d3b4cace109d19d46
MD5 ad7a949aaf087bd87810aa433cc579e8
BLAKE2b-256 a39d601861e3e29a69b4ee737b75edf072464a5069afe037b251da986f119668

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