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

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

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

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

我开发的此系统免费向大家开放使用,获取方式在文末

此外我还用五篇文章的内容详细介绍了一下miniQMT的行情接口和交易接口,因为这是后续系统开发的基础(文章链接附在文末)。

今天开始,将要进入系统开发的核心部分——也就是回测、模拟盘和实盘的系统框架构建,我将该框架命名为khQuant。

零、我为什么要自己搭建一套量化交易框架?

这一节是本文写完之后加的,目的是想要再详细讲讲,在诸多现有量化交易系统可用的当下,我为什么要花这么大的力气再自己做一遍这件事。

1.想要足够开放灵活地实现量化交易。现有的量化交易系统往往对策略开发的方式有较多限制,比如对支持的python第三方包不开放,就限制了最先进的AI算法在量化交易中的应用,这对于我未来想在量化交易领域开展的探索是致命性的约束。基于miniQMT的系统开发几乎将所有自由度都交给了开发者,这是极具诱惑力的。

2.想要策略安全地本地运行。此外基于miniQMT的系统,所有的策略都在本地运行,我们只是调用了行情和交易接口,对于量化交易来说,策略就是一切,本地运行无疑是最安全的。其次是在需要进行大规模数据处理或复杂模型训练时,本地化部署能够提供更好的性能和更低的成本。

3.想要打造一个趁手的“兵器”。关注我的老粉丝可能知道,我以前主要是做信号处理和机器学习算法研究的,在前几年的开发中就有着将工具高效化的开发习惯,在保证专业性的同时实现高度的易用性,软件毕竟只是工具,未来大部分经历是要放在策略研究上的,所以我对这个自己要用的工具的要求就是要足够好用。

最重要的,目前还没有基于miniQMT回测和模拟平台,我开发khQuant框架来吃这个螃蟹,也是给自己和读者朋友们提供更多的可选择空间。

一、khQuant框架总体思路

为了给策略开发提供充分的便利,框架层面的设计我考虑要兼顾以下几点特性:

  • 同一个策略文件能够适用于回测、模拟盘和实盘三种场景,不需要为不同的运行模式再对策略文件进行额外修改。

  • 充分考虑了图形化界面的后续开发需求。通过实现标准化的数据接口和状态管理机制,框架为UI层的开发预留了完整的系统接口。

  • 框架采用模块化设计,将量化交易中的数据获取、策略执行、交易管理、风险控制等核心环节进行解耦,实现了高内聚低耦合的系统架构。

上述特性就决定着,在框架构建的时候要兼顾回测、模拟盘和实盘的需求特点。他们的实现难度是:回测>模拟盘>实盘。

在策略明确的情况下,实盘要做的的基本就是触发策略与执行交易;模拟盘要在交易执行环节采用模拟成交机制。这种模式下,框架需要会维护一个独立的模拟账户系统,记录所有的交易操作和持仓状态;回测模式要在模拟盘虚拟交易机制的基础上,还要模拟出实盘/模拟盘的触发机制,此外回测数据的获取方式和实盘/模拟盘的历史数据读取也有所不同。

三种模式的大体流程如下:

二、运行逻辑

khQuant框架的运行逻辑设计需充分考虑量化交易的实际需求,针对不同的运行模式实现差异化的处理流程。在框架启动时,首先通过配置文件加载系统参数,初始化各个功能模块,建立必要的数据结构和通信机制。随后,框架会根据运行模式的不同,进入相应的运行环境。框架整体运行逻辑如下:

(1)实盘模式下,框架采用了更为严格的运行机制。系统会首先验证交易账户的连接状态和权限,确保交易通道的畅通。随后启动行情订阅,实时接收市场数据。框架通过心跳机制持续监控系统连接状态,在发生异常时能够及时进行重连。在交易时段,系统会根据配置的时间周期触发策略计算,同时实时监控委托状态和持仓情况,确保交易指令的准确执行。

(2)模拟交易模式使用实时行情数据进行策略计算,但在交易执行环节采用模拟成交机制。这种模式下,框架会维护一个独立的模拟账户系统,记录所有的交易操作和持仓状态。系统会对接实时行情数据源,确保策略在真实的市场环境下运行,同时通过虚拟交易系统处理所有交易请求。当策略产生交易信号时,系统会模拟整个交易流程,包括委托、撮合、成交等环节,并实时更新虚拟账户的资产、持仓等状态。这种设计不仅实现了零风险测试,还通过标准化的接口设计,确保了策略未来转入实盘时的平滑过渡。此外,模拟盘模式还需实现与实盘模式相同的风控机制和绩效分析功能,为策略的实盘运行提供了可靠的参考依据。

(3)回测模式下,首先需要进行历史数据校验,确认本地数据完整性、策略所需数据的匹配性。数据准备完成后,框架会按照时间顺序推进,将历史数据按照配置的时间周期(如分钟、日线等)推送给策略模块。在这个过程中,系统会严格按照历史时间序列进行推进,模拟真实的市场环境,包括行情数据、交易时间、以及各种市场状态。策略产生的交易信号会即时被处理,通过模拟成交系统进行撮合。所有的交易操作都会被记录在虚拟账户系统中,包括资金变动、持仓变化、交易成本等,系统还会对每个交易日的账户状态进行完整的记录,为后续的策略分析提供详实的数据支持。

(4)在所有运行模式下,风控模块都会实时监控交易状态,执行风险控制策略。系统会对每个交易信号进行多重检验,包括资金使用率、持仓集中度、委托价格偏离度等多个维度,只有通过全部风控检查的交易指令才会被执行。同时,框架还要实现完整的异常处理机制,能够优雅地处理运行过程中可能出现的各类异常情况。

(5)数据流的处理是框架运行逻辑中的重要环节。在实盘和模拟模式下,框架采用异步处理机制,确保行情数据的实时性。同时,通过数据缓存和预处理机制,减少策略计算时的数据查询压力。对于关键的交易数据,系统会进行持久化存储,便于后续的分析和审计。

(6)整个运行过程中,框架会维护详细的日志记录,包括系统状态、交易信号、委托执行等各个环节的关键信息。这些日志不仅用于系统监控和问题诊断,也为策略优化提供了重要的数据支持。通过分析这些运行数据,策略开发者可以深入了解策略的执行效果,发现潜在的问题和优化空间。

三、系统搭建

好在现在程序编写不是仅仅新建了文件夹,还新建了六个文件哈哈。他们分别是:

  1. 主交易框架(khFrame.py)。作为整个系统的核心,负责协调各个模块的工作,处理不同运行模式下的逻辑差异。在系统启动时完成必要的初始化工作,包括运行模式设定、数据订阅、账户连接等。根据不同的运行模式(回测、模拟、实盘),框架会采用相应的数据处理和策略触发机制。

  2. 策略模块(自定义命名)。为用户提供标准化的策略开发接口。通过初始化配置和主要交易逻辑两个核心部分,使策略开发者能够专注于交易逻辑的实现,而无需过多关注底层细节。

  3. 交易模块(khTrade.py)。负责处理所有交易相关的操作,针对不同的运行模式实现相应的交易逻辑。在实盘模式下执行实际交易,在回测和模拟模式下通过虚拟交易系统模拟整个交易流程。

  4. 算法库(khQuTools.py)。提供策略开发所需的各类工具函数,包括数据处理、技术分析、策略分析等功能。该模块设计为可扩展的形式,能够根据实际需求不断丰富功能。

  5. 风控模块(khRisk.py)。实现完整的风险控制体系,包括资金风控、持仓风控、交易风控等多个维度。通过实时监控和预警机制,确保交易在可控的风险范围内进行。

  6. 配置管理(khConfig.py)。集中管理系统的所有配置信息,包括环境配置、策略参数、风控参数等。通过统一的配置管理机制,提高系统的可维护性和灵活性。

这种模块化的设计使得系统具有良好的扩展性和维护性,同时通过标准化的接口设计,确保了不同模块之间的有效协作。

四、当前进展与下一步工作

我要开发的完整的量化交易系统我将其命名为了“看海量化交易系统”,khQuant是系统中的回测、模拟和实盘框架。“看海量化交易系统”我已经完成了历史数据下载、数据可视化、数据清洗等实用功能模块。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值