一笔交易你看到的价格,不是最终价格。中间隔着手续费、价差、滑点,合约还要加资金费。本文按急救教程写,因为题目问的是"怎么算",直接教你算,不绕概念。
先给结论:总成本 = 手续费 + 价差成本 + 滑点 + 资金费(合约才有)。现货没有资金费。这四块里,手续费和资金费是明扣,价差和滑点是暗扣。暗扣最容易被忽略。
最小可行步骤:下单前花30秒估算成本
步骤1:打开订单簿,找到买一价和卖一价
打开币安App,点底部"交易",在顶部搜索栏输入"BTCUSDT",点搜索结果进入交易页。页面中间区域是订单簿,绿色是买单,红色是卖单。最上面第一行就是买一价和卖一价。
完成标准:你看到两个数字,卖一价永远比买一价高。比如买一价60000,卖一价60010。
情况A:你用OKX App,同样点底部"交易",搜索"BTCUSDT"进入。情况B:你用小交易所或DEX,订单簿格式可能不同,但买一卖一一定并排显示。
步骤2:算价差百分比
价差成本是买卖价差。现货买入按卖一价成交,卖出按买一价成交。来回一次你就吃掉一个价差。
价差% = (卖一价 - 买一价) ÷ 买一价 × 100%
拿上面的例子:(60010 - 60000) ÷ 60000 × 100% = 0.0167%。
完成标准:你得出的百分比小于0.1%,说明这个交易对流动性还行;低于0.05%算好。大于0.5%要小心,小币种常见。
步骤3:看你的手续费档位
现货和合约手续费不一样,必须分开看。
情况A:现货交易。在币安App点左上角头像,滑到"费率中心",点进去选"现货费率"。
情况B:永续合约交易。在合约交易页点右上角"…",找到"合约信息"或"费率说明",会直接显示Maker/Taker费率。
完成标准:你记录下两个费率:Maker(挂单)和Taker(吃单)。普通用户现货Taker常见0.1%,合约Taker常见0.05%,但每个平台和等级不同,以App页面显示为准。
如果你还没有账号,看费率前先注册,能拿到基础返佣。不过费率等级主要看你的资产和交易量,返佣只是小头。
步骤4:判断你会不会吃滑点
市价单一定会吃滑点,限价单不会主动吃,但可能不成交。
滑点 = 实际成交均价 - 下单时看到的卖一价(买入方向)。计算滑点% = 滑点 ÷ 卖一价 × 100%。
完成标准:你心里有个数:大币种市价单滑点通常小于0.05%;小币种可能超过1%。如果订单簿深度很薄,不要用市价单。
步骤5:合约加资金费
如果你是合约持仓,必须看资金费。
在永续合约交易页面找到"资金费率"和"倒计时"。它显示下一次结算时间和当前费率。
资金费用 = 仓位名义价值 × 资金费率。
完成标准:你知道下一次扣款时间,以及你是付还是收。资金费率是正数,多头付给空头;负数,空头付给多头。
以上五步做完,你就能估算一笔交易成本。下面把每一步容易踩的坑展开。
每一步的坑与详细计算
手续费:明扣里最直接的一块
现货手续费=成交金额×费率。买入时多付,卖出时少得。
举个例子:你在币安用市价单买1000 USDT的BTC,Taker费率0.1%。手续费就是1000 × 0.1% = 1 USDT。实际到账BTC价值999 USDT。
卖出时同样扣一次。一买一卖,总共2 USDT。
合约手续费=名义价值×费率。开仓和平仓各收一次。
例如你用10倍杠杆开1000 USDT的BTC合约,名义价值10000 USDT。合约Taker费率0.05%,开仓手续费=10000×0.05%=5 USDT。平仓再收5 USDT。总共10 USDT。
手续费可以在App的"费率中心"看到,也可以在成交记录里看到每笔扣了多少。
完成标准:成交后打开"交易历史",每一条都有"手续费"字段,数字和你的计算一致。
常见失败原因:很多人以为现货手续费是0.1%,实际用BNB抵扣后是0.075%。但如果你没持有BNB,就按全额0.1%扣。钱不多,但高频交易会累积。更坑的是,有些平台等级会降,比如30天交易量下降后,你的费率从Maker 0.02%回到0.1%。成本直接翻5倍。
价差:暗扣里最稳定的磨损
价差不是平台收你的,而是市场买卖方的价格差。你买入永远是卖一价,卖出永远是买一价。
价差成本 = 价差 ÷ 买入价 × 100%。上面已经算过。
大币种像BTC、ETH,价差通常只有0.01%-0.05%。小币种价差能到2%甚至5%。如果你买10万U的小币种,价差5%,光价差就亏5000 U。
风险提醒:价差大意味着流动性差。你买入后想卖,可能连本都回不来。不要只看涨幅,先看订单簿厚度。上架不久的新币,买盘卖盘都很薄,价差大而且滑点更狠。这种情况不要用大资金市价单。
滑点:市价单真正的隐形杀手
滑点指的是实际成交均价和你下单时看到的价格之间的差。市价单会吃穿订单簿多层,价格越来越差。
买入滑点% = (实际成交均价 - 卖一价) ÷ 卖一价 × 100%。
假设你看到卖一价是60010,下市价单买1 BTC。结果订单簿第二层卖二价60050,第三层卖三价60100。你的成交均价可能是60080。滑点=(60080-60010)/60010×100%=0.117%。
这还不算手续费和价差。
如果你用限价单,成交价格不会超过你设定的价格,但可能不成交。想省滑点,用限价单;想快速成交,就得接受滑点。
情况A:交易BTC/ETH等大币种。市价单滑点通常低于0.05%。
情况B:交易小币种或刚上的币。市价单滑点可能超过1%,极端行情超过5%。
完成标准:下市价单后,打开"成交回报"或"成交历史",看实际成交均价。把实际均价和下单前看到的卖一价做对比,算出滑点。如果超过你的预期,以后别在这个深度用市价单。
资金费:合约过夜最容易被忽略的扣款
资金费是永续合约特有的。它每8小时结算一次,目的是让合约价格和现货价格靠近。
资金费不是平台收的,而是多头和空头之间互相付。资金费率为正,多头付给空头;为负,空头付给多头。
资金费用 = 仓位名义价值 × 资金费率。
举例:你持有1 BTC的永续合约,名义价值60000 USDT。资金费率0.01%,每8小时扣60000×0.01%=6 USDT。一天三笔就是18 USDT。如果持仓3天,成本54 USDT。
资金费率不是固定值。平时多在0.01%附近,极端行情可能到0.1%、0.3%甚至更高。0.1%意味着同样1 BTC仓位,一次结算扣60000×0.1%=60 USDT。一天180 USDT,3天540 USDT。
风险提醒:资金费会在结算时直接从你的账户扣走。如果你的合约保证金接近强平价,资金费扣完可能直接触发强平。持仓过夜前,必须看"倒计时"和"资金费率"。如果是正数且你持多,倒计时结束前要么平仓,要么确保账户有足够的可用余额。
完成标准:每次结算后,打开"资金流水"或"资金费用历史",能看到转账记录。付出去是负数,收进来是正数。和你计算的金额一致,说明你看懂了。
失败排查:成本比预期高,按这三处查
第一查:你是不是用了市价单
看成交历史里的实际成交均价,和你下单前截图的价格比。如果差很多,就是滑点。以后改用限价单,或者拆小额分批下。
第二查:你的手续费档位是不是降了
进费率中心,看当前等级。30天交易量不足、平台币持仓不足,都可能降级。降级后Taker费率翻倍甚至更多。解决办法:少交易,或者买点平台币。
第三查:你是不是在资金费结算前几分钟开的仓
资金费每8小时结算一次。如果你在结算前1分钟开仓,1分钟后就被扣一笔资金费。成本凭空多出一块。开仓前先看倒计时,快结算时等几分钟再开。
验证收尾:用对账单核对你算的成本
下完单,别急着关页面。做最后一步:
- 打开"交易历史",找到这笔订单。看"手续费"和"成交均价"。
- 如果是合约,打开"资金流水",看有没有"资金费"扣款。
- 把这三个数加起来:手续费 + (实际成交均价 - 下单前卖一价)×数量 + 资金费。现货没有资金费,就只加前两个。
完成标准:你算出的总成本,和实际账户余额减少的金额对得上。误差通常只在小数点后几位,因为价差成本已经包含在成交价里,不用再单独加一次。
注意:如果你用限价单买入,且成交价就是限价,那滑点为零。价差成本只在卖出时体现。别把价差和滑点重复计算。
两个最常被追问的问题
问:我挂限价单,手续费按Maker还是Taker?
答:看你吃单还是挂单。你挂单后如果一直没成交,订单在订单簿上等待,成交时你算Maker。如果你挂一个会立即成交的价格,比如买入限价高于卖一价,系统会按Taker吃单处理。新手记住:真正挂等成交是Maker;立即成交是Taker。
问:资金费率是负的,我持空是不是一定赚钱?
答:不一定。资金费率负说明空头数量多,空头付给多头。你持空确实每8小时收钱,但如果行情涨,你仓位亏损可能远大于资金费收入。先把方向做对,再考虑资金费补贴。


