QMT 单线程指南(三):ContextInfo 是什么、状态该存哪儿,十个问答

本系列前两篇:(一) 《QMT 单线程指南(一):多策略怎么排队、该不该把策略写在一起》(二) 《QMT 单线程指南(二):C 语言、Cython 与胶水语言,十一个问答》文中(一)(二)指上述本系列文章。 文中《系统函数》《变量约定》《常见问题》《使用须知》《快速开始》这类短书名号,一律指 QMT 官方知识库中的对应篇目;§ 后接的是该篇目下的小节标题。 一、先把三个坑摆出来这三个坑,都是「把 ContextInfo「后面简称 C」 当成普通 Python 对象」的直接后果: 计数永远加不上去——handlebar 里写 C.count += 1,盘中打印出来反复是 1,偶尔跳一下...

Read More...

个人量化里最容易被忽略的"容量",可能决定着策略的成败

挑策略的时候,大多数人先看年化收益,再看夏普、最大回撤。很少有人会先问一句:这个策略能装多少钱? 这个问题有个专门的名字,叫容量:一个策略在表现不崩的前提下,能承受的最大资金量。注意前半句,”表现不崩”——不是”还能下单”,而是”收益和回撤都还维持在可接受的水平”。超过这条线,策略依然能跑,只是跑出来的结果会越来越难看。 先说一个很多人都经历过的场景你用小资金跑一个策略,比如 30 万,跑了大半年,收益不错,回撤也稳。信心上来了,资金加到 100 万,甚至 200 万。结果收益没有按比例放大,反而开始变差——滑点变大、成交变差、某些票根本买不进去,回撤也跟着放大。 你以为是市场变坏了,或者策略...

Read More...

为什么交易策略过阵子就不灵了?以及,为什么大家不愿意把能用的策略公开

几乎每个跑过实盘的人都经历过这个场景: 你熬了几个晚上挖出一个策略,回测曲线漂亮得不像话,夏普 2.5,最大回撤不到 8%,过去五年稳稳跑赢沪深300。你满怀期待地上线,前两周确实赚钱,你觉得自己找到了圣杯。然后第三个月开始回撤,你安慰自己”正常波动”,第六个月回撤超过 20%,你开始怀疑人生,第九个月这个策略已经跑输指数了。 到底发生了什么?是代码写错了吗?是市场变了吗?还是……你其实从一开始就没找到真正的 alpha? 这篇文章聊两个问题:策略为什么会慢慢失效,以及为什么一个策略一旦公开,死得比藏着的时候快得多。 先说”慢慢失效”这件事策略失效,原因其实就那么几种,排个序: 第一种:它...

Read More...

QMT被限制后,我准备把策略分到三个"篮子"里

10 月 23 日那一刀下来,很多 QMT 用户的策略都”卡住了”。 先是 大 QMT 内置策略封掉了文件读写和外部网络——状态落盘、消息推送、外部监控全废;紧接着 miniQMT 基本全线关停——本来靠极简模式多线程跑的策略也没了去处。剩下唯一还能跑的大 QMT,还是单线程,策略多了还得排队。 原来一套策略在一个平台上就能跑通的好日子,暂时是没了。 与其等下一次通知,不如主动把策略拆开放进几个篮子里,每个平台干自己最擅长的事。这篇文章讲讲我打算怎么分。 为什么必须拆开核心原因就三个字:放不下。 以前一个 QMT 客户端能干所有事:内置策略跑交易逻辑、miniQMT 跑需要多线程或外部库的、本...

Read More...

做量化的我,在短剧里挖出了一整套古代金融建模框架

做量化的你,最近有没有被朋友拉着刷短剧?你有没有,发现一个离谱的事实:这些穿越古代搞金融的短剧,编剧怕不是偷偷上过 CFA Level II。 你想:现代银行人穿越到明朝开银行,废妃拉皇帝投资搞股份公司,重生皇商用干股换一条命……表面上是爽文穿越,内核其实是一整套被简化包装的金融建模框架。而且背景是古代,没有监管,没有交易所,编剧可以把最纯粹的金融逻辑扒给你看,比教科书直白多了。 如果你最近因子挖到吐、Alpha 找不到方向,或者单纯想在摸鱼时间学点不一样的东西,下面把短剧里出现过的”古代金融模型”按硬核程度排了个队,顺手翻译成量化交易者能看懂的语言。 一、入门级:古代版「票号 → 银行」改...

Read More...

QMT 单线程指南(二):C 语言、Cython 与胶水语言,十一个问答

同一段逻辑,三种写法,最快的那版快 257 倍: 没换语言(还是 Python 语法),没换机器,也没改数学公式——只是把「谁来算」和「怎么算」这两件事搞对了。 这件事在大 QMT 里格外要紧——因为所有策略共用同一条 Python 线程,你花的每一毫秒都是公共开销。 上一篇《QMT 单线程指南(一):多策略怎么排队、该不该把策略写在一起》把执行模型讲透了:所有策略共享同一条 Python 线程,串行、不可抢占。它的第七问给了四层提速思路——数据 → 计算 → 回调 → 架构,但「计算层」只落了一句话: 禁止 Python 循环算指标,全部交给 pandas/NumPy...

Read More...

用 Cython 给 QMT 提速:一个例子讲清原理和效果

上一篇《QMT 策略代码保护指南》里提到,把核心算法用 Cython 编译成 pyd 不仅能加密,速度反而更快。这篇就展开讲讲:Cython 到底为什么能提速、能快多少。 一、Cython 是什么一句话:Cython 是”带类型标注的 Python 超集”,它把你的 Python 代码翻译成 C 代码,再编译成机器码。 12345algo.py (Python) ↓ cythonizealgo.c (C 源码) ↓ MSVC / gccalgo.cp312-win_amd64.pyd (机器码,import 用法和 .py 一模一样) 写法上几乎就是 Python:.py 文...

Read More...

QMT 策略代码保护指南(加密):从 pyc 到 pyd,加密等级从低到高怎么选

QMT 策略 python代码写好了,怎么保护它(加密)。 一、为什么 QMT 策略代码需要加密先看几个事实: 1. QMT 的源码就明晃晃躺在本地磁盘上。你在策略编辑器里写的每一个字,都保存在 券商QMT版\python 目录下。虽然 QMT 默认模式下保存的文件用文本编辑器打开是乱码(磁盘上是密文),但只要你在策略编辑器里勾选了「启动本地 Python」或使用原生 Python 模式,源码就是明文。 2. pyc 不是加密,只是”格式转换”。很多人以为把 .py 编译成 .pyc 就安全了。现实是:Python 3.8 以前的字节码,用 uncompyle6 一条命令就能近乎完美地还原出源...

Read More...

AI Skill 给大 QMT 策略做代码评审(一):QMT 内置双均线策略

最近,我做了一件事:做成了一个 AI Agent Skill(名字叫 qmt-strategy-review),让它专门干一件事——评审大 QMT 策略代码+单线程工程分析,出一份可决策的审阅报告。 先说清楚状态:这个 Skill 还没上线,目前只在我本地的 Skill 目录里跑,等上架了我再更新。这篇就用一个真实案例(评审QMT 内置的双均线示例策略)展示它到底产出什么、怎么用、以及它明确不干什么。 真实案例:评审官方双均线示例我把官方那份双均线实盘示例丢进去,跑出来的汇总表是这样: 第一部分:评审范围说明本评审只检查代码编写与代码实现层:单线程阻塞、数据层效率、ContextInfo 误...

Read More...

近九成新因子活不过一年:聊聊因子半衰期,以及 AI 挖因子的正确姿势

最近读完了 2026 年 7 月发布的《2025/2026 中国量化投资白皮书》(456 页,第五版)。这份白皮书每年都会向量化机构发问卷,今年回收了 223 份、保留有效样本 178 份,里面有一道题特别扎心: 新上线的因子,其超额收益”半衰期”(效果衰减至初上线时一半的时间)主要分布在? 答案整理成一张图,就是这篇文章的起点。如果你在 QMT 里自己挖因子、自己堆策略,这组数据值得认真看一遍——它解释了为什么很多人”回测很美,上线就哑火”,也指出了几条被头部机构验证过的活法。 一、先看数据:近九成新因子,活不过一年 178 张机构的问卷回答,众数落在 1–3 个月(36.5%...

Read More...