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

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

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

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

近期主要做了两项工作:1.我根据大家的使用反馈,将当前系统进行了完善。感谢提供反馈的朋友们,系统在大家共同的建议下将会越来越完善和易用。2.同时我为数据下载模块添加了一个重要功能——数据补充。

1.关于数据补充

之前我们提到过,在大QMT中有“数据补充”功能,但是它下载下来的是二进制的dat数据,无法直接读取处理,所以我开发了数据下载模块,将数据保存为显式可阅读的csv数据文件,方便后续各种场景的使用。

使用“看海量化交易系统”可以将数据显式地保存下来

1.1 为何要添加“数据补充”功能

"数据补充"功能也自有其独特价值。在量化交易策略中,我们通常使用get_market_data函数来获取数据,它既可以获取实时行情,也可以获取历史数据。当我们运行策略时,如果历史数据已经提前通过数据补充功能下载完成,get_market_data函数就能直接从本地读取数据,这样可以大大提高策略程序的运行效率,避免了每次都需要从服务器重新获取历史数据的时间开销。

此外,数据补充功能还为不同类型的用户提供了更多选择。有些用户可能不需要将数据显式下载保存为文件,而是更习惯直接在策略中调用接口获取数据;而有些用户则希望对数据进行深入的分析和处理,需要将数据保存到本地。通过数据补充功能和数据下载功能两者并存,这两类用户都能得到很好的支持:前者可以享受到更快的数据访问速度,后者则可以选择使用数据下载功能将数据保存为CSV文件进行后续处理。

1.2 为何不直接用大QMT的数据补充功能?

之所以不直接使用大QMT的数据补充功能,是因为其下载的dat数据存储路径与MiniQMT不同,这种路径的差异会导致在MiniQMT中无法直接使用大QMT补充的数据。我开发的数据补充功能不仅保持了增量更新的高效性,还确保了数据存储路径与MiniQMT保持一致,让数据能够被看海系统直接调用,为用户后续的策略开发和回测提供了极大便利。

1.3 看海系统中“数据补充”的使用方式

为了保持软件使用的连贯性,"数据补充"功能仅仅是增加了一个按钮。其余对于股票列表、周期类型、字段选择、日期范围等设置都与数据下载功能保持一致,用户无需重新学习新的操作方式。当用户选择好所需的股票和参数后,只需点击"补充数据"按钮,系统就会自动检查并补充缺失的数据部分。

在补充过程中,系统会实时显示当前处理的股票代码和进度情况,让用户清楚地了解补充的进展。同时,为了确保数据的完整性和可靠性,系统会自动记录每个股票的补充状态,如果某只股票在补充过程中出现异常,系统会在日志中详细记录,方便用户后续进行针对性的处理。

值得一提的是,看海量化交易系统的数据下载模块支持tick级别的数据获取。这意味着用户可以获取到最细粒度的交易数据,包括每一笔交易的价格、成交量、买卖盘口等详细信息。同时,系统还支持1分钟、5分钟和日线等多个周期的数据补充,可以满足不同层面的分析需求。无论是高频交易策略的研究,还是中长期趋势的分析,都能找到合适的数据支持。

2.系统其他优化更新

在看海系统公开使用的这段时间一来,很多朋友提出了不错的修改建议,近期软件升级中都进行了修改完善。包括:

1. 保存操作的存储路径:系统现在会记住用户上次选择的路径,下次打开软件时会默认打开该路径,避免用户重复选择。
2. 数据清洗提示优化:在进行数据清洗操作时,系统会明确提示用户"清洗后数据将覆盖原始数据",防止误操作导致原始数据丢失。
3. 可视化界面优化:改进了数据悬停显示时的配色方案,使数据展示更加清晰直观。

新的文字提示配色

4. 周期切换优化:优化了周期切换的逻辑,切换周期时不会重置已选择的字段,提高了操作效率。
5. 复权方式选择:新增了复权方式的选择功能,支持不同的复权方式处理数据。对于下载显式数据,复权是一个重要的选项,所以在此版本更新中我向老用户全部推送了此次更新,安装软件的用户朋友们可以进行便捷的升级。
6. 时间范围验证:优化了日期时间范围的验证功能,确保输入的时间范围有效且合理(也就是如果设置的截止时间早于开始时间,程序会弹窗提醒)。

7. ETF数据支持:新增了对ETF数据的下载支持,扩展了系统的数据覆盖范围。

3. 使用说明

就像前边说到过的,该系统是基于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,更新股票列表获取和.

.
、。,mnbvmcx.0保存功能,添加成分股支持;优化日志记录,增强错误处理机制;修复界面关闭时的线程管理问题;改进设置对话框,添加股票列表管理功能。此提交提升了用户体验和系统稳定性。
2024.12.02 发布V1.2.1,内置了对沪深A股、 深证A股、上证A股、创业板、科创板、中证500成分股、 沪深300成分股、上证50成分股的股票列表,以及常用指数的列表。设置界面新增了对上述股票列表的更新功能。
2024.12.05 发布稳定版本V1.2.3,修复了多个界面和功能问题,提升了用户体验和系统稳定性。
2024.12.10 发布V1.2.5新增风险提示和文章管理功能,更新多个数据文件以修正股票名称。此提交提升了系统稳定性和用户体验。
2024.12.18 发布V1.2.6,去掉了登录的激活限制。
2024.12.30 发布V1.2.9 修改如下:1.完全去除 激活验证。2.保存操作的存储路径,下次打开软件时,默认打开上次选择的路径。3.清洗数据时提醒“清洗后数据将覆盖原始数据” 4.优化可视化界面的数据悬停显示配色 5.切换周期时,不重置字段。
2025.01.02 发布V1.3.1 修改如下:1.添加复权方式选择。2.优化日期时间范围验证功能。3.支持ETF数据下载。

相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue进阶(贰幺贰)npm run build多环境编译

文章目录 一、前言二、实施三、总结:需要打包区分不同环境四、拓展阅读 一、前言 项目开发阶段,会涉及打包部署到多个环境应用场景,在不同环境中,需要进行项目层面的区分,做不同的操作,可以利用打包的--mo…

回归预测 | MATLAB实GRU多输入单输出回归预测

回归预测 | MATLAB实GRU多输入单输出回归预测 目录 回归预测 | MATLAB实GRU多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实GRU多输入单输出回归预测。使用GRU作为RNN的一种变体来处理时间序列数据。GRU相比传统的RNN有较好的记…

ARM交叉编译Boost库

Boost下载&#xff1a;点击跳转 编译过程&#xff1a; 生成project-config.jam ./bootstrap.sh --with-librariesfilesystem,thread --with-toolsetgcc 2. 修改project-config.jam&#xff08;位于第12行附近&#xff09; if ! gcc in [ feature.values <toolset> ] …

【.NET】Kafka消息队列介绍,使用Confluent.Kafka集成Kafka消息队列

一、Kafka介绍 kafka是一种高吞吐量、分布式、可扩展的消息中间件系统&#xff0c;最初由LinkedIn公司开发。随着不断的发展&#xff0c;在最新的版本中它定义为分布式的流处理平台&#xff0c;现在在大数据应用中也是十分广泛。 它可以处理大量的实时数据流&#xff0c;被广…

Jenkins内修改allure报告名称

背景&#xff1a; 最近使用Jenkins搭建自动化测试环境时&#xff0c;使用Jenkins的allure插件生成的报告&#xff0c;一直显示默认ALLURE REPORT&#xff0c;想自定义成与项目关联的名称&#xff0c;如图所示&#xff0c;很明显自定义名称显得高大上些&#xff0c;之前…

Elasticsearch学习(1) : 简介、索引库操作、文档操作、RestAPI、RestClient操作

目录 1.elasticsearch简介1.1.了解es1.2.倒排索引正向索引和倒排索引 1.3.es的一些概念:文档和字段&#xff1b;索引和映射&#xff1b;Mysql与ES1.4.安装es、kibana部署单点es部署kibanaIK分词器安装IK分词器与测试扩展与停用词词典总结 部署es集群 2.索引库操作2.1.mapping映…

【Linux】Linux常见指令(上)

个人主页~ 初识Linux 一、Linux基本命令1、ls指令2、pwd命令3、cd指令4、touch指令5、mkdir指令6、rmdir指令7、rm指令8、man指令9、cp指令10、mv命令 Linux是一个开源的、稳定的、安全的、灵活的操作系统&#xff0c;Linux下的操作都是通过指令来实现的 一、Linux基本命令 先…

【Java项目】基于SpringBoot的【校园交友系统】

【Java项目】基于SpringBoot的【校园交友系统】 技术简介&#xff1a;系统软件架构选择B/S模式、SpringBoot框架、java技术和MySQL数据库等&#xff0c;总体功能模块运用自顶向下的分层思想。 系统简介&#xff1a;系统主要包括管理员和用户。 (a) 管理员的功能主要有首页、个人…

点击底部的 tabBar 属于 wx.switchTab 跳转方式,目标页面的 onLoad 不会触发(除非是第一次加载)

文章目录 1. tabBar 的跳转方式2. tabBar 跳转的特点3. 你的配置分析4. 生命周期触发情况5. 总结 很多人不明白什么是第一次加载&#xff0c;两种情况讨论&#xff0c;第一种情况假设我是开发者&#xff0c;第一次加载就是指点击微信开发者工具上边的编译按钮&#xff0c;每点击…

什么是Kafka?有什么主要用途?

大家好&#xff0c;我是锋哥。今天分享关于【什么是Kafka&#xff1f;有什么主要用途&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是Kafka&#xff1f;有什么主要用途&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 是一个分布式流…

基于QT和C++的实时日期和时间显示

一、显示在右下角 1、timer.cpp #include "timer.h" #include "ui_timer.h" #include <QStatusBar> #include <QDateTime> #include <QMenuBar> Timer::Timer(QWidget *parent) :QMainWindow(parent),ui(new Ui::Timer) {ui->setup…

单片机-定时器中断

1、相关知识 振荡周期1/12us; //振荡周期又称 S周期或时钟周期&#xff08;晶振周期或外加振荡周期&#xff09;。 状态周期1/6us; 机器周期1us; 指令周期1~4us; ①51单片机有两组定时器/计数器&#xff0c;因为既可以定时&#xff0c;又可以计数&#xff0c;故称之为定时器…

Java 如何传参xml调用接口获取数据

传参和返参的效果图如下&#xff1a; 传参&#xff1a; 返参&#xff1a; 代码实现&#xff1a; 1、最外层类 /*** 外层DATA类*/ XmlRootElement(name "DATA") public class PointsXmlData {private int rltFlag;private int failType;private String failMemo;p…

【C】编译与链接

在本文章里面&#xff0c;我们讲会讲解C语言程序是如何从我们写的代码一步步变成计算机可以执行的二进制指令&#xff0c;并最终执行的。C语言程序运行主要包括两大步骤 -- 编译和链接&#xff0c;接下来我们就来一一讲解。 目录 1 翻译环境和运行环境 2 翻译环境 1&#…

如何设计一个注册中心?以Zookeeper为例

这是小卷对分布式系统架构学习的第8篇文章&#xff0c;在写第2篇文章已经讲过服务发现了&#xff0c;现在就从组件工作原理入手&#xff0c;讲讲注册中心 以下是面试题&#xff1a; 某团面试官&#xff1a;你来说说怎么设计一个注册中心&#xff1f; 我&#xff1a;注册中心嘛&…

Vision Transformer模型详解(附pytorch实现)

写在前面 最近&#xff0c;我在学习Transformer模型在图像领域的应用。图像处理任务一直以来都是深度学习领域的重要研究方向&#xff0c;而传统的卷积神经网络已在许多任务中取得了显著的成绩。然而&#xff0c;近年来&#xff0c;Transformer模型由于其在自然语言处理中的成…

vue实现虚拟列表滚动

<template> <div class"cont"> //box 视图区域Y轴滚动 滚动的是box盒子 滚动条显示的也是因为box<div class"box">//itemBox。 一个空白的盒子 计算高度为所有数据的高度 固定每一条数据高度为50px<div class"itemBox" :st…

Vue指令(下)

Vue指令(下) 参考文献&#xff1a; Vue的快速上手 Vue指令上 文章目录 Vue指令(下)v-bindv-bind小案例v-forv-for小案例v-for中的keyv-model 结语 博客主页: He guolin-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们…

初学者关于对机器学习的理解

一、机器学习&#xff1a; 1、概念&#xff1a;是指从有限的观测数据中学习(或“猜 测”)出具有一般性的规律&#xff0c;并利用这些规律对未知数据进行预测的方法.机器学 习是人工智能的一个重要分支&#xff0c;并逐渐成为推动人工智能发展的关键因素。 2、使用机器学习模型…

Vue篇-05

5 vuex 5.1 vuex是什么 概念:专门在 Vue 中实现集中式状态(数据)管理的一个Vue 插件&#xff0c;对 vue 应用中多个组件的共享状态进行集中式的管理(读/写)&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于任意组件间通信。Github 地址: https://github.com/vuejs/…