Windpy Sdk

SKILL开发
开发 未标注权限 许可证不明确

WindPy SDK 本地调用参考手册。当用户需要编写使用 Wind 金融终端 Python API (from WindPy import w) 的代码时使用此技能。覆盖全部数据函数的签名、参数、返回值和示例。

一句话选型结论

按资料字段整理

Windpy Sdk是开发类的 Agent Skill,安装方式:GitHub 仓库,权限级别未标注,许可证不明确,没有现成安装命令,需按说明手动放置 SKILL.md。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式GitHub 仓库 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 skills
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

GitHub 仓库
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    按安装说明或仓库 README,把 SKILL.md 放到客户端的 skills 目录(一般一个技能一个文件夹)。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方hanlinlibham仓库 skills · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式GitHub 仓库安装包 hanlinlibham/skills
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 2026-03-10
正文体量17.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按说明装一个试试。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有现成安装命令,要按安装说明或仓库 README 手动放置。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Windpy Sdk当前 未标注权限 GitHub 仓库 未标注 未标注 无
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

17.2 KB
模型实际读到的说明书原文,来自技能仓库

WindPy SDK 本地调用参考手册

本技能提供 Wind 金融终端 Python API (from WindPy import w) 的完整函数参考,用于编写直接调用 WindPy SDK 的 Python 代码。

触发条件

当用户需要:
- 编写使用 from WindPy import w 的 Python 代码
- 查询 Wind API 某个函数的用法、参数或字段
- 获取 A 股/债券/基金/期货/宏观数据的 Wind 代码
- 调试 WindPy SDK 调用错误

连接管理

from WindPy import w

w.start()              # 启动连接,默认超时120秒
w.start(waitTime=60)   # 自定义超时60秒
w.isconnected()        # 返回 True/False
w.stop()               # 停止连接(程序退出自动调用,一般不需要)

注意事项:
- w.start() 不会重复启动,需改参数时先 w.stop() 再 w.start()
- Mac 版 SDK 部分财务报表字段不可用(错误码 -40520017、-40522006)


核心数据函数

1. w.wsd() — 日级时间序列

获取单品种多指标 或 多品种单指标 的日级时间序列数据。

w.wsd(codes, fields, beginTime, endTime, options, usedf=True)
参数 类型 必选 说明
codes str/list 是 证券代码。多品种时 fields 只能单个
fields str/list 是 指标。如 "close,high,low,open"
beginTime str/datetime 否 起始日期。支持 "2024-01-01", "20240101", "-30D", "IPO"
endTime str/datetime 否 截止日期。默认当前日期
options str 否 参数字符串,见下方

常用 options:
- PriceAdj=F 前复权 / B 后复权 / 不填=不复权
- Period=D 日 / W 周 / M 月 / Q 季 / Y 年
- Days=Trading 交易日(默认) / Weekdays 工作日 / Alldays 日历日
- Fill=Previous 沿用前值 / Blank 返回空值
- TradingCalendar=SSE 上交所(默认) / SZSE / HKEX / NYSE 等

返回值: (ErrorCode, DataFrame) 当 usedf=True

# 单品种多指标
err, df = w.wsd("600519.SH", "open,high,low,close,volume,amt,pct_chg",
                "2024-01-01", "2024-06-30", "PriceAdj=F", usedf=True)

# 多品种单指标
err, df = w.wsd("600519.SH,000858.SZ,000001.SZ", "close",
                "-30D", "", "PriceAdj=F", usedf=True)

# 月线数据
err, df = w.wsd("600519.SH", "close,volume", "-2Y", "", "Period=M", usedf=True)

# 资金流向
err, df = w.wsd("600519.SH",
    "mfd_inflow_xl,mfd_inflow_l,mfd_inflow_m,mfd_inflow_s,mfd_inflow",
    "-30D", "", "", usedf=True)

# 债券数据
err, df = w.wsd("010107.SH", "ytm_b,duration,convexity,close",
                "2024-01-01", "2024-06-30", "PriceAdj=CP", usedf=True)

常用 fields(行情): open, high, low, close, pre_close, volume, amt, pct_chg, turn, vwap, mkt_cap_ard, pe_ttm, pb_lf

常用 fields(资金流向): mfd_inflow_xl(超大单), mfd_inflow_l(大单), mfd_inflow_m(中单), mfd_inflow_s(小单), mfd_inflow(主力净流入)


2. w.wss() — 截面快照

获取多品种多指标的某一时点截面数据。

w.wss(codes, fields, options, usedf=True)
参数 类型 必选 说明
codes str/list 是 证券代码,支持多品种
fields str/list 是 指标,支持多指标
options str 否 如 tradeDate, rptDate, rptType 等

常用 options:
- tradeDate=20240101 指定交易日
- rptDate=20231231 指定报告期
- rptType=408001000 合并报表(默认) / 408004000 合并报表(调整) / 408005000 合并报表(更正前)
- year=2024 指定年份(业绩预告用)
- currencyType=CNY 币种

# 行情快照(多品种多指标)
err, df = w.wss("600519.SH,000858.SZ",
    "sec_name,close,pct_chg,pe_ttm,pb_lf,mkt_cap_ard",
    f"tradeDate=20240628", usedf=True)

# 基本信息
err, df = w.wss("600519.SH",
    "sec_name,sec_englishname,industry_sw,industry_sw_level2,"
    "listdate,province,chairman,mkt_cap_ard,total_shares,float_a_shares",
    "", usedf=True)

# 核心财务指标
err, df = w.wss("600519.SH",
    "roe_ttm,roa_ttm,grossprofit_margin,netprofit_margin,"
    "eps_ttm,pe_ttm,pb_lf,ps_ttm,current_ratio,debttoassets,"
    "yoynetprofit,yoyrevenue",
    f"tradeDate=20240628", usedf=True)

# 利润表
err, df = w.wss("600519.SH",
    "tot_oper_rev,oper_rev,tot_oper_cost,oper_cost,"
    "oper_profit,tot_profit,net_profit_is,eps_basic,eps_diluted",
    "rptDate=20231231;rptType=408001000", usedf=True)

# 资产负债表
err, df = w.wss("600519.SH",
    "tot_assets,tot_cur_assets,cash_equivalents,inventories,"
    "tot_non_cur_assets,fix_assets,tot_liab,tot_cur_liab,"
    "st_borrow,lt_borrow,tot_equity,undist_profit",
    "rptDate=20231231;rptType=408001000", usedf=True)

# 现金流量表
err, df = w.wss("600519.SH",
    "net_cash_flows_oper_act,net_cash_flows_inv_act,"
    "net_cash_flows_fnc_act,free_cash_flow",
    "rptDate=20231231;rptType=408001000", usedf=True)

# 业绩预告
err, df = w.wss("600519.SH",
    "profitnotice_date,profitnotice_style,"
    "profitnotice_netprofitmin,profitnotice_netprofitmax,"
    "profitnotice_changemin,profitnotice_changemax,profitnotice_reason",
    f"year=2024", usedf=True)

# 业绩快报
err, df = w.wss("600519.SH",
    "expr_discdate,expr_oper_rev,expr_oper_profit,expr_tot_profit,"
    "expr_net_profit_parent_comp,expr_eps_basic,expr_roe_diluted,"
    "expr_yoy_oper_rev,expr_yoy_net_profit",
    "rptDate=20231231", usedf=True)

# 区间涨跌幅
err, df = w.wss("600519.SH,000858.SZ", "sec_name,pct_chg_per",
    "startDate=20240101;endDate=20240628", usedf=True)

常用 fields 速查见 references/field-catalog.md


3. w.wsq() — 实时行情

获取当天实时行情快照,或订阅实时数据推送。

# 快照模式
w.wsq(codes, fields, usedf=True)

# 订阅模式
w.wsq(codes, fields, func=callback_function)
w.cancelRequest(requestID)  # 取消订阅, 0=取消全部
# 快照
err, df = w.wsq("600519.SH,000858.SZ",
    "rt_last,rt_open,rt_high,rt_low,rt_pct_chg,rt_vol,rt_amt,rt_chg",
    usedf=True)

# 订阅模式
def on_quote(indata):
    print(f"Code: {indata.Codes}, Fields: {indata.Fields}, Data: {indata.Data}")

data = w.wsq("600519.SH", "rt_last,rt_vol", func=on_quote)
# ... 等待回调 ...
w.cancelRequest(data.RequestID)  # 取消订阅

实时行情 fields(rt_ 前缀): rt_last(最新价), rt_open, rt_high, rt_low, rt_pre_close, rt_pct_chg, rt_chg, rt_vol(成交量), rt_amt(成交额), rt_last_vol(最新成交量)


4. w.wsi() — 分钟级 K 线

获取 1-60 分钟级别的 OHLCV 数据。支持国内六大交易所近三年数据。

w.wsi(codes, fields, beginTime, endTime, options, usedf=True)
参数 类型 必选 说明
codes str/list 是 证券代码(带后缀)
fields str/list 是 如 "open,high,low,close,volume"
beginTime str/datetime 否 如 "2024-06-28 09:30:00"
endTime str/datetime 否 默认当前时间

options:
- BarSize=5 分钟数(1-60,默认1)
- PriceAdj=F 前复权 / B 后复权 / U 不复权(默认)
- Fill=Previous 沿用前值

限制: 单品种近三年;多品种时 品种数×天数 ≤ 100

# 5分钟K线
err, df = w.wsi("600519.SH", "open,high,low,close,volume,amt",
    "2024-06-28 09:30:00", "2024-06-28 15:00:00", "BarSize=5", usedf=True)

# 15分钟K线(最近3天)
err, df = w.wsi("600519.SH", "open,high,low,close,volume",
    "-3D 09:30:00", "", "BarSize=15", usedf=True)

# 期货分钟数据
err, df = w.wsi("IF00.CFE", "open,high,low,close",
    "2024-06-28 09:30:00", "2024-06-28 15:00:00", "BarSize=1", usedf=True)

5. w.wst() — Tick 逐笔数据

获取日内盘口买卖五档快照和分时成交数据。仅支持单品种,近七个交易日。

w.wst(codes, fields, beginTime, endTime, options, usedf=True)
# 逐笔成交
err, df = w.wst("600519.SH", "last,volume,amt,bid1,bsize1,ask1,asize1",
    "2024-06-28 09:30:00", "2024-06-28 11:30:00", "", usedf=True)

Tick fields: last(最新价), volume, amt, bid1~bid5(买1~5价), bsize1~bsize5(买1~5量), ask1~ask5(卖1~5价), asize1~asize5(卖1~5量)


6. w.wses() — 板块日级时间序列

获取板块级别的历史日序列数据(如板块平均收盘价、PE等)。

w.wses(codes, fields, beginTime, endTime, options, usedf=True)

注意: 一次仅支持单指标,可多板块。

# 上证A股和深证A股的平均收盘价
err, df = w.wses("a001010200000000,a001010300000000", "sec_close_avg",
    "2024-01-01", "2024-06-30", "", usedf=True)

options:
- DynamicTime=0 使用板块历史成分 / 1 使用最新成分(默认)
- Period=D 日(默认) / W 周 / M 月


7. w.wsee() — 板块截面快照

获取多板块多指标的某一天截面数据。

w.wsee(codes, fields, options, usedf=True)
# 多板块截面对比
err, df = w.wsee("a001010200000000,a001010300000000",
    "sec_close_avg,sec_pct_chg_avg,sec_pe_ttm_median",
    "tradeDate=20240628", usedf=True)

8. w.wset() — 报表数据集

获取板块成分、指数成分、龙虎榜、分红送转、停复牌等报表数据。

w.wset(tableName, options, usedf=True)
tableName 用途 options 示例
sectorconstituent 板块成分股 date=2024-06-28;sectorid=a001010100000000
indexconstituent 指数成分股 date=2024-06-28;windcode=000300.SH
abnormalactivitiesranking 龙虎榜 startdate=2024-06-28;enddate=2024-06-28;field=...
dividendproposal 分红方案 year=2024
tradingsuspend 停牌股票 startdate=2024-06-28;enddate=2024-06-28
marginassetsandliabilities 融资融券标的 date=2024-06-28;sectorid=...
etfconstituent ETF 申赎清单 date=2024-06-28;windcode=510300.SH
# 全部A股成分股
err, df = w.wset("sectorconstituent",
    "date=2024-06-28;sectorid=a001010100000000", usedf=True)
# 返回列: date, wind_code, sec_name

# 沪深300成分股
err, df = w.wset("indexconstituent",
    "date=2024-06-28;windcode=000300.SH", usedf=True)

# 申万一级行业成分股
err, df = w.wset("sectorconstituent",
    "date=2024-06-28;sectorid=a39901011g000000", usedf=True)

# 龙虎榜
err, df = w.wset("abnormalactivitiesranking",
    "startdate=2024-06-28;enddate=2024-06-28;"
    "field=trade_dt,wind_code,sec_name,close,pct_chg,netbuyamt",
    usedf=True)

常用板块 sectorid:
| 板块 | sectorid |
|------|----------|
| 全部A股 | a001010100000000 |
| 上证A股 | a001010200000000 |
| 深证A股 | a001010300000000 |
| 创业板 | 1000006528000000 |
| 科创板 | a001010l00000000 |
| 全部年金养老金 | 1000019226000000 |
| 混合养老金 | 1000023520000000 |
| 股票养老金 | 1000023515000000 |
| Wind股票型养老金 | 1000027483000000 |


9. w.edb() — 宏观经济数据库

获取 Wind EDB 宏观经济数据库中的指标数据。

w.edb(codes, beginTime, endTime, options, usedf=True)
# GDP
err, df = w.edb("M5567876,M5567889", "2022-01-01", "2024-06-30",
    "Fill=Previous", usedf=True)

# CPI
err, df = w.edb("M0000612,M0000705,M0085932,M0085934", "2023-01-01", "",
    "Fill=Previous", usedf=True)

# PMI
err, df = w.edb("M0017126,M0017127,M5206730", "2023-01-01", "",
    "Fill=Previous", usedf=True)

# M2
err, df = w.edb("M0001384,M0001385,M0001391", "2023-01-01", "",
    "Fill=Previous", usedf=True)

# 利率
err, df = w.edb("M0329537,M0329538,M0017139", "2023-01-01", "",
    "Fill=Previous", usedf=True)

完整 EDB 指标代码见 references/edb-indicators.md


10. 交易日历函数

# w.tdays() — 获取日期区间内的交易日序列
data = w.tdays("2024-01-01", "2024-06-30", "")
dates = data.Data[0]  # [datetime, datetime, ...]

# w.tdaysoffset() — 获取偏移后的交易日
data = w.tdaysoffset(0)           # 最近交易日
data = w.tdaysoffset(-10)         # 前推10个交易日
data = w.tdaysoffset(-3, "2024-06-28", "Period=M")  # 前推3个月
date = data.Data[0][0]            # datetime 对象

# w.tdayscount() — 统计区间内交易日数量
data = w.tdayscount("2024-01-01", "2024-12-31", "")
count = data.Data[0][0]           # int

options:
- Days=Trading 交易日(默认) / Weekdays 工作日 / Alldays 日历日
- Period=D 天(默认) / W 周 / M 月 / Q 季 / Y 年
- TradingCalendar=SSE 上交所(默认) / 其他交易所代码


日期宏

WindPy 支持相对日期表达式:

格式 含义 示例
-5D 前推5个日历日 beginTime="-5D"
-10TD 前推10个交易日 beginTime="-10TD"
-1M 前推1个月 beginTime="-1M"
-2Y 前推2年 beginTime="-2Y"
IPO 上市首日 beginTime="IPO"
LYR 去年年报 rptDate 参数
MRQ 最新一期 rptDate 参数
RYF 本年初 beginTime="RYF"
LME 上月末 endTime="LME"
ED 截止日期 用于计算 ED-10D

返回值处理

使用 usedf=True(推荐)

err, df = w.wsd("600519.SH", "close", "-10D", "", "", usedf=True)
if err == 0:
    print(df)           # pandas DataFrame
    print(df.columns)   # ['CLOSE']
else:
    print(f"错误: {err}")

不使用 usedf(返回 WindData 对象)

data = w.wsd("600519.SH", "close", "-10D", "")
if data.ErrorCode == 0:
    print(data.Codes)   # ['600519.SH']
    print(data.Fields)  # ['CLOSE']
    print(data.Times)   # [datetime, ...]
    print(data.Data)    # [[1800.0, 1810.5, ...]]

错误码说明

错误码 含义
0 成功
-40520007 无数据权限
-40520017 字段不支持(Mac常见)
-40522006 参数错误
-40521001 网络连接失败

常用代码模板

获取最近交易日

from datetime import datetime

def get_latest_trade_date():
    data = w.tdaysoffset(0, datetime.now().strftime('%Y-%m-%d'), "")
    if data.ErrorCode == 0:
        return data.Data[0][0].strftime('%Y-%m-%d')
    return datetime.now().strftime('%Y-%m-%d')

def get_trade_date_offset(n):
    """前推 n 个交易日"""
    data = w.tdaysoffset(-n, datetime.now().strftime('%Y-%m-%d'), "")
    if data.ErrorCode == 0:
        return data.Data[0][0].strftime('%Y-%m-%d')
    return datetime.now().strftime('%Y-%m-%d')

批量获取板块所有股票数据

trade_date = get_latest_trade_date()

# 获取成分股
data = w.wset("sectorconstituent", f"date={trade_date};sectorid=a001010100000000")
stocks = data.Data[1]  # wind_code 列表

# 获取数据
err, df = w.wss(stocks,
    "sec_name,industry_sw,close,pct_chg,pe_ttm,pb_lf,mkt_cap_ard",
    f"tradeDate={trade_date.replace('-','')}", usedf=True)

多期财务数据对比

results = {}
for year in range(2019, 2024):
    err, df = w.wss("600519.SH",
        "tot_oper_rev,net_profit_is,roe_diluted,eps_basic",
        f"rptDate={year}1231;rptType=408001000", usedf=True)
    if err == 0:
        results[year] = df.iloc[0].to_dict()

import pandas as pd
summary = pd.DataFrame(results).T

养老金基金数据批量获取

# 获取混合养老金板块成分基金(代码格式 xxBxxx.OF)
err, df_sector = w.wset("sectorconstituent",
    "date=20260307;sectorId=1000023520000000;", usedf=True)
fund_codes = df_sector['wind_code'].tolist()
code_to_name = dict(zip(df_sector['wind_code'], df_sector['sec_name']))

# 获取净值(多品种单指标)
err, df_nav = w.wsd(fund_codes, "nav",
    "2020-01-01", "2026-03-07", "unit=1;", usedf=True)

# 获取基金资产净值(注意:用 netasset_total,不要用 vnetasset_total)
err, df_na = w.wsd(fund_codes, "netasset_total",
    "2020-01-01", "2026-03-07", "unit=1;", usedf=True)

# 列名加上基金名称,便于识别
df_nav.columns = [f"{c}|{code_to_name.get(c, '')}" for c in df_nav.columns]

相关性分析

import numpy as np

err, df = w.wsd("600519.SH,000858.SZ,000001.SZ", "close",
    "-250TD", "", "PriceAdj=F", usedf=True)

if err == 0:
    returns = df.pct_change().dropna()
    corr = returns.corr()
    print(corr)

注意事项

  1. usedf=True 返回 (ErrorCode, DataFrame);不加返回 WindData 对象
  2. 日期格式 均可用 "2024-01-01", "20240101", "-5D", datetime 对象
  3. wsd 多品种 时 fields 只能选一个
  4. wss 一次 只能取一个交易日/报告期,但可多品种多指标
  5. wsi 多品种时:品种数 × 天数 ≤ 100
  6. wst 仅支持单品种,近 7 个交易日
  7. DataFrame 列名 自动大写:close → CLOSE, pe_ttm → PE_TTM
  8. 股票代码格式:600519.SH(沪), 000001.SZ(深), 300750.SZ(创), 688xxx.SH(科创), 8xxxxx.BJ(北交所), xxBxxx.OF(养老金基金)
  9. 基金字段:vnetasset_total 不可用(错误码 -40522007),应使用 netasset_total 获取基金资产净值

常见问题

5 问
答案由本站依据条目字段整理
Windpy Sdk怎么安装?

没有现成安装命令:按安装说明或仓库 README,把 SKILL.md 放进客户端的 skills 目录(一般一个技能一个文件夹)。

Windpy Sdk支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Windpy Sdk权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Windpy Sdk收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Windpy Sdk用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。