Python中如何从Wind客户端导出数据?

1.想着把数据导出来存到数据库可行吗? 2,想着把能够自动运行软件,自动输入某些股票代码,然后把行情截图下来保存,有现成的轮子吗? pyautogui ? pyautowin ?


Python中如何从Wind客户端导出数据?
9 回复

还自动输入呢,wind 本身就有数据提取接口好吗。


用WindPy接口从Wind客户端导出数据,最直接的方法是使用wsdwsswsi等函数获取数据后,用pandas处理并保存。下面是一个完整的示例:

from WindPy import w
import pandas as pd

# 启动Wind客户端连接
w.start()

# 示例1:获取单只股票的历史行情数据(wsd)
# 参数:证券代码、指标、起止日期、其他选项
data = w.wsd("000001.SZ", "open,high,low,close,volume", "2023-01-01", "2023-12-31", "")

# 将数据转换为DataFrame
df = pd.DataFrame(data.Data, index=data.Fields, columns=data.Times).T
df.index.name = 'date'

# 导出到CSV
df.to_csv('stock_data.csv')
print("数据已导出到stock_data.csv")

# 示例2:获取多只股票的截面数据(wss)
data2 = w.wss("000001.SZ,600000.SH", "pe_ttm,pb_lf,ev", "tradeDate=20231231")
df2 = pd.DataFrame(data2.Data, index=data2.Fields, columns=data2.Codes).T
df2.to_csv('multi_stock_data.csv')

# 示例3:获取分钟级行情(wsi)
data3 = w.wsi("000001.SZ", "open,high,low,close,volume", "2023-12-01 09:00:00", "2023-12-01 15:00:00", "")
df3 = pd.DataFrame(data3.Data, index=data3.Fields, columns=data3.Times).T
df3.to_excel('minute_data.xlsx')

关键点:

  1. 先用w.start()建立连接,确保Wind客户端已登录。
  2. wsd用于历史序列数据,wss用于截面数据,wsi用于日内分钟数据。
  3. 返回的data对象包含Data(数据数组)、Fields(指标名称)、Times(时间序列)等属性。
  4. 用pandas转换格式后,可用to_csvto_excel等方法导出。

常用参数说明:

  • 证券代码:如"000001.SZ"(深交所)或"600000.SH"(上交所)。
  • 指标:字符串形式,多个指标用逗号分隔,如"open,close,volume"
  • 日期:格式"YYYY-MM-DD",分钟数据需精确到时分秒。
  • 选项:如"Fill=Previous"(填充空值)、"PriceAdj=F"(不复权)等,根据需求添加。

如果导出失败:

  • 检查Wind客户端是否正常运行且已登录。
  • 确认代码中的证券代码和日期格式是否正确。
  • 数据量过大时可能超时,可分段获取。

一句话总结:用WindPy的wsd/wss/wsi函数获取数据,转成pandas DataFrame后保存为文件。

装万德 EXCEL 插件,使用万德的自定义函数,就行了。

看看文档

行情截图呢?怎么办?

有接口你为什么非要用截图?

是这样的,如果是截图,就能在很快的时间内迅速浏览完行情图表,而不用一个个的输入翻页,美股输入字母代码还是挺麻烦的

可能我这个办法非常老土。

那我告诉你,你用接口直接导出 几千上万单位的行情数据只需要执行一下就 ok 的话,你会不会不用截图了?

必须啊,不过有点没有明白。
是不是说导出数据,然后自己生成图表?

回到顶部