低风险策略自动化:债券类ETF动量轮动策略在mini-QMT环境下的细节

前言
解决mini-qmt自启动的问题后,就要开始自动执行策略了。我记录了一下写程序和执行代码的过程,以及发现的问题,供大家讨论。

策略选择:
为什么是债券类ETF
我选择债券类ETF轮动作为踏上量化交易的第一步。
第一,策略简单,用30年国债ETF、可转债ETF和银华日利做轮动,每22个交易日计算三者的收益率,买入最强者,如果全都为负则卖出所有ETF空仓。这个策略唯一的因子就是价格,引入太多因子会导致复杂度上升,刚开始做量化实盘,要尽量简化模型。
第二,券商对债券ETF不收佣金,很方便日频交易。在没有免五资格的情况下,频繁频繁轮动其他品种纯纯给券商送钱。
第三,这三个ETF都是t 0,调试代码时,如果出问题,可以立即纠错。

代码逻辑:从算法到执行
我的代码逻辑分为四个标准模块。如果你也在写 QMT 脚本,可以参考这个流程,注意,以下都是伪代码:
  1. 策略初始化与环境准备
  2. 触发条件,寻找胜者
    核心逻辑是:收益率为正且涨幅第一。
    如果没有标的满足条件,系统会自动返回NONE,触发清仓防御逻辑。
  3. 轮动交易执行
    这里的工程逻辑是:先卖后买。
    为了确保快速成交,我选择了强吃对手盘的策略。
  4. 闲置资金逆回购

策略说明以及实际执行时遇到的问题
  1. 设置单次轮动最大投入,原因无他,无论回测多漂亮,都不能第一次实盘就全仓干,毕竟不清楚策略和代码哪里会出问题。
  2. 挂单偏移(Offset)与 Tick Size
    为了尽快成交(强吃对手盘),买入和卖出时,挂单价需要在当前价格的基础上让价。算法是当前价格 /-最小价格变动单位(Tick Size)的倍数:
    买入价格是

卖出价格则是


ETF和债券的Tick Size是0.001,股票是0.01,因为这个策略是ETF轮动,所以使用0.001,倍数是2。
对于成交量比较大的可转债ETF和银华日利,实时价格 /-2倍Tick Size差不多就是卖二/买二的档位。
对于流动性稍弱的30年国债ETF,这样也能确保在买一/卖一档位成交。
  1. 在卖出或买入时,多次轮询成交状态,如果在一定时间内(例如3分钟)仍然无法成交,就执行撤单,剩余资金全部参与逆回购。

量化不只是算法
量化策略是算法,而量化交易是工程。 一个能稳定赚钱的系统,30% 取决于你选了什么标的,70% 取决于你如何处理滑点、处理撤单、处理资金利用率。

免责声明
本文仅作为编程技术及量化接口调用的交流分享,不构成任何投资建议。市场有风险,实盘需谨慎。
发表时间 2026-05-09 14:51     最后修改时间 2026-05-09 16:57     来自北京

赞同来自: 荔浦芋头 误入歧途的少年 gaokui16816888 何哲欢888 无敌小韩更多 »

0

南天门下

赞同来自:

@jargma2021
回测年化是多少
晕死发错图了,是下面这两张



2026-05-10 16:16 来自北京 引用
0

南天门下

赞同来自:

@奔魔
我也正打算学这个,还没开始,抛砖引玉一下,如果说错了就当我没说。
一、同样是0.001的差额,对国债ETF来说是百万分之一级别,对可转债ETF是万分之一级别。
二、排名问题,不知道你具体怎么排的,1是可能有精度问题也可能没有;2是冲击成本对排名的影响;3是尽量用涨幅百分比的比值而不是差额进行排名对比。
三、时间问题,排名时间与交易时间
四、资金量问题,资金量大额对比小额有更多机会发生部分成交的情况...
您客气了
一、 确实是这样,但为达到迅速成交的目的,只能付出一点代价。
二、 我是用收益率从高到低排名,收益率算法是((当前价格-22个交易日前收盘价) – 1) * 100%。有极小可能产生精度问题,可以忽略不计。
三、 排名和交易时间差不多同时,我设置的计划任务时间是14:55。
四、 如果资金量大确实会出现部分成交的问题,我现在设置最大交易金额是1.2W,只能买一手30年国债ETF,暂时还没遇到。我现在想到的办法就是没成交的资金继续让价,在买3/卖3档成交,但这样就不可避免产生冲击成本。所以不一定能达到回测的收益率。
2026-05-10 15:47 来自北京 引用
0

南天门下

赞同来自:

@jargma2021
回测年化是多少
我用米筐测了一下,从2023年6月13日到2026年5月8日,年化15.8%,总收益和每年收益见下图。30年国债ETF是2023-6-13上市。基准是000300



2026-05-10 15:46 来自北京 引用
0

南天门下

赞同来自:

@NASA逻辑
跟之前看的一个公众号博主的策略有点像,不过买的是可转债变成了创业板
都是轮动策略,但轮动品种不同差别可大了。我试过银华日利、创业板ETF、华宝油气、黄金ETF、纳指ETF和可转债ETF的轮动,回测年化收益率高达50%,但波动也很大,最大回撤25%,如果考虑频繁交易的佣金损失和冲击成本,年化收益会剧降。
2026-05-10 15:45 来自北京 引用
0

NASA逻辑

赞同来自:

跟之前看的一个公众号博主的策略有点像,不过买的是可转债变成了创业板
2026-05-10 00:12 来自安徽 引用
0

奔魔

赞同来自:

我也正打算学这个,还没开始,抛砖引玉一下,如果说错了就当我没说。
一、同样是0.001的差额,对国债ETF来说是百万分之一级别,对可转债ETF是万分之一级别。
二、排名问题,不知道你具体怎么排的,1是可能有精度问题也可能没有;2是冲击成本对排名的影响;3是尽量用涨幅百分比的比值而不是差额进行排名对比。
三、时间问题,排名时间与交易时间
四、资金量问题,资金量大额对比小额有更多机会发生部分成交的情况,二者执行同样的程序但成交价差别还是有的,那么对你后续的增大资金量的参考性就要打个问号。
2026-05-09 23:49 来自辽宁 引用
2

jargma2021

赞同来自: gaokui16816888 luckzpz

回测年化是多少
2026-05-09 19:46 来自江苏 引用
0

蟋蟀猪

赞同来自:

我是取对手盘第五档价格下单,30秒未成撤单重新下单
2026-05-09 19:07 来自河北 引用

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2026-05-10 16:16
  • 浏览: 652
  • 关注: 17