【深度学习量化交易14】正式开源!看海量化交易系统——基于miniQMT的量化交易软件

devtools/2025/1/18 22:58:42/
我是Mr.看海,我在尝试用信号处理的知识积累和思考方式做量化交易,应用深度学习和AI实现股票自动交易,目的是实现财务自由~
目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。

前13篇文章,我介绍了我开发的量化交易系统的思路、进展,并将目前开发完成的数据下载、数据补充、数据清洗和可视化模块免费提供给大家使用。

之前给大家提供的是安装包,目的是为不具备开发环境的朋友们更方便地使用。

今天开始,源码正式开源!后续也将和软件安装包一起同步更新~

一、看海量化交易系统介绍

看海量化交易系统是基于MiniQMT开发的。

MiniQMT是一种轻量级的量化交易解决方案,使用MiniQMT可实现对交易过程的完全控制,借此优势实现最灵活的系统构建和最前沿的算法应用。然而,MiniQMT也有其挑战,它要求用户具有较强的编程能力,因为很多功能需要自己开发。

在之前的工作中,我介绍了“看海量化交易系统”的开发进展,即目前已经开发完成数据下载、数据清洗和可视化的工作。(如下图演示)

动图封面

软件的开发日志我贴在文末了,感兴趣的大家可以翻阅。

二、源码介绍

上述图片中展示的是源码文件,其中前三个是最重要的。下边逐一介绍一下:

2.1 GUI.py

GUI.py是整个应用程序的核心文件,作为主窗口的入口点。该文件实现了三个核心的数据处理功能。

数据下载功能通过`DownloadThread`类实现了多线程数据下载机制,可以高效获取包括tick、1分钟、5分钟和日线在内的多种周期数据,并配备了完善的进度显示和错误处理机制。

数据补充功能则实现了历史数据的增量更新,用户可以根据需要指定时间范围和字段进行数据补充,有效避免了重复下载已有数据。

数据清洗功能由`StockDataCleaner`类提供,实现了全面的数据清洗流程。这包括对重复数据的去除、缺失值的处理、数据类型的转换、异常值的处理、非交易时段数据的处理以及数据的排序和验证等。

此外,该文件还包含了完整的日志系统和数据目录管理等支持功能,并通过多线程设计确保了在处理大量数据时的性能表现。

2.2 GUIplotLoadData.py

GUIplotLoadData.py专注于数据可视化和分析功能的实现。该模块的核心是`StockDataAnalyzerGUI`类,它构建了一个功能丰富的数据分析平台。

在数据展示方面,系统支持包括分钟线和日线在内的多种数据周期展示,并实现了交互式的数据可视化界面,能够同时展示多个数据指标。

在图表交互方面,用户可以自由地对图表进行缩放和平移操作,在数据点上悬停时可以查看详细信息,还可以通过图例灵活控制不同数据系列的显示或隐藏。

在数据分析功能方面,系统提供了完整的文件夹分析和股票选择功能,可以显示详细的数据统计信息,并支持数据范围和周期的灵活切换。该模块基于matplotlib库构建了强大的绘图系统,并进行了深度定制,为用户提供了流畅而专业的数据分析体验。

2.3 khQTTools.py

khQTTools.py是一个综合性的工具模块,为整个应用程序提供了核心的数据处理和计算功能。

在数据获取和管理方面,该模块实现了完整的股票列表获取和更新机制,支持多种数据周期的下载和存储,并提供了数据补充和增量更新功能。其中还对下载的数据文件格式进行了详细定义。

在特征计算方面,模块可以进行包括成交量比率、收益率在内的日内特征计算,以及次日收益率的计算,同时支持多种复权方式的数据处理。

在数据处理工具方面,模块提供了完整的股票代码和板块管理功能,实现了规范的数据文件命名和组织规则,并支持多种数据格式的转换和处理。该模块充分利用了xtquant库的数据处理能力,通过多线程操作提高了性能,特别是在处理大量股票数据时,能够提供高效的数据处理和存储解决方案。

2.4 update_manager.py

update_manager.py实现了完整的软件更新管理机制。

开源用户可能会收到推送更新的通知,将其忽略掉,并重新拉取最新的开源程序即可。

2.5 version.py

version.py是应用程序的版本管理文件,它通过一个集中的配置字典维护了软件的关键信息。该字典包含了当前版本号、构建日期、更新通道和应用名称等重要信息。

该代码主要在打包exe程序时使用,开源用户不许过多关注此文件。

三、获取软件安装包或源码

对于需要exe安装包或者源码的朋友,大家可以关注“看海的城堡”,在公众号中获取。

四、开通miniQMT

上述讲到的系统是基于miniQMT,很多券商都可以开通miniQMT,不过门槛各有不同,很多朋友找不到合适的券商和开通渠道。这里我可以联系券商渠道帮忙开通,股票交易费率是万1,开通成功的朋友都可以免费使用上边开发的“看海量化交易系统”。这个系统还在持续开发的过程中,使用这套软件的朋友们也欢迎大家多提提意见,我也会及时响应,完善功能。

对于想要开通miniQMT、使用上边开发的“看海量化交易系统”的朋友们,请大家关注一下我的公众号“看海的城堡”,在公众号页面下方点击相应标签即可获取。

五、开发进展

关注我的粉丝朋友们可能知道,我现在开发到了系统的核心框架部分,也就是回测、模拟和实盘的模块,目前已经将框架的主体部分写完,但由于该部分内容的开发需要大量的精力和测试,开发周期较长。

后续我将增加文章更新频率,跟大家分享开发进展与心得。

相关文章

深度学习量化交易1】一个金融小白尝试量化交易的设想、畅享和遐想

深度学习量化交易2】财务自由第一步,三个多月的尝试,找到了最合适我的量化交易路径

深度学习量化交易3】为了轻松免费地下载股票历史数据,我开发完成了可视化的数据下载模块

深度学习量化交易4】 量化交易历史数据清洗——为后续分析扫清障碍

深度学习量化交易5】 量化交易历史数据可视化模块

深度学习量化交易6】优化改造基于miniQMT的量化交易软件,已开放下载~(已完成数据下载、数据清洗、可视化模块)

深度学习量化交易7】miniQMT快速上手教程案例集——使用xtQuant进行历史数据下载篇

深度学习量化交易8】miniQMT快速上手教程案例集——使用xtQuant进行获取实时行情数据篇

深度学习量化交易9】miniQMT快速上手教程案例集——使用xtQuant获取基本面数据篇

深度学习量化交易10】miniQMT快速上手教程案例集——使用xtQuant获取板块及成分股数据篇

深度学习量化交易11】miniQMT快速上手教程——使用XtQuant进行实盘交易篇(一万七千字超详细版本)

深度学习量化交易12】基于miniQMT的量化交易框架总体构建思路——回测、模拟、实盘通吃的系统架构

深度学习量化交易13】继续优化改造基于miniQMT的量化交易软件,增加补充数据功能,优化免费下载数据模块体验!


http://www.ppmy.cn/devtools/151684.html

相关文章

异步任务与定时任务

一、异步任务 基于TaskExecutionAutoConfiguration配置类中,注册的ThreadPoolTaskExecutor线程池对象进行异步任务执行。 (一)手动执行异步任务 在yml中配置线程池参数 spring: task:execution:pool:core-size: 5 # 核心线程数max-size: 20 # 最大线…

网络安全 | 什么是正向代理和反向代理?

关注:CodingTechWork 引言 在现代网络架构中,代理服务器扮演着重要的角色。它们在客户端和服务器之间充当中介,帮助管理、保护和优化数据流。根据代理的工作方向和用途,代理服务器可分为正向代理和反向代理。本文将深入探讨这两种…

Elasticsearch Python 客户端是否与自由线程 Python 兼容?

作者:来自 Elastic Quentin_Pradet 在这篇文章中,我们将进行一些实验,看看 Python Elasticsearch 客户端是否与新的 Python 3.13 自由线程(free-threading)版本兼容,其中 GIL 已被删除。 介绍 但首先&…

从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用

文章目录 1. 后端项目搭建 1.1 环境准备1.2 数据表准备1.3 SpringBoot3项目创建1.4 MySql环境整合,使用druid连接池1.5 整合mybatis-plus 1.5.1 引入mybatis-plus1.5.2 配置代码生成器1.5.3 配置分页插件 1.6 整合swagger3(knife4j) 1.6.1 整…

网络安全 | 防护技术与策略

网络安全 | 防护技术与策略 一、前言二、网络安全防护技术2.1 防火墙技术2.2 加密技术2.3 入侵检测与防范系统(IDS/IPS)2.4 身份认证技术 三、网络安全策略3.1 网络访问控制策略3.2 数据安全策略3.3 应急响应策略 四、网络安全防护技术与策略的整合与优化…

如何进行域名跳转与域名重定向的综合指南

文章摘取于 Dynadot官方博客内容。 在访问一些商业网站时,我们通常会发现这些平台会将多个域名都指向到同一个内容界面。当然,也存在网站迁移到新域名,旧域名则指向新域名以及其内容页面的情况。 这两者实际上都属于域名跳转的范畴&#xff…

使用 Tailwind CSS 的几点感触

大家好,我是大澈! 偶然看到了js前端样式库的排名,Tailwind CSS 以大比例的优势,稳稳占据第一的位置。 对于 Tailwind CSS 我之前用的很少,我一般都是使用自定义原子css写法,感觉更自由更舒服,而…

设置完端口转发后,本机可以ping通公网设备,但公网设备无法ping通本机内网ip

设置端口转发后,本机可以ping通公网设备,但公网设备无法ping通本机内网IP,通常与以下原因有关: 1. 端口转发仅针对特定端口 端口转发的作用:端口转发仅将特定端口的流量(如TCP/UDP)从公网IP转发…