核心数据源与获取:Wind/聚宽/天软等数据源对比

做商品基本面量化,第一步就是搞定数据。我见过太多人,策略逻辑写得天花乱坠,结果数据源没选对,回测全是噪音。今天咱们就聊聊国内最常用的几个数据源——Wind、聚宽、天软,以及期货合约、库存、产量、进出口这些核心数据怎么拿。

一、三大数据源,我该怎么选?

说实话,没有完美的数据源。每个都有脾气,关键看你的场景。

数据源 优势 劣势 适合场景
Wind 数据最全,覆盖股票/期货/宏观/行业 贵,API限制多,本地化部署麻烦 机构研究、多资产配置
聚宽 Python友好,回测框架成熟,社区活跃 期货数据深度不够,历史数据有限 个人量化、策略快速验证
天软 高频数据强,因子计算快,支持复杂SQL 学习曲线陡,文档偏技术 高频交易、因子挖掘

我个人习惯是:Wind做数据底仓,聚宽做策略回测,天软做高频因子。但如果你刚入门,建议先玩透聚宽,成本低、上手快。

核心观点:数据源没有好坏,只有适不适合。你的策略频率、资金量、技术栈,决定了选哪个。

二、期货主力合约与连续合约

这里有个坑,我当年踩过。很多人直接拿主力合约做回测,结果发现换月那天净值跳空一大截。为什么?因为主力合约切换时,价格不连续。

主力合约:成交量最大的那个合约。每个月都会变,比如螺纹钢从RB2301切到RB2305。

连续合约:把不同月份的主力合约拼接起来,消除跳空。常见做法是「向后复权」或「向前复权」。

我建议:做趋势跟踪用连续合约,做套利用主力合约。趋势策略看的是价格方向,连续合约更干净;套利策略需要真实价差,主力合约更准确。

避坑指南:我曾经用Wind的连续合约做回测,发现收益率异常高。后来一查,它用的是「成交量加权」拼接,换月时产生了虚假利润。从那以后,我都是自己写拼接逻辑。

三、库存数据:基本面量化的核心

库存是商品供需的「温度计」。库存高,说明供过于求,价格承压;库存低,说明供不应求,价格有支撑。但库存数据分很多种,你得搞清楚。

  • 显性库存:交易所公布的仓单数据,比如上期所的铜库存。透明、高频,但只反映交割库的情况。
  • 隐性库存:贸易商、生产企业的库存。不公开,但更真实。我一般通过调研或第三方数据估算。
  • 社会库存:显性+隐性的总和。Wind和天软都有,但更新频率低(周度或月度)。

举个例子,螺纹钢的库存数据,我通常看三个维度:厂库、社库、在途库存。厂库反映钢厂压力,社库反映贸易商情绪,在途库存反映短期到货节奏。三者结合,才能判断真实供需。

注意:库存数据有滞后性。交易所数据一般是T+1,社会库存可能是T+7。做高频策略时,别拿周度数据去预测分钟级行情,会出大问题。

四、产量数据:供给侧的硬指标

产量数据比库存更难拿。国内很多行业的数据是不透明的,比如铁矿石的国产矿产量,统计局每月才公布一次,而且经常修正。

我常用的几个渠道:

  • 国家统计局:月度工业增加值、重点产品产量。权威,但慢。
  • 行业协会:比如中国钢铁工业协会,每周公布粗钢产量。时效性好,但口径可能变。
  • 第三方数据商:比如Mysteel、SMM,有高频的调研数据。我比较依赖这个,但要注意样本偏差。

产量数据怎么用?我一般做「产量同比」和「产能利用率」两个指标。产量同比反映供给增速,产能利用率反映行业景气度。比如,当产能利用率超过85%时,说明供给接近瓶颈,价格易涨难跌。

五、进出口数据:全球视角

进出口数据是连接国内和全球市场的桥梁。比如铜,中国是净进口国,LME的库存变化会直接影响国内价格。

数据来源:

  • 海关总署:月度进出口数据,按HS编码分类。最权威,但滞后1-2个月。
  • Wind/天软:有整理好的进出口数据库,可以直接拉。
  • 路透/彭博:全球贸易数据,适合做跨品种套利。

我常用的一个技巧:用「进口利润」做择时。当进口利润为正时,说明国内价格高于国外,进口商有动力增加进口,未来供给会增加,价格可能回落。反之亦然。

实战经验:2022年做豆粕策略时,我发现进口利润和豆粕价格有很强的负相关。后来我把它作为一个因子加入模型,夏普比率从0.8提升到了1.3。嗯,这就是数据的力量。

六、数据获取实战:Python代码示例

说了这么多,咱们来点实际的。下面是我用聚宽API获取期货主力合约和库存数据的代码片段。

# 获取聚宽期货主力合约数据
from jqdatasdk import *
auth('你的账号', '密码')

# 获取螺纹钢主力合约连续行情
df = get_price('RB8888.XSGE', start_date='2023-01-01', end_date='2023-12-31', frequency='daily')
print(df.head())

# 获取上期所铜库存数据
# 聚宽没有直接库存API,需要从Wind或天软获取
# 这里用Wind示例
from WindPy import w
w.start()

# 获取铜显性库存(仓单)
inventory = w.edb("S0030001", "2023-01-01", "2023-12-31")
print(inventory.Data)

提示:聚宽的期货代码规则:主力合约用'8888',指数合约用'9999'。比如螺纹钢主力是RB8888,指数是RB9999。别搞混了。

七、知识体系框架图

下面这张图,是我做商品基本面量化的数据体系。你可以把它当作一个「数据地图」,每次做策略前先看看,缺什么数据,从哪里拿。

商品基本面量化数据体系 数据源层 Wind 聚宽 天软 期货合约数据 库存数据 产量/进出口 主力/连续/指数 显性/隐性/社会 统计局/海关/第三方 策略应用:趋势跟踪 / 套利 / 因子选股

这张图的核心逻辑是:数据源 -> 数据类别 -> 子类别 -> 策略应用。你每做一个策略,都可以沿着这个路径去检查,数据链路上有没有断点。

八、总结

数据获取是基本面量化的「地基」。地基不稳,楼盖得再高也得塌。我建议你从聚宽开始,把主力合约、库存、产量、进出口这几个数据先跑通,然后再去折腾Wind和天软。

记住一句话:数据质量 > 策略复杂度。一个简单的库存因子,配上干净的数据,往往比一个复杂的机器学习模型更赚钱。