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

我是Mr.看海,我在尝试用信号处理的知识积累和思考方式做量化交易,应用深度学习和AI实现 股票自动交易,目的是实现财务自由~
目前我正在开发基于miniQMT的量化交易软件。

之前写到,目前我已经完成了数据下载、数据清洗和数据可视化三个模块的开发。期间一直有朋友问软件是否可以共享,毕竟通过该手段获取到的股市数据是免费的,且质量也不错。并且目前开发的清洗和可视化模块也能为数据分析预处理提供一些便利。

这段时间我主要瞄向需要这个软件系统的朋友,为更加稳定和方便地使用,做了一些易用性的提升和功能完善,并且对于开通券商QMT的朋友开放此软件的使用。

下边来讲一讲目前软件系统可以实现的功能,有需要的朋友在文末可以获取软件~

一、预置常用成分股

之前的版本需要用户手动选择或导入股票列表文件,操作相对繁琐。为此,新版本预置了多个主流股票池,包括沪深A股、创业板、科创板等常用板块的股票列表,以及中证500、沪深300、上证50等重要指数成分股名单,以及对于上证指数等几种指数也预制了下载选项。

设置选取股票清单功能模块

从界面上可以看到,股票池选择采用了清晰的分组展示方式,用户可以根据自己的研究方向快速定位和选择目标股票池。这项改进不仅提升了数据获取的效率,也为不同投资策略的研究提供了便利。值得一提的是,系统保留了添加自定义列表的功能,可以满足用户的个性化研究需求。

二、新增软件设置界面

新版本增加了统一的设置界面,将系统配置集中管理,使操作更加直观和便捷。

工具栏增加设置按钮

2.1 客户端路径配置

之前提到过,打开该软件的时候,会检测QMT软件状态,并在未开启时自动打开QMT软件。考虑到不同用户的安装路径不同的情况,新版本支持灵活配置miniQMT客户端路径。在设置界面设置路径,系统会自动保存这个配置。在使用过程中,软件会实时监测客户端状态,确保数据获取的稳定性。

2.2 股票列表更新管理

成分股数据的时效性直接影响策略研究的准确性。新版本提供了成分股清单一键更新功能,用户只需点击"更新成分股列表"按钮,系统就会自动获取最新的股票清单。

更新过程中会显示详细的进度信息,让用户明确了解当前状态。

这个功能适合在新股上市或成分股调整期间使用。

设置界面

2.3 系统状态监控

在界面右上角新增的状态指示器采用了简洁的图标设计,通过不同的颜色直观地展示系统状态:

  • 绿色表示miniQMT客户端连接正常,数据服务就绪
  • 黄色表示系统处于警告状态
  • 红色表示需要用户注意的异常状态(如miniQMT客户端未开启)

鼠标悬停在状态指示器上时,会显示详细的状态信息,帮助用户快速诊断和解决潜在问题。

三、系统命名和标识

3.1 系统命名

就像那句古老的程序员格言:"命名是计算机科学中最难的两件事之一"(另一件是缓存失效),起名总是一个让人头疼的事情。于是我决定直接简洁一些,沿用我的ID——Mr.看海,将量化交易系统命名为"看海量化交易系统"。此外"看海"这个词本身就很巧地有所契合,量化交易不就是要用数据分析的眼光去"看"市场的"海"吗,哈哈!

后续开发的基于miniQMT的回测、模拟、实盘框架,则定为"khQuant","kh"源自"看海","Quant"则代表量化交易的专业属性。

3.2 系统标识

作为一个封装好的软件,logo是必不可少的。不过图标设计这项工作有些难为一个理科生了,姑且简洁地设计成下边这样吧!

3.3 启动界面

启动画面的设计借鉴了"薛定谔的进度条"理论——你永远不知道100%的进度是不是真的代表加载完成。不过我们的进度条可比量子力学靠谱多了,它清清楚楚地告诉你系统在做什么:"正在启动"、"正在检查更新"、"正在加载组件",或者"正在思考人生"(开个玩笑,最后这个没有)。

四、使用说明

就像前边说到过的,该系统是基于miniQMT的量化交易系统。

QMT是由迅投公司开发的,券商采购的量化交易软件,个人散户也可以使用,miniQMT是QMT的极简模式,在miniQMT模式下,策略代码不再禁锢于QMT软件下的内置编辑器编写,他提供的是行情获取以及实盘交易接口,极致的开放度带来了极致的自由度,这就为后续我们使用深度学习量化交易提供了条件,也就是我开发“看海量化交易系统”的初衷——之所以不用已经开发成熟的QMT,而是选择自行开发一套基于miniQMT的量化交易框架,也是为了最高程度地利用其自由度,实现最新的人工智能模型、最天马星空的策略在量化交易上的应用。

说多了,这里想要表达的其实就是一件事情——要使用“看海量化交易系统”,前提条件是开通了miniQMT。

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

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

五、软件操作演示

目前平台更新的进展大致如下:

2024.10.11 完成历史数据下载模块初步版本。
2024.10.12 GUI界面更新了打开QMT终端和指示灯功能 数据可视化界面解决了部分bug
2024.11.08 1.将数据下载和数据清洗模块合并为GUI.py文件 2.加入了 报错日志保存的功能 3.读取股票列表的函数文件,加入了支持各种编码模式。
2024.11.15 1.基本完成数据下载和数据清洗模块 2.完成软件界面可根据 显示器分辨率自动调整大小,并保持界面居中
2024.11.16 完善重复 数据清理的逻辑,需进行时间戳与数据双重验证,以判定是否为重复数据。
2024.11.17 1.添加了数据可视化模块 2.在平台主界面新增了工具栏,可通过工具栏打开可视化模块。3.重新整理了data文件夹,使其更具结构化 4.修正了1d数据下载可能存在的bug 5.修正底层下载数据的函数,对于下载1d数据,不再下载time列
2024.11.18 美化了界面,优化了软件界面布局,丰富了文件信息内容(增加了市场分部、周期类型、日期范围),图例解析为中文显示,日内数据休市时间使用灰色区域显示。
2024.11.20 在可视化模块中加入了重载文件夹数据功能。
2024.11.22 增加了设置界面,添加了icon图标。
2024.11.26 添加splash加载界面,显示程序加载进度。
2024.11.28 实现程序打包为exe安装包,并支持中文安装界面。
2024.11.29 发布第一个稳定版本V1.0.0
2024.12.01 发布V1.1.6,完善日志管理。
2024.12.02 发布V1.1.8,优化激活管理和界面日志记录,修复激活提示重复显示问题。改进状态指示器逻辑,避免重复记录相同状态。
2024.12.02 发布V1.2.0,更新股票列表获取和保存功能,添加成分股支持;优化日志记录,增强错误处理机制;修复界面关闭时的线程管理问题;改进设置对话框,添加股票列表管理功能。此提交提升了用户体验和系统稳定性。
2024.12.02 发布V1.2.1,内置了对沪深A股、 深证A股、上证A股、创业板、科创板、中证500成分股、 沪深300成分股、上证50成分股的股票列表,以及常用指数的列表。设置界面新增了对上述股票列表的更新功能。
2024.12.05 发布稳定版本V1.2.3,修复了多个界面和功能问题,提升了用户体验和系统稳定性。

相关文章

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

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

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

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

Mr.看海:【深度学习量化交易5】 量化交易历史数据可视化模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开发情景】数据库存的JSON数据转为Map,key值是中文,转成英文,转为json数据传给前端

数据库存的JSON数据转为Map,key值是中文,转成英文,转为json数据传给前端 方法一(最详细): 一、解析JSON数据:使用 JSON 库将字符串解析为 Map。 1、从数据库读取 JSON 字符串:2、使…

Node.js EventEmitter

Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。 所有这些产生事件的对象都…

SpringBoot 项目使用 EasyExcel 插件构建 Excel 表格格式(行高、列宽和字体等)工具类

本文主要讲了如何使用 EasyExcel 插件&#xff0c;在导出 Excel 时&#xff0c;设置行高&#xff0c;列宽&#xff0c;表头格式&#xff0c;内容字体大小等工具类。 1、代码使用的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyex…

Ubuntu18安装后基本配置操作

1. 关掉自动更新 不关掉自动更新&#xff0c;会将你的ubuntu系统更新到更高版本&#xff0c;一些配置就不能用了&#xff0c;所以要关掉自动更新。在“软件和更新”中将“自动检查更新”设置为从不。 2. ubuntu换国内源 参考链接换源 按照这个换源这个换源好使 &#xff0c;…

《探索C++在3D重建中的算法与技术要点》

3D重建作为计算机视觉领域的重要技术&#xff0c;在诸多行业有着广泛应用&#xff0c;而C以其高效性和对底层硬件的良好控制&#xff0c;成为实现3D重建算法的常用语言。以下是利用C进行3D重建的一些常见算法和技术要点。 多视图立体视觉算法 多视图立体视觉是3D重建的基础算…

Hadoop一课一得

Hadoop作为大数据时代的奠基技术之一&#xff0c;自问世以来就深刻改变了海量数据存储与处理的方式。本文将带您深入了解Hadoop&#xff0c;从其起源、核心架构、关键组件&#xff0c;到典型应用场景&#xff0c;并结合代码示例和图示&#xff0c;帮助您更好地掌握Hadoop的实战…

2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长

2024153读书笔记|《春烂漫&#xff1a;新平摄影作品选》——跳绳酷似人生路&#xff0c;起落平常&#xff0c;进退平常&#xff0c;莫惧征途万里长 《春烂漫&#xff1a;新平摄影作品选》作者新平&#xff0c;2019.12.25年读完的小书&#xff0c;当时就觉得挺不错&#xff0c;今…

Django 与 Flask 框架深度剖析

一、框架概述 起源与发展 Django&#xff1a; 诞生于新闻应用开发环境&#xff0c;旨在快速构建复杂、数据库驱动的网站。由 Django 软件基金会维护&#xff0c;拥有庞大的社区支持&#xff0c;持续更新迭代。其发展遵循稳定、功能丰富的路线&#xff0c;注重安全性与可扩展性的…

JAVA:建造者模式(Builder Pattern)的技术指南

1、简述 建造者模式(Builder Pattern)是一种创建型设计模式,它通过将对象的构造过程与表示分离,使得相同的构造过程可以创建不同的表示。建造者模式尤其适用于创建复杂对象的场景。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 本文将详细介绍建…

MFC改变对话框控件字体

代码如下,加到对话框的OnInitDialog()成员函数, CButton* pButton = (CButton*)GetDlgItem(IDOK);LOGFONT lf;ZeroMemory(&lf, sizeof(LOGFONT));lf.lfHeight = 25; // 字体高度lf.lfWidth = 0; // 字体平均宽度lf.lfEscapement = 0…

GESP202412 四级【Recamán】题解(AC)

》》》点我查看「视频」详解》》》 [GESP202412 四级] Recamn 题目描述 小杨最近发现了有趣的 Recamn 数列&#xff0c;这个数列是这样生成的&#xff1a; 数列的第一项 a 1 a_1 a1​ 是 1 1 1&#xff1b;如果 a k − 1 − k a_{k-1}-k ak−1​−k 是正整数并且没有在数…

「数据结构详解·十五」树状数组

「数据结构详解一」树的初步「数据结构详解二」二叉树的初步「数据结构详解三」栈「数据结构详解四」队列「数据结构详解五」链表「数据结构详解六」哈希表「数据结构详解七」并查集的初步「数据结构详解八」带权并查集 & 扩展域并查集「数据结构详解九」图的初步「数据结构…

如何通过python实现一个web自动化测试框架?

一、首先你得知道什么是Selenium&#xff1f; Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分&#xff1a;Selenium IDE、Selenium WebDriver和Selenium Grid。 Selenium IDE&#…

在python中使用“while”和“for”循环

编写代码时&#xff0c;一个常见的难题是让其执行未知次数的任务。 在本单元中&#xff0c;你希望允许用户输入行星名称列表。 遗憾的是&#xff0c;你不知道用户输入了多少名称。 若要支持次数未知的循环&#xff0c;可以使用 while 循环。 while 循环在当某个条件为 true 时…

[Rust开发]actix_web::middleware 中间件

actix_web::middleware 在 Actix Web 框架中扮演着重要的角色&#xff0c;它允许开发者在处理 HTTP 请求和响应的过程中插入自定义的逻辑。中间件可以在请求到达处理函数之前或响应返回给客户端之前执行&#xff0c;从而实现日志记录、身份验证、数据验证、错误处理等功能。 为…

如何使用 Python 发送 HTTP 请求?

在Python中发送HTTP请求最常用的库是requests&#xff0c;它提供了简单易用的API来发送各种类型的HTTP请求。 除此之外&#xff0c;还有标准库中的http.client&#xff08;以前叫做httplib&#xff09;和urllib&#xff0c;但它们相对更底层&#xff0c;代码量较大&#xff0c…

C++ 中面向对象编程如实现数据隐藏

在C中&#xff0c;面向对象编程&#xff08;OOP&#xff09;通过封装&#xff08;Encapsulation&#xff09;来实现数据隐藏。封装是OOP的一个核心概念&#xff0c;它允许将对象的属性和行为&#xff08;即数据和方法&#xff09;组合在一起&#xff0c;并对外隐藏对象的内部实…

opencv——图片矫正

图像矫正 图像矫正的原理是透视变换&#xff0c;下面来介绍一下透视变换的概念。 听名字有点熟&#xff0c;我们在图像旋转里接触过仿射变换&#xff0c;知道仿射变换是把一个二维坐标系转换到另一个二维坐标系的过程&#xff0c;转换过程坐标点的相对位置和属性不发生变换&a…

OpenCV中的边缘检测和轮廓处理

在图像处理和计算机视觉任务中&#xff0c;边缘检测和轮廓处理是非常重要的步骤。OpenCV库提供了多种函数来实现这些功能&#xff0c;包括Sobel算子、Laplacian算子、Canny算子、findContours函数、drawContours函数以及透视变换函数等。本文将详细介绍这些函数的功能、参数、返…

flex 弹性布局 笔记

<style> /* flex-direction &#xff08;即项目的排列方向&#xff09; flex-wrap &#xff08;换行&#xff09; flex-flow &#xff08; flex-direction属性和flex-wrap属性的简写形式&#xff09; justify-content &#xff08;项目的对齐方向&#xff09;主轴…