企业微信

万得API实时行情接口概览

万得(Wind)金融终端提供API接口,允许开发者获取实时行情数据。接口覆盖股票、期货、债券、外汇等品种,行情数据包括最新价、涨跌幅、成交量、持仓量等。通过API,用户能实现自动化数据获取,支撑量化交易与实时监控。

环境准备与授权

调用万得API需要安装WindPy库,并确保已正确配置权限。授权流程包括申请API Key,配置环境变量,或使用Wind终端内置账号。安装方式为pip install WindPy,但需提前在Wind终端中注册。授权后,通过w.start()初始化连接。

实时行情数据获取方法

获取单只证券实时行情

使用w.wsq()函数获取单个证券的实时行情。该函数接受证券代码和指标字段,如rt_last(最新价)、rt_pct_chg涨跌幅)。示例代码:

如何利用万得API获取实时行情数据


from WindPy import w

w.start()

data = w.wsq("000001.SZ", "rt_last", "rt_pct_chg")

print(data.Data)

返回数据为列表,按字段顺序排列。

批量获取多只证券实时行情

w.wsq()支持传入多个证券代码和字段,实现批量获取。例如获取多只股票的最新价和成交量:


codes = "000001.SZ,600000.SH,000002.SZ"

fields = "rt_last,rt_vol"

data = w.wsq(codes, fields)

print(data.Data)

数据按证券和字段组织,便于后续处理。

获取期货实时行情

期货代码规则不同,例如沪铜主力合约为CU0。获取方式相同,但需注意合约代码格式。


data = w.wsq("CU0", "rt_last,rt_vol")

数据处理与存储

获取的行情数据为原始格式,需进行清洗和整合。常见操作包括转换为pandas.DataFrame,处理缺失值,以及时间戳对齐。示例:将单只股票多个指标转换为DataFrame:


import pandas as pd

data = w.wsq("000001.SZ", "rt_last", "rt_vol")

fields = ["最新价", "成交量"]

df = pd.DataFrame([data.Data], columns=fields)

对于高频数据,可存储至数据库或CSV文件。

实时行情在量化策略中的应用

实时行情是量化交易的核心输入。通过API获取实时数据后,可实施策略,如均线突破、统计套利。利用w.wsq()结合定时任务,实现分钟级数据更新。策略信号生成后,通过交易接口下单。万得API本身不提供交易功能,需结合券商接口。

注意事项与最佳实践

  • 遵守访问频率限制,避免高频请求被封禁。建议使用time.sleep()控制间隔。

  • 处理连接异常,加入重试逻辑。

  • 关注数据延迟,实时行情有轻微延迟,对超高频交易需评估。

  • 确保合规,遵循期货与股票交易法规。

示例:实时监控股票涨跌

构建一个简单脚本,每5秒获取某股票最新价,并打印变化。


import time

from WindPy import w

w.start()

while True:

    data = w.wsq("000001.SZ", "rt_last")

    print("最新价:", data.Data[0])

    time.sleep(5)

万得API提供了便捷的实时行情获取途径,支持股票和期货,通过Python脚本可高效集成到量化工作流。掌握其用法,是实现数据驱动交易的关键步骤。