
Crypto Trading Bot Fees and Slippage: How to Estimate Real Execution Costs
Table of contents
- Build a cost model around traded notional
- Separate fees from spread and slippage
- Use order type as a cost-and-completion choice
- Add perpetual funding as a holding-period cost
- Worked hypothetical: compare the cost range, not a profit promise
- Make the worksheet useful in live review
Automated strategies should be judged on net execution cost, not headline backtest return. For crypto trading bot fees and slippage, the practical answer is to model every completed order leg, use a range for uncertain fills, and treat perpetual funding separately from trading fees. A simulated result does not ensure live execution: market depth, volatility, latency, partial fills, and funding can differ after a bot goes live.
Cornix Demo Accounts provide a simulated environment, and Cornix says exchange fees are included in Demo Backtesting PnL for most supported setups; use that as a starting point, then stress-test the assumptions below before deploying capital. Cornix Demo Accounts guide
Build a cost model around traded notional

Start with the amount actually bought or sold, not the account balance or margin posted. A $2,000 perpetual position has $2,000 of traded notional whether the trader used $2,000 or $200 of collateral. Leverage can magnify the effect of the same dollar cost on account equity; it does not make the exchange fee disappear.
For one round trip, use:
Total cost = exchange fees + spread cost + slippage cost + funding + allocated subscription cost + other workflow costs
Model the first five in dollars, then divide by round-trip notional to express the result as a percentage or basis points. “Other workflow costs” can include conversion, withdrawal, borrowing, or signal-provider charges when they truly apply. Keep them separate rather than hiding them in slippage.
The reusable worksheet needs these inputs:
| Input | What to enter |
|---|---|
| Entry and exit notional | Expected filled value for each leg |
| Fee rate by leg | Your account’s maker or taker rate |
| Spread assumption | Half-spread per aggressive fill, or measured fill gap |
| Slippage range | Calm, typical, and stressed estimates |
| Funding events | Expected holds through settlement times |
| Monthly bot cost | Subscription divided by expected monthly round trips |
Check your own exchange schedule immediately before testing. Fee tiers can depend on rolling volume, and an order can be partly taker and partly maker. Coinbase Advanced, for example, explains that immediately filled portions pay taker fees while any remainder resting on the book can pay maker fees. Coinbase Advanced fee rules
Separate fees from spread and slippage
Exchange fees are the explicit charge attached to fills. For a round trip with the same entry and exit notional, a simple estimate is:
Fees = entry notional × entry fee rate + exit notional × exit fee rate
Maker and taker are execution outcomes, not labels a bot can safely assume. A limit order that crosses available quotes can fill immediately as taker; a post-only instruction is designed to avoid that outcome, but it may be rejected or remain unfilled. Coinbase’s order documentation also notes that market orders can fill at several prices and do not guarantee a fill at the displayed bid or ask. Coinbase Advanced order types
Spread is the gap between the best bid and best ask. A strategy that buys at the ask and sells at the bid effectively gives up the spread even if its trade ticket presents fees separately. For a quick model, use half the observed spread for each marketable leg; for two marketable legs, the round-trip cost is approximately one full spread, before additional price impact.
Slippage is the difference between the price your model expected and the average price actually filled. It can result from limited depth, a fast-moving order book, delays between signal and order arrival, or an order size that consumes several price levels. Do not use a single optimistic number across every pair and regime. Measure historical fills where available, then run at least three cases: calm, typical, and stressed.
Use order type as a cost-and-completion choice
A maker-oriented entry may lower explicit fees and avoid crossing the spread, but it introduces a completion risk: price can move away, the order can fill only partly, or a protective exit can arrive before the entry is complete. A marketable or stop-triggered exit prioritizes getting out, but should normally carry taker-fee and slippage assumptions.
That tradeoff matters most for fast signal, DCA, and grid workflows because one strategy can create many order legs. Cornix’s bot documentation covers Signals, DCA, Grid, and TradingView bots; map the intended order behavior of the chosen bot to the fee and fill assumptions in the worksheet rather than assigning one rate to every order. Cornix trading bot guides
For strategies triggered by TradingView alerts, test the practical path from alert to exchange order as well as the entry rule itself. TradingView automation guide A backtest bar can show a tradable price that a live order could not reach at the required size.
Add perpetual funding as a holding-period cost
Spot workflows generally do not have perpetual funding. Perpetual positions can pay or receive funding at scheduled settlement times, depending on the contract’s funding rate and the side held. Funding is therefore not a flat “futures fee”; it is a position-holding variable.
A useful estimate is:
Funding cost = position value at settlement × funding rate × number of expected settlements
Use the sign that matches your position and the exchange’s convention. Bybit describes funding fee as position value multiplied by the funding rate, with position value based on contract quantity and mark price. Bybit funding-fee calculation For planning, model a range of plausible positive and negative rates, then count only the settlement events a typical hold would cross. A bot that usually exits before the next funding time has a different exposure from one that averages down and holds for days.
Worked hypothetical: compare the cost range, not a profit promise
Assume a spot bot completes 40 round trips per month with $1,000 entry notional and $1,000 exit notional. Suppose each leg is modeled as 8 basis points of exchange fees, 4 basis points of spread cost, and slippage of 2, 6, or 18 basis points per leg.
- Explicit fees: $1,000 × 0.08% × 2 = $1.60 per round trip.
- Spread: $1,000 × 0.04% × 2 = $0.80 per round trip.
- Slippage: $0.40, $1.20, or $3.60 per round trip.
- Execution cost range: $2.80 to $6.00 per round trip, before any subscription allocation.
If a monthly automation subscription cost were hypothetically $40, allocating it across 40 round trips adds $1.00 per round trip. That produces an all-in modeled range of $3.80 to $7.00. This is an illustration, not a forecast: actual rates, fills, trade frequency, and subscription terms vary. Review Cornix’s current subscription documentation separately rather than hard-coding a plan price into a backtest. Cornix subscription plans
For a perpetual version, add funding only when the modeled holding period crosses a funding event. For example, a $1,000 position facing a 0.01% funding payment adds $0.10 for that settlement; multiple events and changing position size must be counted individually.
Make the worksheet useful in live review
After every meaningful sample of live trades, compare three numbers: expected fee, expected fill price, and actual fill price. Update assumptions by pair, order type, time of day, and volatility regime. If the strategy only works under the calm case, it has not yet passed a realistic cost test.
The selection principle is simple: choose the automation workflow whose edge remains after the stressed execution case, not just the default backtest case. Build the worksheet first, then use Cornix’s getting-started resources to configure a demo bot and record the assumptions beside each test. Configure a demo bot and document execution-cost assumptions before live deployment.
Frequently Asked Questions
Do limit orders eliminate crypto bot slippage?
No. A resting limit order can control the worst acceptable price, but it may not fill, may fill only partially, or may become taker liquidity if it crosses the book. Model lower price impact alongside missed-fill risk rather than assuming a zero-cost execution.
Should subscription cost be included in every bot backtest?
Include it when you are evaluating the economics of operating the workflow, not just its market edge. Allocate the monthly cost across expected completed round trips, then test low-activity and high-activity cases because the per-trade allocation changes.
How often should a perpetual bot include funding?
Count each funding settlement the modeled position is likely to remain open for, using the exchange’s current convention and a range of funding-rate assumptions. Do not apply funding to positions that would normally close before settlement.
What is the fastest way to improve a cost model?
Replace generic slippage with actual bot fill records. Compare intended price, average fill price, fee paid, order type, and position size across quiet and volatile periods; then update the worksheet with ranges, not one average.
