自选股数据怎么下载到电脑上做量化分析
摘要:
通达信自选股数据下载是量化交易第一步。通过盘后数据下载或自定义板块导出,可获取自选股历史K线、财务数据,用于本地回测和策略编写。掌握数据格式与导出路径,能大幅提升股票期货策略开发效率。

为什么你需要把自选股数据下载下来
做股票和期货量化交易,第一步永远是把数据搞到手。通达信自带的自选股功能很方便,但那个数据是锁在软件内部的,你没法直接拿Excel打开,也没法喂给Python策略。把自选股数据下载到本地,意味着你能用pandas做清洗、用backtrader做回测、用机器学习找因子。
很多人卡在这一步,是因为通达信没有一个大按钮写着“导出自选股全部历史数据”。它的数据是分散存放的,需要你主动去触发下载动作。
通达信数据存放的底层逻辑
打开通达信安装目录,你会看到vipdoc文件夹。里面按市场分了sh、sz、bj等子文件夹。每个市场下面又有lday、minline等目录。lday里放的是日线数据,文件后缀是.day。这些文件是二进制格式,不是文本,直接双击打不开。

自选股本身不存储历史K线,它只是一个列表,记录了你选了哪些代码。真正的历史数据需要从服务器下载到本地,然后通达信才会用这些数据画图。你要做的,是确保自选股里的每一只股票、每一个期货合约,本地都有完整的日线和分钟线数据。
方法一 盘后数据下载(最稳妥)
通达信菜单栏找到“系统”->“盘后数据下载”。弹窗里勾选“日线和实时行情数据”,时间范围选“全部”。下面还有“分钟线数据”和“专业财务数据”,做基本面量化就把财务数据也勾上。
重点来了:下载范围默认是“全部A股”,但你只想要自选股。在下载界面有个“下载范围”选项,点开选“自选股板块”。这样通达信只会下载你自选列表里的品种,速度快很多。期货自选股也一样,选“自选期货”即可。
点开始下载,等进度条走完。数据会写入vipdoc对应目录。日线数据文件通常几十KB一只股票,几千只自选股也就几百MB。
方法二 自定义板块导出(适合批量处理)
如果你想把自选股列表本身导出成文本,方便程序读取,可以这样做:
在通达信里按
Ctrl+Z打开自选股界面。右键点击表头,选择“导出数据”。
选择导出格式为Excel或TXT,勾选“当前自选股”。
保存到桌面,你会得到一个包含股票代码、名称的列表文件。
这个列表本身不含K线,但程序可以拿着这个列表去读vipdoc里的二进制文件。用Python的struct模块解析.day文件,每条记录32字节,包含日期、开高低收、成交额、成交量。
方法三 用pytdx直接拉取(绕过通达信客户端)
如果你不想依赖通达信软件本身,可以用pytdx这个库直接连行情服务器。它支持拉取自选股列表和历史K线。代码示例如下:
from pytdx.hq import TdxHq_API
api = TdxHq_API()
with api.connect('119.147.212.81', 7709):
# 获取自选股列表(需要先登录,这里简化)
# 直接拉取某只股票日线
data = api.get_security_bars(9, 0, '000001', 0, 100)
print(data)
get_security_bars第一个参数9代表日线,0代表深圳市场。这个方式适合自动化脚本,但需要自己维护自选股代码列表。
数据下载后怎么用
日线.day文件用Python解析后,得到的是numpy数组。列顺序是日期、开盘、最高、最低、收盘、成交额、成交量。日期是整数,比如20240510。成交额单位是元,成交量单位是股。
期货数据要注意,通达信里期货合约代码是市场+代码,比如SHFE.rb2410。下载时确保选的是“自选期货”范围,否则可能拉不到。期货主力连续合约的代码通常带L后缀,比如rbL,下载时要确认本地有对应文件。
把数据转成DataFrame后,就可以算均线、MACD、ATR。做回测时,用shift(1)避免未来函数。自选股池可以定期更新,比如每周重新下载一次盘后数据,保持数据新鲜。
常见坑点
盘后数据下载时,如果通达信正在接收实时行情,可能会冲突。建议收盘后15:30再操作。
分钟线数据下载很慢,如果只做日线策略,不要勾选分钟线。
自选股里如果有退市或停牌股票,下载会卡住。提前清理掉这些代码。
vipdoc文件夹如果放在C盘,权限可能不够。把通达信装到D盘,或者以管理员身份运行。
期货夜盘数据在第二天白天才会合并到日线文件里,当天晚上下载的日线可能不完整。
把数据变成策略
自选股数据下载只是原材料。真正赚钱的是你对数据的加工。用pandas算滚动波动率,用numpy做向量化回测,用matplotlib画资金曲线。股票和期货的差别在于期货有杠杆和到期日,回测时要考虑移仓换月成本。
一个实用的做法是:每天收盘后自动运行脚本,下载自选股日线,更新本地数据库,然后跑一遍预警信号。通达信本身有预警功能,但自定义程度低。用Python加本地数据,你可以实现任意复杂的条件,比如“自选股中同时满足20日均线上穿60日均线且RSI小于70的品种”。
数据是量化交易的燃料。把自选股数据下载这件事做扎实,后面写策略才不会有后顾之忧。
声明
转载声明:欢迎分享本文,转载请注明出处!
点击复制: