乐于分享
好东西不私藏

EasyXT可转债数据下载完全指南:从0到1搭建量化数据库

EasyXT可转债数据下载完全指南:从0到1搭建量化数据库

特别声明
本公众号所有内容仅为个人量化技术研究、思路分享与案例分析,不构成任何投资建议或股票推荐。金融市场具有较高风险,所有操作决策需建立在独立判断之上。文中提及的任何策略、指标或方法均存在局限性,过往表现不代表未来收益,且可能随市场环境变化而失效。文章仅为技术分享学习使用,不可直接用于实盘

EasyXT项目介绍

EasyXT是基于miniqmt中xtquant的二次开发封装库,旨在简化xtquant的使用,提供更友好的API接口。通过统一的接口设计、智能参数处理和完善的错误处理,让量化交易开发变得更加简单高效。

项目地址: https://github.com/quant-king299/EasyXT

🛠️ 环境准备

系统要求

  • 操作系统:Windows 10/11(PowerShell 7)
  • Python:3.9+(建议 3.10+),并将 Python 加入 PATH

ptrade/QMT账号获取指导

📱 还没有ptrade/QMT账号的朋友,可以扫码加我微信,全程指导搞定Ptrade/QMT账号!

搞量化交易,最头疼的是什么?不是策略写不出来,而是数据下不到

今天给大家介绍一个超实用的可转债数据下载工具,让你轻松搞定可转债数据,专注策略开发!


💡 为什么需要这个工具?

做可转债量化交易,第一步就是获取数据。但传统方式有这些问题:

❌ 手动下载:一个个去网站下载,费时费力 ❌ 数据不全:很多平台数据缺失,影响回测质量 ❌ 更新麻烦:每天手动更新,容易忘记 ❌ 代码错误:使用预留代码或已退市代码,导致策略出错

我们的解决方案: ✅ 自动从QMT实时获取最新可转债列表 ✅ 自动过滤无效代码(预留、退市等) ✅ 一键下载历史数据 ✅ 智能更新,只下载缺失部分


🎯 核心功能介绍

1️⃣ 实时获取可转债列表

动态更新,拒绝死数据!

  • 直接从QMT实时获取约321只可转债
  • 自动包含新上市的可转债
  • 自动过滤已退市的可转债
  • 失败率接近0%

2️⃣ 多种下载方式

批处理文件:适合新手和快速操作GUI界面:适合日常智能更新命令行:适合自动化脚本

3️⃣ 智能数据管理

  • 自动下载到QMT本地
  • 一键导入到DuckDB数据库
  • 支持数据验证和查看

📖 快速开始(3步搞定)

第1步:测试连接

适合人群:第一次使用,想快速测试

操作方法

  1. 找到文件:tools/cb_test.bat
  2. 双击运行
  3. 等待下载完成

预期结果

正在从QMT获取可转债列表...获取成功!当前共有 321 只可转债开始测试下载(4只样本)...✅ 113050.SH - 南银转债✅ 113061.SH - 长江转债✅ 127045.SZ - 海澜转债✅ 128136.SZ - 立讯转债下载完成!数据已保存到QMT本地目录

第2步:首次下载

适合人群:第一次使用,需要建立完整数据库

操作方法

  1. 找到文件:tools/cb_quick.bat
  2. 双击运行
  3. 等待下载完成(约5-10分钟)

下载内容

  • 2024年全年数据
  • 约321只可转债
  • 每只约200-300个交易日

预期结果

开始下载可转债数据...时间范围:2024-01-01 至 2024-12-31可转债数量:321只下载进度:[████████████████████] 100%✅ 下载完成!成功:321只失败:0只数据已保存到 QMT本地目录

第3步:导入数据库

适合人群:所有用户(必须在第2步之后执行)

操作方法

  1. 打开GUI界面

    python rungui.py
  2. 切换到「数据管理」标签页

    • 找到顶部标签栏
    • 点击「数据管理」
  3. 点击「📥 下载可转债数据」按钮

    • 系统自动从QMT本地读取数据
    • 自动导入到DuckDB数据库
    • 显示导入进度
  4. 等待导入完成

    正在导入可转债数据...进度:[████████████] 100%✅ 导入完成!总记录数:约80,000条数据表:convertible_bonds

🔄 日常更新(推荐)

方式1:GUI智能更新(最推荐)⭐

为什么推荐

  • ✅ 智能检测每只股票最新日期
  • ✅ 只下载真正缺失的部分
  • ✅ 避免重复下载,节省时间
  • ✅ 自动补充到今天
  • ✅ 最节省时间和资源

操作步骤

  1. 打开GUI

    python rungui.py
  2. 切换到「数据管理」标签页

  3. 点击「🔄 更新缺失数据」按钮

    • 系统自动分析缺失数据
    • 只下载需要补充的部分
    • 大幅减少下载时间
  4. 查看更新日志

    正在分析数据缺失情况...发现缺失数据:- 113050.SH:缺失2天- 127045.SZ:缺失1天...开始下载缺失数据...进度:[████████] 100%✅ 更新完成!下载记录:323条耗时:约30秒

适用场景

  • 每天收盘后更新
  • 周末补齐本周数据
  • 长时间未使用后快速更新

方式2:批处理定期更新

适合人群:喜欢批处理,需要手动控制更新范围

操作步骤

  1. 找到文件tools/cb_update_smart.bat

  2. 双击运行

  3. 选择更新范围

    请选择更新范围:[1] 最近1个月[2] 最近3个月(推荐)[3] 最近6个月[4] 全部历史请输入选项(1-4):
  4. 选择推荐选项2

    已选择:最近3个月开始时间:2024-10-22结束时间:2025-01-22正在下载...进度:[████████] 100%✅ 更新完成!

注意事项: ⚠️ 这个方式会重新下载指定时间段的所有数据,不是增量更新 ⚠️ 适合快速补数据,不适合日常频繁使用


💻 高级用法:命令行

基本用法

# 进入项目目录cd C:\Users\你的用户名\Desktop\miniqmt扩展# 下载全部数据(默认最近1年)python tools/download_all_convertible_bonds.py

指定日期范围

# 下载2024年全年数据python tools/download_all_convertible_bonds.py --start-date 20240101 --end-date 20241231# 下载最近3个月数据python tools/download_all_convertible_bonds.py --start-date 20241001 --end-date 20250101

测试模式

# 只下载4只样本,测试连接python tools/download_all_convertible_bonds.py --demo

强制重新下载

# 强制重新下载(覆盖已有数据)python tools/download_all_convertible_bonds.py --force

适用场景

  • 自动化脚本
  • 定时任务(Windows计划任务)
  • 服务器部署

📊 数据验证

如何验证数据是否正确下载?

方法1:GUI查看

  1. 打开GUI:python rungui.py

  2. 切换到「数据查看」标签页

  3. 输入可转债代码(如 113061.SH

  4. 点击「查询」按钮

  5. 查看数据:

    查询结果:113061.SH - 长江转债日期          开盘    最高    最低    收盘      成交量2025-01-22  125.50  126.80  125.10  126.20    5,2302025-01-21  124.80  125.90  124.50  125.60    4,8902024-01-02  120.10  121.50  119.80  121.20    6,120...✅ 数据正常,共250条记录

方法2:命令行查询

# 打开Python命令行python# 执行查询import duckdbconn = duckdb.connect('D:/StockData/stock_data.ddb')# 查询某只可转债result = conn.execute("""    SELECT COUNT(*) as count,           MIN(date) as start_date,           MAX(date) as end_date    FROM convertible_bonds    WHERE stock_id = '113061.SH'""").fetchone()print(f"记录数:{result[0]}")print(f"起始日期:{result[1]}")print(f"结束日期:{result[2]}")# 预期输出:# 记录数:250# 起始日期:2024-01-02# 结束日期:2025-01-22

⚠️ 常见问题FAQ

Q1:为什么获取到的可转债数量不是固定的?

A:因为是从QMT实时获取,数量会动态变化:

  • 新上市可转债会增加
  • 已退市可转债会减少
  • 当前约321只(2025年1月)

优势:保证数据都是真实有效的,不会有无效代码!


Q2:下载失败怎么办?

A:按以下步骤排查:

第1步:检查QMT是否启动

确认QMT软件已启动并登录可以看到行情数据正常显示

第2步:检查网络连接

确认网络连接正常可以访问互联网

第3步:查看错误日志

查看运行窗口的错误信息常见错误:- 连接QMT失败 → 检查QMT是否启动- 网络超时 → 检查网络连接- 数据为空 → 可能是临时停牌可转债

第4步:重新下载

使用 --force 参数强制重新下载python tools/download_all_convertible_bonds.py --force

Q3:可以直接用GUI下载吗?

A:可以!而且推荐使用GUI!

GUI会自动:

  • 使用相同的逻辑获取可转债列表
  • 从QMT本地读取数据
  • 导入到DuckDB数据库
  • 验证数据完整性

优势:一键完成,无需手动操作!


Q4:下载的数据保存在哪里?

A:分两个位置:

第1步:QMT本地目录

QMT安装目录\userdata_mini\backups\例如:D:\QMT\userdata_mini\backups\

第2步:DuckDB数据库

D:/StockData/stock_data.ddb

流程

  1. 先下载到QMT本地
  2. 再通过GUI导入到DuckDB
  3. 删除QMT本地文件可节省空间

Q5:需要多久更新一次数据?

A:根据使用频率:

高频交易:每天收盘后更新

  • 使用GUI「更新缺失数据」
  • 只下载当天数据,约30秒

日内交易:盘中实时更新

  • 使用GUI「更新缺失数据」
  • 每小时更新一次

低频交易:每周更新一次

  • 使用GUI「更新缺失数据」
  • 补齐本周缺失数据

回测研究:不定期更新

  • 根据需要更新
  • 使用GUI智能更新

🎓 最佳实践

推荐的数据管理流程

首次使用

第1天:运行 cb_test.bat(测试)第2天:运行 cb_quick.bat(下载2024年全年)第3天:GUI导入到DuckDB

日常使用

每天收盘后:1. 打开GUI2. 点击「更新缺失数据」3. 等待30秒完成

周末补数据

每周五晚上:1. 打开GUI2. 点击「更新缺失数据」3. 自动补齐本周缺失

长时间未使用

时隔1个月以上:1. 打开GUI2. 点击「更新缺失数据」3. 自动补齐所有缺失

📈 技术细节

数据获取方式

优先级顺序

  1. QMT板块实时获取(推荐)

    • 包含最新上市可转债
    • 动态更新
    • 数据最准确
  2. 预定义列表(备用)

    • 当QMT连接失败时使用
    • 包含常见可转债
    • 可能缺少最新上市

代码验证机制

自动过滤以下无效代码:

  • ❌ 尚未发行的预留代码
  • ❌ 已退市的可转债
  • ❌ 暂停交易的代码
  • ❌ 其他无法获取数据的代码

预期结果

  • 获取数量:约321只(2025年1月)
  • 成功率:接近100%
  • 失败数量:0-5只(临时停牌等)

数据格式

下载的数据包含

  • 日期、开盘价、最高价、最低价、收盘价
  • 成交量、成交额
  • 涨跌幅、换手率

数据频率:日K线数据来源:QMT实时行情数据质量:与QMT完全一致

💡 总结

核心要点

✅ 首次使用cb_test.bat → cb_quick.bat → GUI导入 ✅ 日常更新:GUI「更新缺失数据」(最推荐) ✅ 数据验证:GUI数据查看或命令行查询 ✅ 常见问题:检查QMT连接、查看错误日志

优势

  • 🚀 快速:5分钟建立完整数据库
  • 🎯 准确:实时QMT数据,失败率接近0%
  • 🔄 智能:自动更新,只下载缺失部分
  • 💪 稳定:自动过滤无效代码

立即开始

# 1. 测试连接双击 tools/cb_test.bat# 2. 下载2024年数据双击 tools/cb_quick.bat# 3. 导入数据库python rungui.py → 数据管理 → 下载可转债数据# 4. 日常更新python rungui.py → 数据管理 → 更新缺失数据

📞 获取帮助

遇到问题?

  1. 查看项目文档:docs/TROUBLESHOOTING.md
  2. 提交Issue到GitHub仓库
  3. 加入量化交流群讨论

项目地址:https://github.com/quant-king299/EasyXT

🎉 恭喜!你已经掌握了EasyXT可转债数据下载的完整流程!

现在可以专注于策略开发,让数据不再是阻碍!

别忘了点赞、在看、分享三连哦! ❤️


📱 关注我们

欢迎扫码持续关注公众号,会持续分享

🔍 公众号名称: 王者quant📚 分享内容: 量化交易、Python编程、投资策略🎯 更新频率: 持续更新,干货满满

通过公众号您可以获得:

  • 📈 最新的量化交易策略分享
  • 💻 Python量化编程技巧
  • 📊 市场分析和投资心得
  • 🚀 EasyXT功能更新和使用技巧
  • 💡 量化交易实战案例

本教程仅供学习参考,实际交易请谨慎操作!