自动交易陷阱

信号太频繁会被手续费吃光:算出策略每天真正能发几次

2026-09-15·5 分钟阅读

你把交易信号的回测跑出来一片绿——年化 60%、胜率 48%、平均 R/R 1.4。挂上 webhook(也就是把 TradingView 信号送到你自己执行服务器的那条通道)打开自动下单,第一周真金白银的绩效却只有 -3%。你打开对账单看到一长串小额扣款,加起来比任何一笔单的获利都大——你的手续费跑赢了你的策略。

没有人先跟你讲的是:手动交易的人一天下 3~5 次,机器一天可以下 50 次。同一支策略,交易频率翻十倍,手续费也翻十倍——而你的回测往往没把它算进去。

先讲结论
费率不是常数,是门槛。你的策略每一次交易的平均获利(含亏损那些单),如果没有明显高于「来回一趟手续费」,那信号发再多次,最后都是负的。这篇教你把费率、平均获利、频率放进同一条式子。

手动交易吃不到这个坑,机器会

手动 daytrader 一天做 3~5 次已经算勤了。以现货 0.1% taker 费率算,一周不到 2% 花在手续费,还在多数散户的心理阈值内。

机器不同。TradingView alert 触发一次就送出一笔 webhook,一天 30~50 次很常见。同样 0.1% taker,一周 21%~35% 直接被费率吃掉。这不是「多一点成本」,是把整条回测曲线压下去。

3~5 次 / 日
手动 daytrader 的常见频率
30~50 次 / 日
自动策略没设冷却的常见频率
×10 倍
同一支策略在手续费上的差距

你付的手续费不是单一费率,至少有三层

先确认你正在看的是哪一层。混用不同层的数字算出来的结论不会对——这是最常见的计算错误。

现货 spot永续 perpetual
常见 base 费率 (VIP 0)taker 约 0.08~0.10%taker 约 0.04~0.06%
maker 折扣通常一半以下通常一半以下、偶尔负值
有无资金费率每 1–8 小时,依合约而定
VIP 阶梯依据30 天成交量30 天成交量

上表三层每一层的实际数字,一律以你当下交易所的官方费率页为准——各交易所的细部条件可以看 加密交易所深度对比。永续合约还要多算一层 funding,短线来回几分钟的策略通常收不到,长期持仓才需要算进去,这篇先搁着。

这是快照,不是永久保证
上表的区间是我截至 2026 年 8 月初查各家公开费率页的观察。VIP 阶梯、挂牌活动、fee promotion 都会让实际费率不一样。动手前建议自己再去查一次——不是所有交易所都把费率放在同一个页面。

用一条公式回答「每天能发几次」

先把记号讲清楚。设 e 是策略每一笔单的平均获利(含负的那些,用「占仓位百分比」表示),f 是你付的单向费率。一笔单开仓一次、平仓一次,缴两次费:

text
一笔单净获利 = e - 2f
        每日净获利   = N × (e - 2f)     ← N 是一天的信号数

这条式子有两层结论。第一层:如果 e ≤ 2f,那 N 再大也没用。你的策略平均获利已经盖不过来回费率,信号发越多,亏越多。

第二层:如果 e 刚好大于 2f 一点点,滑价会把你剩下那点 edge 吃光。回测用的成交价通常是收盘价,实际市场的 taker 成交价常常比它差一个 spread——这也是隐形的手续费,它跟 f 一样是每一笔都会付。

e > 2f
策略有 edge 的最低门槛
e > 2f + spread
考虑滑价后的实际门槛
e ≈ 4f
留出一半 margin 的合理起点

两个实际例子

下面表格的 e(平均获利)都当作是用户自己回测出来的输入值。这里没有替任何一支策略背书,只是示范公式怎么套。

策略回测数字e (单笔平均)f (单向费率)2f 门槛结论
EMA 交叉,胜率 45%、R/R 1.40.18%0.05% 永续 taker0.10%净 e = 0.08%,勉强有 edge
同上策略,换到 0.10% 现货 taker0.18%0.10% 现货 taker0.20%净 e = -0.02%,不能开
RSI 反转,胜率 55%、R/R 0.90.08%0.05% 永续 taker0.10%净 e = -0.02%,不能开
同上策略,改用 maker 挂单0.08%0.02% 永续 maker0.04%净 e = 0.04%,需要能真的挂到

示例计算。e 是用户自己回测的结果,f 是 2026 年 8 月常见费率区间的举例。

第一列和第二列是同一支策略,只是把它从永续搬到现货——费率翻倍就从 edge 变成负值。这说明费率不是可以事后调整的参数,它决定了策略能不能上线。第三列和第四列则说明 maker 挂单的差别:能不能真的挂到,是另一个独立问题。

回测数字要标明是什么期间
上表的 e 都是举例。真的要拿来决策的话,回测期间、标的、参数、slippage 假设都要一起附出——这是这个站对绩效数字的纪律。详见 仓位大小怎么配置 里「回测数字免责」一节。

降频的三个做法

如果算出来 e 太接近 2f,你有三个方向可以走。这里按实现难度排序,由易到难。

  • 加信号强度过滤。只有当指标同时满足 A、B、C 三个条件才发信号。这会砍掉一半以上的信号,留下来的 e 通常会拉高一到两倍——因为过滤掉的都是弱信号。
  • 加冷却期。同一个方向刚平仓的 X 分钟内不再进场。这条挡掉的是「同一根 K 棒或连续两三根都在来回开平仓」这种喂手续费的行为,实现简单、效果直接。
  • 换成 maker 挂单。把 market order 改成 limit order 挂在 spread 之外,成交才收 maker 费率。缺点是挂不到就没单,跳空行情时可能完全错过——策略逻辑要能接受这种漏单。

诚实的一段:这条公式没算的东西

这条公式只算了显性的手续费,还有几笔隐形成本没算进去。要打真金白银之前,你要知道这些也是每一笔都会付的。

Slippage (滑价):市价单成交价和你按下按钮当下看到的价格会不一样,尤其是流动性差的小币。这差额实质上和手续费一样,每笔都要付。

Funding rate (资金费率):永续合约多为每 8 小时结算一次(部分交易所已改成 1 或 4 小时,依合约而定),短线来回不会碰到,但你的策略如果会 hold 到跨结算时间,这笔钱也要算。详见 永续资金费率套利指南

API 节流与延迟:API(也就是交易所给程序调用用的接口)会限制单位时间的下单次数。信号发太密可能被拒单、或延迟成交到下一根 K 棒——这时候你不但没赚到信号预期的获利,还可能反向套牢。这一层跟策略设计有关,比较细的讨论在 自动化策略的备援设计

这是我推导出来的,不是官方文件写的
这条公式和上面两个结论,是从「一笔单来回付两次费」这个事实推导出来的,不是任何一间交易所或 TradingView 官方文件里的原文。它是一个工具,不是保证——你自己的策略、标的、时段可能有这里没考虑到的变数。

常见问题

我用 rebate(回馈)交易,这条公式还适用吗?
f 换成你实付的净费率就行。rebate 也就是有些单成交后会拿回一部分手续费——但通常有活动条件,过期或未达门槛就会消失,算 breakeven 时留一点 margin。
回测工具算出来的年化收益率有含手续费吗?
不一定。TradingView 的 strategy tester 可以在 Properties 面板里设 CommissionSlippage,但没设就是 0——回测绿不代表实盘绿。
换到费率低的交易所会不会就 profitable?
公式上会,实际上不一定。低费率的交易所往往流动性也较差,滑价会补回一部分。真的要换之前,先小额实跑几周,比对「填单价 vs 回测价」的差。
maker 挂单的 e 要怎么估?
回测预设每一笔都成交在收盘价,这个成交率在实盘 maker 挂单通常拿不到。实际上准备两份:一份全 taker,一份 maker 只成交 60~70%——两份都 profitable 才安全。

Get started

想把今天学到的东西自动化跑起来?

TVSBot 把你的 Pine Script 信号接到交易所——用你自己的 API key(也就是交易所要求你先开的一组读写密钥),风控自己设。

免费开始使用