低风险策略自动化:债券类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     来自北京

赞同来自: 何哲欢888 无敌小韩

要回复问题请先登录注册

发起人

问题状态

  • 最新活动: 2026-05-09 14:51
  • 浏览: 153
  • 关注: 4