> ## Content Index
> Fetch the complete content index at: https://blog.edgepilotai.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# 回测明明赚钱，为什么把所有交易成本算进去，利润就快没了？
- URL: https://blog.edgepilotai.io/zh/backtest-profit-after-all-trading-costs/
- Published: 2026-09-08T03:36:31.000Z
- Updated: 2026-10-15T06:37:12.000Z
- Description: 每笔毛赚 12 个基点，扣完手续费、点差和滑点只剩 1 个。先把这笔账算清，再检查成本有没有漏算或重复扣除。
- Author: EdgePilot Team
- Tags: Trading Costs, #zh-cn

回测里每笔赚一点，手续费、点差和滑点一补齐，利润却快没了。常见原因是单笔赚得太薄，每次买卖又要付一遍成本。但也别急着判策略没用：漏算、重复扣费和单位填错，都会改变结果。先算清一笔交易，再顺着账单找出最该检查的地方。

只看最后的收益率，分不清是策略赚得少，还是成本算错了。要回答这个问题，得把“扣了什么、扣了多少、在哪一步扣的”放在一起看。

## 先算一笔：赚了 12，为什么只剩 1？

假设策略一次完整买卖，扣成本前赚 12 个基点。1 个基点就是 0.01%，所以这里的毛收益是 0.12%。进出场手续费合计 6 个基点，点差和滑点再花掉 5 个，最后只剩 1 个基点，也就是 0.01%。

下面各项都按同一笔交易的名义本金计算。这是一组教学假设，不是某个交易所的标准收费。

__一次完整买卖的成本账__
| 项目       | 变化      | 还剩多少   |
| -------- | ------- | ------ |
| 扣成本前的收益  | +12 个基点 | 12 个基点 |
| 进出场手续费合计 | −6 个基点  | 6 个基点  |
| 点差和滑点    | −5 个基点  | 1 个基点  |

忙活一圈赚了 12，账单拿走 11。剩下这 1 个基点，成交价格再差一点就可能没了。

![手续费、点差和滑点逐层吃掉回测毛优势](https://storage.ghost.io/c/6d/bb/6dbbb7cc-1f93-4cd3-8d75-e3c2cfce055f/content/images/2026/09/01-cost-stack-emotion-turn-2.png)

毛优势不等于到手利润：成本会按成交次数反复发生。

这笔账解释了利润为什么会变薄。接下来要分清：哪些是交易确实要付的代价，哪些是回测设置出了问题。

## 利润被哪项成本吃掉，就从哪里查起

先把手续费、点差、滑点和资金费用分开。涉及借币、借券或融资时，也把对应费用列出来。不要只留一个“总成本”，否则知道钱少了，还是不知道该改哪里。

| 看到的现象            | 优先检查                       |
| ---------------- | -------------------------- |
| 手续费占掉大部分利润       | 交易次数、进出场双边费率、每笔平均毛利润       |
| 点差或滑点影响最大        | 买卖价差、订单类型、下单规模和成交假设        |
| 资金费用明显拖累结果       | 合约的收费方向、费率及持仓时间            |
| 每项费用都不大，加起来却几乎不剩 | 单笔毛利润是否太薄，以及交易频率是否值得       |
| 成本大得不合常理         | 是否重复扣费、百分比与基点是否混用、计费本金是否正确 |

表里的对应关系是排查方向，不是看到某个现象就能确定原因。比如手续费高，既可能是交易太频繁，也可能只是费率填错了。

同一项成本只算一次。已经反映在成交价格或净收益里的费用，不要再扣。例如，滑点设置已经包含点差，再单独加上同一段点差，就算重了。[TradingView 的成交模拟说明](https://www.tradingview.com/support/solutions/43000786181-broker-emulator/?ref=blog.edgepilotai.io)解释了手续费与滑点设置，也提到可用滑点设置模拟点差。

### 流动性好的市场，能把滑点设为零吗？

低频、小规模、使用限价单的策略，滑点影响确实可能较小。但“可能小”跟“就是零”不是一回事。先检查实际成交或盘口数据，也要检查回测是不是把碰到限价的订单都当成了成交。

想拆开看，可以继续读[手续费如何吃掉利润](https://blog.edgepilotai.io/zh/trading-fees-eat-profit/)和[滑点如何改变回测结果](https://blog.edgepilotai.io/zh/slippage-kills-backtest-profit/)，再把它们放回同一笔账。

### 成本到底吃掉了多少优势？

核对完计算方式，再看每笔平均成本占每笔平均毛利润的多少。两边要来自同一组交易，使用相同币种和成本定义。

**成本占毛利润的比例＝每笔平均总成本 ÷ 每笔平均毛利润 × 100%。**

前面的例子就是 11 ÷ 12 × 100% ≈ 91.7%。也就是说，成本拿走了约 91.7% 的毛利润，只留下约 8.3%。这里的 8.3% 是毛利润剩余的比例，不是账户收益率。

这个比例以平均毛利润大于零为前提。毛利润本来就是零或负数，就先检查策略本身。也别把某个固定百分比当成“合格线”：还有多少余量，得结合更差的成交条件和不同时间段的结果来看。

### 下一步，做一次只改成本的对照

固定代码、参数和数据版本，保留每笔交易明细。先按当前假设跑一遍，再只改一项成本，比较结果差了多少。这样才能分清变化来自成本，还是来自别的设置。

如果一个合理的小变化就让盈利变成亏损，说明剩下的空间很薄。降低费用假设能让曲线好看，但只有实际能拿到那样的费率和成交价格，这个修改才有意义。

一轮对照能回答当前版本。参数、标的或周期一换，账又得重算。麻烦的就不再是除法，而是记住每一版到底用了什么条件。

## 把这套排查交给 EdgePilot Research

传统做法是翻回测报告、找成交记录，再对着 Excel 和截图核对。文件一多，很容易把这版的收益和上版的费率放在一起。

EdgePilot Research 把策略研究、历史回测和结果比较放进同一个工作流程。你可以先让 AI 梳理排查方向，再提供报告核对具体数字；继续测试时，保留策略版本和成本假设，方便比较每次改动的影响。

[安装并启用 EdgePilot Research](https://www.edgepilotai.io/zh/research/?utm%5Fsource=edgepilot%5Fblog&utm%5Fmedium=article%5Fcta&utm%5Fcampaign=backtest-profit-after-all-trading-costs&utm%5Fcontent=install%5Fguide) 后，直接在 AI 对话里问：

> 用 EdgePilot 帮我看看，为什么这个回测把所有交易成本算进去后，利润就快没了？先说重点，告诉我最该查什么。

![EdgePilot 截图](https://storage.ghost.io/c/6d/bb/6dbbb7cc-1f93-4cd3-8d75-e3c2cfce055f/content/images/2026/09/costs-research-conversation-zh-v2.png)

EdgePilot 截图

EdgePilot 先指出了三个排查重点：每单位成交额能赚多少、哪项成本占得最多，以及成本再增加多少就会把利润吃完。同时检查费率、计费次数和单位，分清是策略赚得太薄，还是设置算错了。

截图中的“净利润 2 万、成本 8 万”是算账示例：假设毛利润和交易不变，当前总成本大于零，总成本再增加 25%，就会吃掉剩下的 2 万利润。这个数字不是通用合格线，也不是你的回测结果。另外，截图中的“总成交金额”要计入进出场成交额，跟前面按一次完整买卖的本金计算基点，分母不同，不能直接混比。

下一步，把毛利润、净利润、总成交额、交易次数和各项费用发进同一段对话，就能从这些排查方向继续核对具体数字。市场冲击如果已包含在滑点里，也记得只算一次。

| 你提供什么          | EdgePilot 帮你检查什么 | 接下来怎么做         |
| -------------- | ---------------- | -------------- |
| 毛利润、净利润和交易次数   | 每笔成本占掉多少利润       | 判断剩余空间是否值得继续测试 |
| 费率、成交假设和费用明细   | 漏算、重复扣费与单位错误     | 先修正影响结果的假设     |
| 固定的策略版本和可比较的回测 | 不同成本条件下的结果变化     | 确定下一轮对照怎么跑     |

### 选定策略后，沿着详情继续追问

如果你检查的是策略目录里的一个策略，可以先看它的说明、测试区间、收益和回撤。下方是 EdgePilot Live 的策略详情面板，展示的是发布摘要。把摘要和详细回测报告放在一起，才能进一步核对收益里已经算进了哪些成本。

![EdgePilot 截图](https://storage.ghost.io/c/6d/bb/6dbbb7cc-1f93-4cd3-8d75-e3c2cfce055f/content/images/2026/09/backtest-profit-after-all-trading-costs-4-1.png)

EdgePilot 截图

看到盈利因子时，也别把它当成到手利润：它是一个比值。你要继续确认的是，这次测试用了什么费用假设，以及这些条件是否适合你准备采用的交易方式。

### 把解释变成下一次能执行的检查

拿到明细后，先找出影响最大的成本，再核对有没有漏算或算重。最后，用同一套成本定义比较不同参数和时间段。这样每一轮都有明确的问题，而不是盯着曲线反复调到好看为止。

[EdgePilot Research](https://www.edgepilotai.io/zh/research/?utm%5Fsource=edgepilot%5Fblog&utm%5Fmedium=article%5Fcta&utm%5Fcampaign=backtest-profit-after-all-trading-costs&utm%5Fcontent=research%5Fentry) 适合完成这段历史研究。想继续检查执行表现时，还可以通过 EdgePilot Live 进入本地模拟盘、交易所模拟盘和实盘工作流程。

手上正好有一套回测？把当前报告和成本假设留下来，[用 EdgePilot Research 试着核对一次](https://www.edgepilotai.io/zh/research/?utm%5Fsource=edgepilot%5Fblog&utm%5Fmedium=article%5Fcta&utm%5Fcampaign=backtest-profit-after-all-trading-costs&utm%5Fcontent=try%5Ftool)。就从这句话开始：这笔交易忙完一圈，到底还剩多少？

成本一扣就没什么余地，可以继续查[是不是反复调参才挑出这一组赢家](https://blog.edgepilotai.io/zh/many-parameters-one-profitable-backtest/)。如果利润只在换平台后缩水，再看[同一套网格的平台规则和成交条件](https://blog.edgepilotai.io/zh/same-grid-strategy-four-exchanges-zh/)。

## 参考资料

- [TradingView：成交模拟与成本设置](https://www.tradingview.com/support/solutions/43000786181-broker-emulator/?ref=blog.edgepilotai.io)
- [美国商品期货交易委员会：网上交易系统与假设业绩提示](https://www.cftc.gov/LearnAndProtect/AdvisoriesAndArticles/fraudadv%5Ftradingsystem.html?ref=blog.edgepilotai.io)

*本文用于交易研究与软件测试教育，不构成投资建议。示例数字仅用于解释计算方法，历史结果不代表未来表现。*