Workbuddy 通达信量化交易系统搭建
概述
基于通达信金融终端的本地量化交易系统搭建工具。借助 tdx-quant-setup 自带的 Python 环境,从零搭建一套可运行常见策略、可视化展示买卖点与 K 线图的完整工作流。
核心能力:
- 检测通达信金融终端安装位置(注册表扫描),通过双通道获取行情数据:tqcenter 插件模块优先(外部 Python 经 sys.path 引入 + tq.initialize() 直连),本地 HTTP API(http://127.0.0.1:17709/)兜底
- 统一解析真实接口的列式返回结构(按股票分组、日期倒序、字符串价格 -> 行式列表、日期升序、float 数值)
- 使用自带 Python 创建独立虚拟环境,安装 numpy、pandas、streamlit、plotly、requests 依赖
- 内置四个常见策略:双均线交叉、MACD 金叉死叉、RSI 超买超卖、布林带均值回归(均继承统一的 BaseStrategy 接口)
- 使用 Streamlit 展示当前数据通道状态、策略买卖点、K 线图与回测统计(通道不可用时自动降级为模拟数据演示)
- 所有步骤末尾运行测试验证,确认全部通过后告知用户
触发条件
当用户表达以下意图时使用本 skill:
- "搭建量化交易环境"、"配置通达信数据源"、"运行交易策略"
- "展示策略买卖点"、"画 K 线图"、"回测策略"
- "通达信环境怎么配置"、"量化系统装不上了"、"帮我装好量化依赖"
- 用户需要分析某只股票(如"帮我回测一下茅台")并期望看到买卖信号与可视化结果
若用户只是询问量化概念、策略原理等纯知识性问题,不需要本 skill,直接回答即可。
工作流程
第零步:操作系统检查
本 skill 仅支持 Windows 系统(通达信金融终端仅运行于 Windows)。执行任何操作前先确认:
import platform
if platform.system() != "Windows":
# 立即终止,提示用户切换到 Windows 环境
第一步:检测通达信安装位置
扫描注册表(SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ 下的通达信相关键)列出候选安装路径:
python scripts/setup_env.py --step detect-tdx
- 找到单个安装 -> 直接使用
- 找到多个安装 -> 列出候选并要求用户确认
- 未找到 -> 引导用户从
https://data.tdx.com.cn/level2/new_tdx64.exe下载安装后重试
第二步:验证通达信数据通道可用性
数据客户端为双通道设计:tqcenter 插件模块优先(自动探测安装目录:环境变量 TDX_PATH -> 注册表 -> 常见路径),HTTP JSON-RPC(http://127.0.0.1:17709/)兜底:
python scripts/setup_env.py --step check-api
- 返回正常响应 -> 继续下一步
- 连接失败 -> 提示用户启动通达信客户端并登录到主界面后重试
第三步:创建虚拟环境并安装依赖
使用自带 Python 在工作区创建 .venv 虚拟环境并安装 requirements.txt 中的依赖,同时创建 data/、strategies/、tests/ 目录:
python scripts/setup_env.py --step setup-venv
依赖安装默认使用腾讯云 PyPI 镜像源,可通过 --mirror 切换为 taobao(阿里云)或 tsinghua(清华)。
第四步:确认常见策略就位
检查 scripts/strategies/ 下内置策略是否完整:
python scripts/setup_env.py --step prepare-strategies
| 策略 | 文件 | 信号规则 |
|---|---|---|
| 双均线交叉 | ma_cross.py |
快线上穿慢线买入,下穿卖出 |
| MACD 金叉死叉 | macd_strategy.py |
DIF 上穿 DEA 买入,下穿卖出 |
| RSI 超买超卖 | rsi_strategy.py |
RSI 跌破 oversold 买入,突破 overbought 卖出 |
| 布林带均值回归 | bollinger.py |
价格自下轨回升买入,自上轨回落卖出 |
每个策略提供统一的 run(stock_code, klines, **params) 接口,返回包含买卖点与收益统计的 StrategyResult 对象。
第五步:Streamlit 可视化展示
启动 Streamlit 面板展示策略买卖点与 K 线图:
python scripts/setup_env.py --step run-streamlit
面板功能:显示当前数据通道(tqcenter / HTTP);输入股票代码、选择策略与参数;经双通道拉取 K 线数据(自动列式->行式转换、日期升序);绘制 K 线图并标注买卖点;展示回测统计(总收益、胜率、最大回撤、交易次数)。通道不可用时自动使用模拟数据演示。
第六步:运行测试验证
所有步骤完成后运行测试套件,确认全部通过:
python scripts/setup_env.py --step run-tests
测试覆盖:通达信数据通道、策略信号生成正确性、列式数据解析回归(真实接口列式结构/字符串价格/倒序日期)、布林带持仓约束、Streamlit 应用导入。测试结果以 [OK] / [FAIL] 标记输出,全部通过后告知用户环境就绪。
一键完整搭建
若希望一次执行所有步骤(检测通达信 -> 验证 API -> 创建虚拟环境 -> 安装依赖 -> 确认策略 -> 运行测试):
python scripts/setup_env.py
可选参数:
- --skip-tests:跳过测试验证
- --tdx-path <路径>:手动指定通达信安装路径
- --venv-dir <路径>:指定虚拟环境目录(默认 .venv)
- --mirror <源>:指定 PyPI 镜像源,tencent(默认)/ taobao / tsinghua
输入与输出
输入格式
- 股票代码:
600519.SH(上证)、000001.SZ(深证)、430047.BJ(北交所) - K 线数据:
list[dict],每条至少含Date/Open/High/Low/Close/Volume字段 - 策略参数:见
references/api_reference.md中各策略参数表
输出格式
- 安装脚本:
[OK]/[WARN]/[FAIL]标记的分步进度输出,退出码0成功、非0失败 - 策略回测:
StrategyResult对象,summary()返回含总收益率、胜率、最大回撤、交易次数的字典 - 可视化:Streamlit Web 面板(默认
http://localhost:8501),含 K 线图、买卖点标注、回测指标
使用限制
- 仅支持 Windows 系统,通达信金融终端客户端必须已安装且已登录
- 回测为简化模型(按信号全仓买卖),结果仅供学习研究,不构成投资建议
- 依赖安装需要联网(默认国内镜像源)
- 不修改用户已有的项目配置文件,脚本只负责安装与验证
使用示例
完整的端到端示例场景(含预期输入输出)见 references/examples.md。核心能力可离线体验:
python scripts/demo.py
该脚本使用内置模拟 K 线数据运行全部四个策略并打印回测统计,无需通达信客户端即可直观感受 skill 的核心能力。
兼容性与权限
- 运行环境:Windows 10/11,Python 3.9+(推荐 3.12+)
- 所需权限:读取注册表(检测通达信)、加载通达信目录内插件模块(tqcenter,sys.path 引入)、访问本机
127.0.0.1:17709(HTTP 兜底通道)、在工作区创建文件(虚拟环境与数据目录)、联网下载依赖 - 数据安全:所有数据仅在本机处理,不向第三方上传任何行情或账户数据
详见 references/compatibility.md。
交互准则
- 全程使用中文与用户沟通,用通俗语言解释每个步骤的作用
- 安装依赖过程可能较长,每完成一个阶段简要汇报进度
- 涉及用户手动操作(如启动通达信客户端)时给出明确分步指引
- 不要修改用户已有的项目配置文件;脚本只负责安装与验证
- 遇到
[FAIL]时先运行python scripts/diagnose.py定位问题,再查阅references/troubleshooting.md
资源索引
scripts/setup_env.py— 核心安装与编排脚本(检测通达信、验证 API、创建虚拟环境、安装依赖、运行测试)scripts/diagnose.py— 环境自检脚本(逐项检测 Python/虚拟环境/依赖/通达信/API)scripts/demo.py— 离线演示脚本(模拟 K 线 + 四个策略回测,无需通达信)scripts/tdx_client.py— 通达信双通道数据客户端(tqcenter 优先 / HTTP 兜底,含列式->行式转换与data_channel())scripts/strategies/ma_cross.py— 双均线交叉策略scripts/strategies/macd_strategy.py— MACD 金叉死叉策略scripts/strategies/rsi_strategy.py— RSI 超买超卖策略scripts/strategies/bollinger.py— 布林带均值回归策略(含新策略开发防坑规范注释)scripts/app.py— Streamlit 可视化应用(K 线图、买卖点、资金曲线)scripts/run_tests.py— 测试套件入口requirements.txt— Python 依赖声明references/function_spec.md— 完整功能规格说明(用途、输入输出格式、使用方法、使用限制)references/examples.md— 端到端使用示例场景references/compatibility.md— 兼容性与权限声明references/troubleshooting.md— 常见错误与排障指南references/api_reference.md— 通达信本地 API 与策略接口参考(含 AI 生成策略接入规范)references/tqcenter_api_reference.md— tqcenter 模块完整 API 参考(行情/交易/板块/公式/财务)