Wind终端数据体系概览:认识股票、债券、基金、指数、期货、期权、外汇等主要数据类别及其字段结构

Wind金融终端之所以能成为国内金融机构投研、交易与风控的核心基础设施,其根本原因在于它构建了一套覆盖全球多资产、多市场、多频次的数据仓库体系。对于自动化导出与二次开发而言,理解这套数据体系的分类逻辑与字段结构,是避免“取数错、取数漏、取数慢”的第一道关卡。本章将系统拆解Wind终端中股票、债券、基金、指数、期货、期权、外汇七大类资产的数据组织方式,重点剖析其字段命名规则、板块归属逻辑以及不同资产间数据粒度的差异,为后续编写高效的提取公式与自动化脚本打下坚实基础。

Wind金融终端数据体系全景图(第3章) Wind数据仓库核心层 股票(A股/港股/美股) 债券(利率/信用/可转债) 基金(公募/私募/专户) 指数(宽基/行业/策略) 期货(商品/金融期货) 期权(ETF/个股/商品) 外汇(即期/远期/掉期) 字段结构共性层:代码+日期+指标+参数 基础字段 代码/名称/上市日/到期日 行情字段 开高低收/成交量/持仓量 财务/估值字段 EPS/PE/ROE/久期/凸性 另类/衍生字段 希腊字母/隐含波动率 核心逻辑:所有资产均遵循“代码定位→板块筛选→字段提取→时间序列对齐”的统一范式

上图展示了Wind数据体系的核心架构。可以看到,无论资产类别如何多样,其底层都共享一套“代码+日期+指标+参数”的字段结构逻辑。在实际操作中,我们通过Wind的API(如WSD、WSS、WSP等函数)提取数据时,本质上就是在与这套字段结构打交道。理解不同资产在字段命名上的差异(例如股票用close,债券用dirty_cnbd,期权用implied_index),是避免取数错误的关键。

3.1 股票数据:最基础的标准化结构

核心原理:股票数据是Wind体系中最成熟、字段最标准化的部分。A股、港股、美股虽然交易规则不同,但Wind通过统一的“证券代码+市场后缀”机制(如600519.SH、00700.HK、AAPL.O)进行区分。股票字段主要分为四大类:基础信息(上市日期、总股本)、行情快照(最新价、涨跌幅)、财务数据(营收、净利润)、估值数据(PE、PB)。

判断方法与操作流程:在自动化导出时,需明确所需字段的“字段ID”。例如,要提取贵州茅台的历史收盘价,使用WSD函数:WSD("600519.SH", "close", "2024-01-01", "2024-12-31", "")。若需要复权因子,则需指定参数PriceAdj=F(前复权)或B(后复权)。

字段类别典型字段ID说明适用场景
行情close / open / high / low不复权价格实时监控
复权行情close_adj前复权收盘价量化回测
财务tot_oper_rev / net_profit营业总收入/净利润基本面分析
估值pe_ttm / pb_lf滚动市盈率/市净率横向对比
经验提醒:股票数据提取时,务必注意“停牌”状态。Wind在停牌日的行情字段返回的是NaN或上一交易日价格,自动化脚本中需增加is_trading字段进行过滤,否则会导致回测信号失真。

3.2 债券数据:复杂的计息规则与估值体系

核心原理:债券数据的复杂度远高于股票,其核心在于“净价与全价”的区分、应计利息的计算以及久期/凸性等风险指标。Wind将债券分为利率债(国债、政金债)、信用债(中票、短融、企业债)和可转债。字段结构上,债券的行情字段包含dirty_cnbd(中债全价)、clean_cnbd(中债净价),而估值字段则包含ytm(到期收益率)、duration_mod(修正久期)。

操作流程与案例拆解:假设需要导出某只城投债的估值收益率曲线数据。使用WSD函数时,必须指定债券的估值来源(中债、中证或上清所)。例如:WSD("127210.SH", "ytm_cnbd", "2024-01-01", "2024-12-31", "BondVal=中债")。如果不指定BondVal参数,Wind默认返回中债估值,但部分私募债可能只有中证估值,此时就会返回空值。

风险提示:债券的“到期日”字段(maturity_date)与“剩余期限”字段(remain_term)在自动化导出时极易混淆。前者是静态字段,后者是随日期变化的动态字段。在构建债券池筛选策略时,应使用remain_term而非maturity_date,否则筛选结果会包含已到期债券。

3.3 基金数据:净值、份额与持仓穿透

核心原理:基金数据分为公募基金与私募基金。公募基金的核心字段是单位净值(unit_nav)、累计净值(accum_nav)和复权净值(adj_nav)。对于ETF,还需关注实时估值(IOPV)与折溢价率。私募基金数据则更多依赖于Wind的另类数据采集,字段结构不如公募标准化。

实战场景:在自动化导出基金持仓时,Wind提供“持仓穿透”功能。例如,提取某只FOF基金的前十大重仓基金,需使用WSS("F000001.OF", "fund_stockportfolioratio", "2024-12-31")。但要注意,基金季报的披露有滞后性,且部分基金只披露前十大持仓,无法穿透全部资产。此时,需要结合定期报告中的“资产组合情况”字段进行补充。

关键点:基金数据的时间序列对齐是常见痛点。不同基金的成立日期不同,净值数据的起始日期也不同。在批量导出时,建议使用WSD函数并设置StartDate为基金成立日,而非统一日期,否则会导致大量缺失值。

3.4 指数数据:成分股权重与编制方案

核心原理:指数数据包含两类:一是指数本身的行情(点位、成交量),二是指数的成分股列表及权重。Wind对指数成分股的字段结构设计为“快照型”与“区间型”结合。例如,沪深300指数的成分股调整在每年6月和12月生效,Wind通过index_weights字段提供某一时点的权重快照。

操作流程:若要导出某指数过去一年的日度成分股权重,需使用WSD("000300.SH", "index_weights", "2024-01-01", "2024-12-31", "Fill=Previous")。这里的Fill=Previous参数至关重要,它表示在非调整日沿用上一次的权重数据,否则Wind只返回调整日的权重,导致时间序列不连续。

指数类型代码后缀字段示例更新频率
宽基指数.SH / .SZclose / pe / pb实时
行业指数.CSI / .CIindex_weights定期调整
策略指数.H / .WIturnover_rate月度

3.5 期货与期权:合约连续性与希腊字母

核心原理:期货数据的关键在于“合约月份”与“主力连续”的映射。Wind提供主力合约(代码如RB9999.SHF)和指数连续(如RB8888.SHF)两种特殊代码,用于解决合约换月带来的价格跳空问题。期权数据则更为复杂,除了标的价格外,还需包含行权价、到期日、看涨/看跌类型以及隐含波动率、Delta、Gamma等希腊字母字段。

案例拆解:假设需要构建一个商品期货的动量策略,自动化导出螺纹钢主力合约的日线数据。使用WSD("RB9999.SHF", "close", "2024-01-01", "2024-12-31", "")。但这里存在一个陷阱:RB9999在换月日会切换合约,导致价格序列出现人为跳变。正确的做法是使用RB8888.SHF(指数连续),该序列通过加权计算消除了换月跳空,更适合量化建模。

风险提示:期权字段中的implied_index(隐含波动率)并非Wind直接计算,而是基于交易所的波动率指数或通过BS模型反推。在导出时,需注意不同到期日、不同行权价的隐含波动率不可直接横向比较,必须进行期限结构和偏度调整。

3.6 外汇数据:多币种报价与交叉汇率

核心原理:外汇数据在Wind中分为即期汇率、远期汇率和掉期点。字段结构上,即期汇率通常包含bid、ask、mid三个价格,而远期汇率则需指定合约期限(如1M、3M)。交叉汇率(如EUR/JPY)由Wind通过基础汇率自动计算,但计算逻辑基于特定时点的中间价。

操作流程:导出美元兑人民币的即期汇率,使用WSD("USDCNY.IB", "close", "2024-01-01", "2024-12-31", "")。注意,外汇代码的后缀.IB代表银行间市场,而.FX代表零售市场。两个市场的报价存在点差差异,自动化导出时需明确数据来源,否则会导致套利策略的误判。

总结复盘:七大类资产的数据结构虽然各有特色,但均遵循“代码定位→板块筛选→字段提取→时间序列对齐”的统一范式。在实际自动化导出中,建议先使用Wind终端的“数据浏览器”功能验证字段ID的正确性,再批量编写脚本。同时,务必关注字段的“单位”与“精度”,例如股票的close单位是元,而期货的close单位是点,外汇的close则保留四位小数。忽略这些细节,往往会导致最终计算结果偏差巨大。