信号太频繁会被手续费吃光:算出策略每天真正能发几次
你把交易信号的回测跑出来一片绿——年化 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% 直接被费率吃掉。这不是「多一点成本」,是把整条回测曲线压下去。
你付的手续费不是单一费率,至少有三层
先确认你正在看的是哪一层。混用不同层的数字算出来的结论不会对——这是最常见的计算错误。
| 现货 spot | 永续 perpetual | ||
|---|---|---|---|
| 常见 base 费率 (VIP 0) | taker 约 0.08~0.10% | taker 约 0.04~0.06% | |
| maker 折扣 | 通常一半以下 | 通常一半以下、偶尔负值 | |
| 有无资金费率 | 无 | 每 1–8 小时,依合约而定 | |
| VIP 阶梯依据 | 30 天成交量 | 30 天成交量 |
上表三层每一层的实际数字,一律以你当下交易所的官方费率页为准——各交易所的细部条件可以看 加密交易所深度对比。永续合约还要多算一层 funding,短线来回几分钟的策略通常收不到,长期持仓才需要算进去,这篇先搁着。
用一条公式回答「每天能发几次」
先把记号讲清楚。设 e 是策略每一笔单的平均获利(含负的那些,用「占仓位百分比」表示),f 是你付的单向费率。一笔单开仓一次、平仓一次,缴两次费:
一笔单净获利 = e - 2f
每日净获利 = N × (e - 2f) ← N 是一天的信号数这条式子有两层结论。第一层:如果 e ≤ 2f,那 N 再大也没用。你的策略平均获利已经盖不过来回费率,信号发越多,亏越多。
第二层:如果 e 刚好大于 2f 一点点,滑价会把你剩下那点 edge 吃光。回测用的成交价通常是收盘价,实际市场的 taker 成交价常常比它差一个 spread——这也是隐形的手续费,它跟 f 一样是每一笔都会付。
两个实际例子
下面表格的 e(平均获利)都当作是用户自己回测出来的输入值。这里没有替任何一支策略背书,只是示范公式怎么套。
| 策略回测数字 | e (单笔平均) | f (单向费率) | 2f 门槛 | 结论 |
|---|---|---|---|---|
| EMA 交叉,胜率 45%、R/R 1.4 | 0.18% | 0.05% 永续 taker | 0.10% | 净 e = 0.08%,勉强有 edge |
| 同上策略,换到 0.10% 现货 taker | 0.18% | 0.10% 现货 taker | 0.20% | 净 e = -0.02%,不能开 |
| RSI 反转,胜率 55%、R/R 0.9 | 0.08% | 0.05% 永续 taker | 0.10% | 净 e = -0.02%,不能开 |
| 同上策略,改用 maker 挂单 | 0.08% | 0.02% 永续 maker | 0.04% | 净 e = 0.04%,需要能真的挂到 |
示例计算。e 是用户自己回测的结果,f 是 2026 年 8 月常见费率区间的举例。
第一列和第二列是同一支策略,只是把它从永续搬到现货——费率翻倍就从 edge 变成负值。这说明费率不是可以事后调整的参数,它决定了策略能不能上线。第三列和第四列则说明 maker 挂单的差别:能不能真的挂到,是另一个独立问题。
降频的三个做法
如果算出来 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 棒——这时候你不但没赚到信号预期的获利,还可能反向套牢。这一层跟策略设计有关,比较细的讨论在 自动化策略的备援设计。
常见问题
我用 rebate(回馈)交易,这条公式还适用吗?
f 换成你实付的净费率就行。rebate 也就是有些单成交后会拿回一部分手续费——但通常有活动条件,过期或未达门槛就会消失,算 breakeven 时留一点 margin。回测工具算出来的年化收益率有含手续费吗?
Commission 与 Slippage,但没设就是 0——回测绿不代表实盘绿。换到费率低的交易所会不会就 profitable?
maker 挂单的 e 要怎么估?
Get started
TVSBot 把你的 Pine Script 信号接到交易所——用你自己的 API key(也就是交易所要求你先开的一组读写密钥),风控自己设。
免费开始使用