【深度学习量化交易16】触发机制设置——基于miniQMT的量化交易回测系统开发实记

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

很多朋友关心回测系统的开发进展,在正式发布前还有几个关键问题要解决,比如今天要说的触发机制——也即程序多久或者什么时候执行一次策略?

在设计khQuant框架的触发机制时,我们面临几组矛盾:如何平衡数据精度与系统资源消耗、如何适应不同交易策略的时间需求、以及如何在回测与实盘环境中保持一致性。基于这些考量,我们采用了分层触发架构,将数据获取与策略执行解耦,并通过统一的触发器接口实现不同触发模式的无缝切换。

经考虑,触发模式设置了4种:tick触发、1分钟触发、5分钟触发、自定义触发时间。

一、Tick触发:灵活但负担重

Tick触发在理论上最为简单,它监听每一笔市场成交数据(实际就是3秒一次),并在数据到达时执行策略。这为策略的编写带来了很大的空间,在策略中可以灵活地添加过滤机制,或者说第二层触发判断,当真正达到触发条件时,再执行策略。第二层触发判断用户在编写时就有了极大的发挥空间。

这种方式的缺点是回测数据量大,因为需要下载所有tick数据——即使有第二层触发条件,这使策略执行频率不会太高。

二、K线触发:趋势策略的可靠选择

K线触发基于固定时间周期的数据,在回测环境中实现简单,只需补充对应周期的K线数据即可。

在看海回测系统中,支持1分钟和5分钟这两种K线周期,当然这不是我不想多设置几种,而是非研投版miniQMT只能支持到这几类了。

值得注意的是,在实盘中如果订阅的是1m,5m数据,其触发周期其实也是3秒,只不过获取的是当前时间点以前1m或者5m的数据,所以如果要在实盘中实现每过1或者5分钟触发一次策略,反而需要框架编写相应机制支持。

K线触发由于数据量较小,系统资源消耗低,回测速度快,特别适合中长期趋势策略和技术分析策略。当然了这个要看你的实际策略了。

三、自定义时间触发:增加自由度

自定义时间触发是khQuant框架的关键功能,它允许用户指定精确的触发时间点,系统会在这些时间点到达时执行策略。

自定义时间触发特别适合定时交易策略,如开盘集合竞价策略、收盘前交易策略等,再比如K线触发不包含的时间周期(比如10分钟,一小时等等)。为策略开发者提供了精确控制交易时机的能力。

需要注意,自定义时间触发仅仅触发进入策略运行,不会像tick、K线触发那样向策略函数中传入数据——数据要在策略内进行获取,这是因为自定义时间触发的前置数据过于多样,难以统一数据输入。同时使用此类型触发的策略,也往往不是简单地需要K线数据。

这种机制要求时间点需为3的整数秒,以确保稳定性和精确性。

对此,我专门设计了一个自定义时间生成的模块,设定起始和结束时间以及时间间隔,可以一键生成触发时间列表,用户可以通过直观的界面设计满足自己需求的触发时间序列。当然你也可以根据自己的需求逐个手敲。

在程序编写过程中我尽量考虑到程序优化的问题,系统会自动分析用户设定的时间点特性:当所有触发时间点都是整分钟时(如9:30:00, 10:00:00),系统自动使用1分钟K线数据;当存在非整分钟时间点时(如9:30:15, 10:05:45),系统则切换到tick数据。这种智能适配在保证策略执行精度的同时,显著优化了系统资源使用和回测效率。

四、下一步考虑

后边还有几件事要做,做完后回测系统就可以跟大家见面了:

  • 设置盘前、盘后回调机制
  • 完善不同数据订阅模式与框架的兼容
  • 策略的项目化管理设置
  • 回测结果可视化与评估参数优化
  • 与成熟的回测软件(比如QMT)进行相同策略的对比,以验证软件的有效性

因此,目前的回测系统还不满足放出来给大家使用的状态,待测试稳定后,快捷的安装包版本以及全部开源代码都会放出来给读者朋友们使用。

近期我尽量加快软件和文章更新的频率,尽早让朋友们使用上这个软件。

现在开发的系统界面长这样了

end、开通miniQMT

上述讲到的系统是基于miniQMT,很多券商都可以开通miniQMT,不过门槛各有不同,很多朋友找不到合适的券商和开通渠道。这里我可以联系券商渠道帮忙开通,股票交易费率是万1,开通成功的朋友都可以免费使用上边开发的“看海量化交易系统”。这个系统还在持续开发的过程中,数据下载的功能已经可以使用,回测部分正在加紧开发,大家可以先开通MiniQMT的权限,这样回测部分的功能放出后就能第一时间用上了~

对于想要开通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的量化交易软件,增加补充数据功能,优化免费下载数据模块体验!

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

【深度学习量化交易15】基于miniQMT的量化交易回测系统已基本构建完成!AI炒股的框架初步实现

【深度学习量化交易16】韭菜进阶指南:A股交易成本全解析

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

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

相关文章

RabbitMQ 和 Redis 的选择

在处理大规模消息场景时,RabbitMQ 和 Redis 的选择需根据具体需求权衡。 大规模消息场景的关键考量 ​吞吐量需求: ​Redis:更适合 ​超高频写入​(如百万级/秒),但需牺牲部分可靠性。​RabbitMQ&#xff…

【从零开始学习计算机科学与技术】计算机网络(七)应用层

【从零开始学习计算机科学与技术】计算机网络(七)应用层 应用层DNS域名资源记录域名解析:域名解析的种类:电子邮件SMTP简单邮件传输协议POP3IMAP文件传输(FTP、TFTP和NFS)FTPTFTPNFSWWW超文本HTMLURLHTTP代理服务器:远程登陆Telnet和rlogin多媒体通信协议应用层 其最靠…

图解AUTOSAR_CP_WatchdogDriver

AUTOSAR WatchdogDriver模块详解 AUTOSAR MCAL层看门狗驱动模块详细解析 目录 1. 模块概述2. 架构位置 2.1. 组件架构 3. 主要功能4. API接口5. 配置参数 5.1. 配置模型 6. 错误代码7. 状态管理 7.1. 状态机 8. 处理流程 8.1. 活动流程 9. 操作序列 9.1. 典型操作序列 10. 硬件…

Linux操作系统应用

Linux操作系统应用 一、用户与用户组管理1.1 管理用户1.1.1 与用户账号相关的文件1.1.2 用户管理命令1.1.3 任务实施 1.2 管理用户组1.2.1 用户组1.2.2 用户组管理命令 1.3 查看用户和用户组状态1.3.1 用户查看命令 id、who、whoami1.3.2 用户身份切换命令 su、sudo 二、文件管…

【大语言模型_5】xinference部署embedding模型和rerank模型

一、安装xinference pip install xinference 二、启动xinference ./xinference-local --host0.0.0.0 --port5544 三、注册本地模型 1、注册embedding模型 curl -X POST "http://localhost:5544/v1/models" \ -H "Content-Type: application/json" \…

Vector 的模拟实现:从基础到高级

文章目录 1. 引言2. vector的核心设计3. vector的常用接口介绍3.1 构造函数和析构函数3.1.1 默认构造函数3.1.2 带初始容量的构造函数3.1.3 析构函数 3.2 拷贝构造函数和拷贝赋值运算符3.2.1 拷贝构造函数3.2.2 拷贝赋值运算符 3.5 数组长度调整和动态扩容3.5.1 调整大小&#…

深入理解 Linux 的 top 命令:实时监控系统性能

在 Linux 系统管理和性能优化中,top 命令是一个不可或缺的工具。它可以实时显示系统的进程信息和资源使用情况,帮助管理员快速定位性能瓶颈。本文将详细介绍 top 命令的输出内容及其使用方法,帮助你更好地掌握系统性能监控。 一、top 命令简介 top 是一个动态显示系统状态的…

拖拽实现+摇杆实现

拖拽实现 拖拽事件实现: 半透明渐变贴图在ios设备下,使用压缩会造成图片质量损失,所以可以将半透明渐变UI切片单独制作真彩色图集 拖拽事件组 IBeginDragHandler:检测到射线后,当拖拽动作开始时执行一次回调函数 IDragHandler:拖拽开始后&a…

xLua_001 Lua 文件加载

xLua下载 1、HelloWrold 代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; // 引入XLua命名空间 public class Helloworld01 : MonoBehaviour {//声明LuaEnv对象 private LuaEnv luaenv;void Start(){//实例化LuaEnv对象…

每天看一篇漏洞报告

前言: 内容来源于乌云漏洞 今日思考xss漏洞, 今天看到一篇文章,里面详细说了xss的绕过技巧,虽然时间久了,没有去尝试,待会有时间去测试一下 以下是整理后的文章,原文在下面 文章链接&#…

【sql靶场】第18-22关-htpp头部注入保姆级教程

目录 【sql靶场】第18-22关-htpp头部注入保姆级教程 1.回顾知识 1.http头部 2.报错注入 2.第十八关 1.尝试 2.爆出数据库名 3.爆出表名 4.爆出字段 5.爆出账号密码 3.第十九关 4.第二十关 5.第二十一关 6.第二十二关 【sql靶场】第18-22关-htpp头部注入保姆级教程…

Python----计算机视觉处理(Opencv:形态学变换)

一、形态学变化 形态学变换(Morphological Transformations)是一种基于形状的图像处理技术,主要处理的对象为二值化图像。 形态学变换有两个输入和一个输出:输入为原始图像和核(即结构化元素),输…

对于memset(b, 1, sizeof b)赋值为16843009情况

memset(b, 1, sizeof b); 的行为看起来可能不符合预期,这是因为 memset 的工作方式和数据类型之间的差异导致的。下面详细解释这个问题。 1. memset 的作用 memset 是 C/C 中的一个标准库函数,用于将一段内存区域的值设置为指定的字节值。它的函数原型如…

【最新版】智慧小区物业管理小程序源码+uniapp全开源

一.系统介绍 智慧小区物业管理小程序,包含小区物业缴费、房产管理、在线报修、业主活动报名、在线商城等功能。为物业量身打造的智慧小区运营管理系统,贴合物业工作场景,轻松提高物业费用收缴率,更有功能模块个性化组合,助力物业节约成本高效运营。 二.搭建环境 系统环…

C++模板进阶

目录 非类型模板参数 类模板的特化 分类 函数模板的特化 模板分离编译 问题 解决方法 1)不对模板定义进行分离或对模板进行特例化; 2)将声明和定义放在同一个文件 总结 关于C模板的使用在《C类和对象》中有介绍,本篇博客…

Ubuntu togo系统读写性能与原生系统测试

我前面把一个Ubuntu环境拷贝到了一个10Gbps的硬盘盒制作了一个Ubuntu togo的系统,帖子在这里,这篇文章主要用于测试使用Ubuntu togo的系统和原生系统的性能差异。 以下是测试Ubuntu togo系统与原系统性能差异的具体方案,结合移动硬盘特性及参…

【css酷炫效果】实现鱼群游动动态效果

【css酷炫效果】实现小鱼游动动态效果 缘创作背景css代码创建div容器引入jquery引入鱼群js完整代码效果图成品资源下载链接:点击下载 缘 在开发系统功能的时候,无意间看到了小鱼游动特效,感觉很有意思,就在网上找了相关教程,分享给大家。 创作背景 刚看到csdn出活动了…

停车场停车位数据集,标注停车位上是否有车,平均正确识别率99.5%,支持yolov5-11, coco json,darknet,xml格式标注

停车场停车位数据集,标注停车位上是否有车,平均正确识别率98.0%,支持yolov5-11, coco json,darknet,xml格式标注 数据集-识别停车场所有车辆的数据集 数据集分割 一共184张图片 训练组 89&am…

结合基于标签置信度的特征选择方法用于部分多标签学习-简介版

假设 部分多标签学习(PML)假设:假设样本的标签集合中存在伪正标签,即某些标签可能是错误的。目标是从候选标签集中识别出真实标签。特征与标签的关系假设:假设不同的标签对应的特征子空间可能是不同的,而不…

Lora微LLAMA模型实战

引言 本文介绍如何复现Alpaca-lora,即基于alpaca数据集用lora方法微调Llama模型。 环境准备 实验环境用的是lanyun,新用户点击注册可以送算力。 下载huggingface上的模型是一个令人头疼的问题,但在lanyun上可以通过在终端运行source /etc…