先说结论:如果只是偶尔做国债逆回购,券商自带的自动下单功能很省心,值得用服务费换便利;但如果每天都用较大闲置资金做一天期逆回购,额外服务费会变成一笔持续的交易摩擦。

我看到的两个券商自动下单页面,费率分别是:

1
2
自动方案 A:0.003%,每 10 万元收费 3 元
自动方案 B:0.0035%,每 10 万元收费 3.5 元

而一天期国债逆回购常见的手动佣金示例是:

1
手动下单:0.001%,每 10 万元收费 1 元

如果每年按 240 个交易日估算,每天用 10 万元做一天期逆回购:

方式 每次费用 年费用
手动下单 1 元 240 元
自动方案 A 3 元 720 元
自动方案 B 3.5 元 840 元

也就是说,每 10 万元一年可能多付 480 到 600 元。如果资金是 100 万元,就对应 4,800 到 6,000 元

这就是我没有直接打开券商自动下单,而是考虑用 QMT 和 Python 自己做一套自动化的主要原因。

本文只是记录我的计算和实现思路,不构成投资建议。不同券商、账户和逆回购期限的佣金可能不同,请以开户券商的最新收费说明和实际交割单为准。


券商自动下单贵在哪里?

券商自动下单解决的是“每天记得操作”的问题。它通常会在指定时间检查账户可用资金,扣除用户设置的预留金额,然后把剩余资金用于国债逆回购。部分功能还会判断收益是否覆盖手续费,或者自动撤销未成交委托。

这类功能最大的优点是省心:不用写代码,不用维护 QMT,不用担心程序断线。

但问题也在这里:它把“省心”做成了一项额外收费服务。

下面两张是我看到的券商页面截图。因为原图是很长的手机截图,这里只展示关键费率区域;点击图片可以查看完整截图。

券商余额理财自动下单收费说明,显示自动下单费率 0.003%,每 10 万元收取 3 元
方案 A:0.003% 每 10 万元收取 3 元,页面说明已包含原手动下单佣金率。
券商设置自动下单页面风险提示,显示单笔收费 0.0035%,含手续费 0.001% 和功能服务费 0.0025%
方案 B:0.0035% 每 10 万元收取 3.5 元,其中包含手续费 0.001% 和功能服务费 0.0025%。

单次多 2 元或 2.5 元,看起来不大。但一天期逆回购如果每天都做,频率会把小费用放大。

自动频率 年交易次数示例 方案 A 额外费用 / 10 万元 方案 B 额外费用 / 10 万元
每半年一次 2 次 4 元 5 元
每月一次 12 次 24 元 30 元
每周一次 52 次 104 元 130 元
每个交易日一次 240 次 480 元 600 元

所以关键不是“券商自动功能能不能用”,而是你的使用频率和资金规模是否值得为它付费。


低利率环境下,手续费会更显眼

假设用 10 万元做一天期逆回购,成交年化利率是 1.5%。按 365 天口径粗略计算:

1
毛收益 = 100000 × 1.5% ÷ 365 ≈ 4.11 元

扣除费用后:

下单方式 毛收益 手续费 净收益
手动下单 4.11 元 1 元 3.11 元
自动方案 A 4.11 元 3 元 1.11 元
自动方案 B 4.11 元 3.5 元 0.61 元

这就是我在意这件事的原因。

自动下单当然不是永远不划算。比如节假日前,一天期品种可能获得多个实际计息日,这时手续费占比会下降。但在大量普通交易日,尤其是利率偏低时,自动服务费会吃掉相当一部分净收益。


什么时候用券商功能,什么时候自己做?

我的判断很简单:

场景 更适合
低频操作,资金规模不大,只想省心 券商自动下单
不熟悉 Python,不愿维护 Windows / QMT 券商自动下单
每天都有较大闲置资金 QMT 自建程序
已经有 QMT、Python、日志和通知系统 QMT 自建程序
想比较沪深利率、动态设置门槛、接入自定义通知 QMT 自建程序

换句话说,券商功能卖的是便利;自建程序买的是控制权。

如果一个人平时不写程序,也没有长期运行的交易终端,为了每 10 万元每年省几百元去搭系统,可能并不划算。但如果已经有 QMT 和自动化环境,逆回购自动下单只是把已有能力再接上一段。

对我来说,它不只是省服务费,更重要的是让账户资金管理变得可观测、可追溯、可控制。


我的 QMT 实现思路

完整代码我放在这个 Gist 里,建议直接用 AI 帮你读一遍:

https://gist.github.com/corvofeng/5870cf0357600293e7ebee9d2237b182

程序核心目标只有一个:每天固定时间检查账户,如果条件合适,就把闲置资金拿去做一天期逆回购;如果条件不合适,就记录原因并跳过。

大致流程是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
启动策略
├─ 订阅沪深一天期逆回购行情
├─ 绑定账户
└─ 注册每日定时任务

定时触发
├─ 检查是否为交易日和允许时间
├─ 检查当天是否已经执行
├─ 查询可用资金
├─ 扣除预留现金和安全缓冲
├─ 比较沪深逆回购利率
├─ 判断是否高于最低利率门槛
└─ 提交委托或跳过

委托后
├─ 记录委托状态
├─ 记录成交结果
├─ 处理失败原因
└─ 发送通知

这里真正重要的不是“会调用下单接口”,而是这些保护:

  • 不要把账户可用资金全部扫进去,要预留现金和安全缓冲;
  • 下单金额要向下取整到合规交易单位;
  • 先用最小金额实盘验证委托数量、买卖方向、价格字段和手续费;
  • 用当日唯一备注、当日委托查询和内存状态一起防止重复下单;
  • 区分“已触发”“已提交”“已成交”“已失败”,不要把提交请求当成成交结果;
  • 接入通知,让资金不足、利率过低、委托失败、部分成交等情况都能被看见;
  • 默认开启模拟模式,稳定后再逐步提高最大交易金额。

自动交易最怕的不是程序不会下单,而是程序太会下单。现金管理工具应该追求可靠,而不是聪明。


总结

券商自动逆回购功能并不是不好。它的本质是:用户用额外服务费,换取无需开发、无需维护、无需每天记得操作。

低频使用时,这个交换很合理。每 10 万元一年可能只多花几元到几十元。

但如果每天都做一天期逆回购,额外费用会持续发生。按 240 个交易日估算,每 10 万元一年可能比手动多付 480 到 600 元;100 万元则可能多付 4,800 到 6,000 元。

所以我的选择是:如果本来没有自动化环境,就用券商功能省心;如果已经有 QMT、Python 和通知系统,就自己做,把这笔交易摩擦降下来。

国债逆回购本身只是一个很小的功能,但它背后是同一个问题:交易收益不只来自判断,也来自减少不必要的摩擦。能省下来的服务费、能记录下来的执行链路、能提前拦住的异常,最后都会变成系统的一部分。


参考资料

  1. 迅投 QMT 内置 Python 知识库,ContextInfo.run_time() 定时器及 Python API 说明:
    https://docs.thinktrader.net/vip/QMT/

  2. 迅投系统函数文档,ContextInfo.run_time()
    https://dict.thinktrader.net/innerApi/system_function.html

  3. 迅投 QMT 官方网站:
    https://www.thinktrader.net/

  4. 平安证券投资者教育页面,国债逆回购手续费示例:一天期每 10 万元收取 1 元:
    https://m.stock.pingan.com/omm/mobile/zixun/m.html?adid=1000000000007387&id=1000016796&infid=1000016797

  5. 证券时报关于国债逆回购费用和计息规则的报道:
    https://stcn.com/article/detail/1504170.html

  6. 上交所关于 2017 年 5 月 22 日开始实施债券质押式回购新规的说明,提到全年计息天数从 360 天改为 365 天,并按资金实际占款天数计息:
    https://www.sse.com.cn/aboutus/mediacenter/hotandd/c/c_20170519_4313753.shtml

  7. 深交所《债券交易实施细则》相关公式中,回购购回价按实际占款天数 / 365 计算:
    https://docs.static.szse.cn/www/disclosure/notice/W020210512409004773670.pdf

  8. 本文中的券商自动服务费率、自动撤单和最低委托利率说明,来自作者账户内券商功能页面截图。不同券商和账户可能不同。