type
status
date
slug
summary
tags
category
icon
password
使用说明
- 自己部署 python 环境的话,需要安装相应的库,主要有三个,xtquant 、apscheduler 和 pywencai,其他的是标准库,不需安装。
xtquant
是小 QMT 的数据获取和交易的库,可以到官网 xtquant版本下载 | 迅投知识库 (thinktrader.net) 自行下载,然后放到你 python 安装所在的 site-packages 文件夹内。apscheduler
和pywencai
库可以通过 pip 安装,国内镜像可以使用pip install apscheduler -i https://pypi.tuna.tsinghua.edu.cn/simple
。
pywencai
库依赖 Node.js,自行在电脑中安装安装,否则无法爬取问财数数据。
- 爬取问财的数据可能出现不稳定,毕竟不是通过 api 获得数据,所以是存在一定的风险的。一旦数据出错或获取不到数据,自动化交易可能带来损失,损失自行承担,概不负责。建议有两个:一、降低爬取频率,以免 IP 被封;二、模拟号充分测试。
一、系统概述
问财策略量化交易系统是一个基于 Python 开发的自动化股票交易工具,它连接了"问财"数据接口与券商交易系统,实现了自动化的择股、交易决策和执行。该系统的核心优势在于支持定时任务的智能调度执行,使用户可以根据自定义查询条件,设置特定时间点自动进行交易操作,实现真正的"无人值守"交易模式。
系统采用了图形用户界面(GUI)设计,交易逻辑清晰明确:首先通过问财接口获取符合条件的证券列表,然后对比当前持仓,先卖出不在列表中的持仓证券,再按资金均分原则买入新的证券。整个过程支持定时执行,并提供了丰富的日志记录和状态反馈。

二、系统架构与组件
该交易系统主要由以下几个核心组件构成:
1. 用户界面层(WencaiTraderGUI 类)
负责与用户交互的图形界面,包括:
- 交易参数设置区域:QMT 路径、账号、交易时间、委托方式等
- 查询条件管理区域:添加、删除问财查询语句
- 定时任务管理区域:设置、执行和删除定时任务
- 资产信息展示区域:账户资金、持仓状态实时展示
- 日志展示区域:记录系统运行状态和操作结果
2. 交易逻辑层(TraderThread 类)
作为独立的线程运行,处理核心交易逻辑:
- 负责与交易接口的通信连接
- 调度和执行定时任务
- 实现问财策略的具体交易逻辑
- 管理资产查询和持仓查询
3. 订单执行层(place_orders 函数等)
处理具体的交易指令:
- 撤销已有订单
- 发送新的交易委托
- 处理不同证券类型的交易规则
- 根据市场情况调整交易价格
4. 辅助功能模块
包括日志记录、错误处理、配置管理等功能:
- LogRedirector 类:重定向系统输出到 GUI 界面
- 配置文件的保存与加载功能
- 异常捕获与处理机制
三、核心功能详解
1. 定时任务管理
系统最重要的特色功能是定时任务调度执行机制,由 schedule 库提供支持:
此机制确保即使当前时间已过设定执行时间,系统也会自动将任务安排到下一个交易日执行,同时只要程序保持运行,任务会在每天的指定时间自动执行。
2. 交易策略执行流程
系统的交易逻辑体现在
execute_wencai_strategy_with_reserved_cash
方法中,遵循"先卖后买"的原则:这种设计确保系统先释放资金,然后再分配资金进行新买入,最大化利用可用资金。
3. 智能价格调整
系统支持智能价格调整策略,可根据用户设置的百分比对买入价和卖出价进行微调:
这一功能帮助用户更灵活地应对市场波动,提高订单成交概率。
四、系统流程图
五、代码实现中的亮点
1. 高效的异步处理
系统广泛使用多线程技术处理耗时操作,保证 GUI 界面的响应性能:
2. 强大的错误处理
系统实现了全面的异常捕获和错误处理机制,确保在遇到问题时不会崩溃:
3. 持久化配置管理
系统支持将所有设置保存到配置文件,并在启动时自动加载:
六、潜在的改进方向
尽管该系统功能强大,但仍有一些可以改进的方面:
- 风险控制机制:增加交易量限制、单笔交易最大金额限制等风险控制参数。
- 更灵活的资金分配:目前系统采用均分资金策略,可以考虑增加根据证券权重、波动率等因素进行智能资金分配。
- 性能优化:问财查询可能耗时较长,可以考虑增加缓存机制,避免频繁查询。
- 数据分析功能:增加交易结果统计分析功能,帮助用户评估策略效果。
- 回测系统集成:集成历史数据回测功能,帮助用户在实盘前评估策略。
七、总结
问财策略量化交易系统是一个功能完善、设计良好的量化交易工具,它将问财的选股能力与自动化交易执行有机结合,通过定时任务机制实现了真正的自动化交易。系统采用分层架构设计,代码结构清晰,异常处理完善,为追求投资自动化的用户提供了强大的工具支持。
通过保持程序运行,系统能够按照预设的时间和规则自动执行交易策略,实现"每日定时调仓"的需求,让投资策略运行不再依赖人工干预,大大减轻了投资者的操作负担。
- 作者:余汉波
- 链接:https://wd.sanrenjz.com/%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%95%88%E7%8E%87/QMT%E4%B8%8E%E9%97%AE%E8%B4%A2%E7%BB%93%E5%90%88-%E5%8D%95%E7%AD%96%E7%95%A52.0%EF%BC%9A%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E8%87%AA%E5%8A%A8%E5%8C%96%E4%BA%A4%E6%98%93%E7%B3%BB%E7%BB%9F
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。