通达信股票历史数据获取与导出全流程指南
1. 通达信软件下载与安装指南
第一次接触股票数据分析的朋友,我强烈推荐从通达信这个老牌工具入手。它的免费版本就足够强大,而且操作界面非常符合国内投资者的使用习惯。我自己从2015年开始就用它做数据备份,实测稳定性比很多付费软件都好。
软件下载一定要认准官网(https://www.tdx.com.cn/soft.html),避免第三方渠道可能带来的安全隐患。页面中间位置就能看到"免费版下载"的绿色按钮,文件大小约80MB。这里有个小技巧:建议选择"电信下载"或"联通下载"线路,速度会比默认线路快不少。
安装过程基本是"下一步"到底,但有两个关键点需要注意:
- 安装路径最好不要用默认的C盘,建议专门新建一个"D:\TDX"这样的目录
- 安装完成后会提示安装"通达信行情驱动",这个必须勾选,否则后续无法下载数据
第一次启动时会弹出注册窗口,用手机号注册就行。这里有个坑要注意:密码必须包含大小写字母+数字,比如"Tdx123456"这样的组合才能通过验证。注册成功后建议立即绑定邮箱,方便找回密码。
2. 数据下载的完整流程
登录后的主界面可能让新手有点懵,其实核心功能都藏在顶部菜单栏。点击"系统"→"盘后数据下载"就会弹出数据下载窗口。我建议第一次使用时按这个顺序操作:
- 在"数据类型"里勾选"日线"和"分钟线"
- 时间范围选择"最近3年"
- 市场品种建议先选"上证A股"和"深证A股"
点击"开始下载"后,进度条可能会卡在某个百分比。别担心,这不是软件卡死——日线数据通常下载很快,但分钟线数据量较大,需要耐心等待。我测试过,完整下载沪深两市3年的分钟数据大约需要40分钟(取决于网速)。
有个实用技巧:晚上11点后的下载速度会比白天快很多。如果遇到中断,可以到"数据管理"→"下载任务"里继续未完成的下载,系统会自动断点续传。
3. 数据导出的高阶技巧
数据下载完成后千万别急着导出!先重启软件让数据完全加载。点击"系统"→"数据导出"会看到两种导出模式:
- 简单导出:适合只需要基础字段的情况
- 高级导出:可以自定义字段和过滤条件
对于量化分析来说,我推荐使用高级导出。点击"添加品种"时有个隐藏功能:按住Ctrl键可以多选个股,或者直接输入"SH000001"这样的代码精确选择。导出配置时这几个字段最常用:
- 股票代码
- 日期时间
- 开盘价
- 最高价
- 最低价
- 收盘价
- 成交量
- 成交额
导出格式建议选CSV,兼容性最好。如果数据量超过10万条,最好分多个文件导出,每个文件控制在5MB以内。遇到过导出失败的情况,通常是杀毒软件拦截导致的,临时关闭防护即可解决。
4. 常见问题解决方案
问题1:下载速度特别慢解决方法:到"系统设置"→"网络设置"里,把TCP连接数改成16。实测这个调整能让下载速度提升3-5倍。
问题2:导出的数据乱码这是字符编码问题导致的。导出时在"高级设置"里选择"UTF-8编码",或者用记事本打开CSV文件后另存为ANSI格式。
问题3:历史分时数据不全通达信默认只保存最近3个月的分钟线数据。要获取更早的数据,需要到"系统"→"数据维护"→"历史数据下载"里单独补充。
问题4:创业板数据缺失这是新手常踩的坑。创业板数据需要单独在"市场管理"里勾选"创业板"选项,否则默认不下载。
5. 数据清洗与格式转换
导出的原始数据往往需要简单处理才能用于分析。这里分享几个我常用的Python处理脚本:
# 读取通达信导出的CSV文件 import pandas as pd df = pd.read_csv('tdx_data.csv', encoding='gbk') # 转换日期格式 df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d') # 处理涨跌幅 df['涨跌幅'] = df['收盘价'].pct_change() * 100 # 保存为标准格式 df.to_csv('cleaned_data.csv', index=False)如果要做量化回测,建议把数据转换成MySQL数据库。先用Navicat等工具创建数据库,然后运行这个SQL语句建表:
CREATE TABLE stock_data ( code VARCHAR(10), trade_date DATE, open DECIMAL(10,2), high DECIMAL(10,2), low DECIMAL(10,2), close DECIMAL(10,2), volume BIGINT, amount DECIMAL(20,2), PRIMARY KEY (code, trade_date) );6. 自动化脚本实现定时下载
对于需要每日更新数据的朋友,可以配置Windows任务计划实现自动化。先创建一个批处理文件download.bat:
@echo off cd C:\TDX start /wait TdxW.exe /q taskkill /f /im TdxW.exe然后用Python写个自动导出脚本:
import win32com.client import time tdx = win32com.client.Dispatch("TdxW.Application") tdx.ShowWindow(1) # 显示窗口 # 模拟按键操作 tdx.SendKeys("%s") # Alt+S打开系统菜单 time.sleep(1) tdx.SendKeys("d") # 选择数据导出最后在Windows任务计划里设置每天下午4点运行这个批处理。注意要把通达信设置为"以管理员身份运行",否则自动化操作可能失败。
