Why “Hidden Costs” Matter More in Short-Term Trading
In short-term trading, your average profit target is often small relative to the price movement you’re trying to capture. That means costs you barely notice on a long-term chart can dominate your results over dozens or hundreds of trades. The key is to treat costs as math, not as “friction.”
Total trading cost per round trip (enter + exit) can be broken into four buckets:
- Spread cost: paying the bid/ask spread when you cross it.
- Commissions/fees: broker commissions plus exchange/regulatory fees (and sometimes rebates).
- Slippage: getting a worse fill than you expected (or modeled) due to market movement and order book dynamics.
- Opportunity cost from missed fills: not getting filled (or only partially filled) and missing the move or getting a worse re-entry later.
Think of these as “edge eaters.” Your strategy’s edge must be large enough to pay them and still leave profit.
Cost Component 1: Spread (What You Pay to Cross)
Spread cost is most visible when you enter with a buy at the ask and later exit with a sell at the bid (or vice versa). Even if price doesn’t move, you can lose roughly the spread.
Simple example (spread only)
Stock XYZ is quoted 10.00 x 10.02 (bid x ask). Spread = $0.02.
Continue in our app.
You can listen to the audiobook with the screen off, receive a free certificate for this course, and also have access to 5,000 other free online courses.
Or continue reading below...Download the app
- You buy at
$10.02. - Immediately sell at
$10.00. - Loss =
$0.02/share(ignoring fees and slippage).
If you trade 500 shares, that’s $10 per round trip just from spread: 0.02 * 500 = $10.
Cost Component 2: Commissions and Fees (Small, Constant, Additive)
Commissions and fees are typically predictable. Even when commissions are low, they compound with frequency. Some venues charge per share; some charge per order; some add regulatory fees on sells; some offer rebates for adding liquidity. The important part is to model your net cost per share or per trade based on your broker’s schedule.
Example (commission/fees)
Assume your all-in commission/fees average $0.003/share per side (entry and exit), so $0.006/share round trip.
- Shares:
500 - Round-trip fees:
500 * 0.006 = $3.00
That $3 may look small, but if your average trade profit target is $15–$25, it’s a meaningful percentage.
Cost Component 3: Slippage (The Variable, Often Underestimated Cost)
Slippage is the difference between the price you expected and the price you actually got. It can happen on entries and exits, and it tends to be worst exactly when you most need liquidity (fast moves, breakouts, breakdowns, stop-outs).
Two common slippage patterns
- Marketable orders in fast markets: you try to buy “now,” but the ask lifts as your order hits, so you pay more than the displayed ask.
- Stops triggering in thin books: your stop becomes a marketable order when triggered; if there’s not enough depth, you get filled lower (for sells) or higher (for buys) than planned.
Example (slippage on a stop)
You are long and place a stop expecting to exit around $10.00. A quick drop hits the stop and the next available liquidity is lower.
- Expected exit:
$10.00 - Actual average fill:
$9.96 - Slippage:
$0.04/share - At
500shares:$20extra loss from slippage alone.
Notice how slippage often shows up on losing trades, which makes your average loss larger than your plan.
Cost Component 4: Opportunity Cost (The Cost of Not Getting Filled)
Opportunity cost is real even though it doesn’t appear on a statement. It shows up when you:
- Place a limit order that never fills, then price runs without you.
- Get a partial fill and the rest never fills, reducing your expected profit.
- Miss the exit fill and end up exiting later at a worse price.
Example (missed entry)
You want to buy at $10.00 with a limit order. It trades $10.00 briefly but you don’t get filled (or only get 100 of 500 shares). Price then moves to $10.10 and your setup is gone.
- Planned move capture:
$0.10/share - Shares missed:
400 - Opportunity cost:
400 * 0.10 = $40(profit you expected but didn’t realize).
Opportunity cost is why “always use limits” is not automatically better; you must balance fill probability against price improvement.
Putting It Together: Total Expected Cost Per Trade
A practical way to model total cost is to convert everything into dollars per share (or ticks) and then multiply by size.
Round-trip cost model (per share)
TotalCost_perShare = SpreadCost + Fees + Slippage + MissedFillAllowanceWhere:
- SpreadCost: often approximated as
0.5 * spreadper side if you cross once on entry and once on exit; in many short-term trades it’s effectively close tospreadround trip if you cross both times. - Fees: your all-in per-share cost round trip.
- Slippage: your expected average slippage round trip (can be different for winners vs losers; stops often have higher slippage).
- MissedFillAllowance: a small “expected value” penalty for limit orders not filling or partial fills (you can model it as probability × average adverse move).
Numerical example (all components)
Assume:
- Spread =
$0.02 - Fees =
$0.006/shareround trip - Expected slippage =
$0.01/shareround trip (average across entry/exit) - Missed fill allowance =
$0.005/share
Then:
- Total cost per share =
0.02 + 0.006 + 0.01 + 0.005 = $0.041/share - At
500shares:500 * 0.041 = $20.50expected cost per round trip
If your average planned profit per trade is only $25, you can see how little room you have for error.
How Small Costs Compound Across Many Trades
Costs scale with frequency. A “tiny” per-trade cost becomes large over a month.
Compounding example
If your expected total cost is $20.50 per trade and you take:
5trades/day →$102.50/day20trading days/month →$2,050/month
This is not a worst-case scenario; it’s the expected drag. Your strategy must generate more than this just to break even.
How Costs Change the Required Win Rate and Average Win/Loss
Before costs, a simplified expectancy model is:
Expectancy = WinRate * AvgWin - (1 - WinRate) * AvgLossAfter costs, costs reduce both winners and losers (but often hurt losers more if stop slippage is larger):
Expectancy_net = WinRate * (AvgWin - Cost_win) - (1 - WinRate) * (AvgLoss + Cost_loss)Example: same strategy, different cost reality
Suppose your strategy (before costs) averages:
- Win rate:
50% - Avg win:
$60 - Avg loss:
$50
Before costs:
- Expectancy =
0.5*60 - 0.5*50 = $5per trade
Now add costs. Assume:
- Cost on winners (entry+exit):
$18 - Cost on losers (includes worse stop slippage):
$25
After costs:
- Expectancy_net =
0.5*(60-18) - 0.5*(50+25) - Expectancy_net =
0.5*42 - 0.5*75 = 21 - 37.5 = -$16.5per trade
The strategy that looked profitable becomes unprofitable purely due to realistic execution costs.
What win rate would you need instead?
Set Expectancy_net = 0 and solve for win rate W:
0 = W*(AvgWin - Cost_win) - (1-W)*(AvgLoss + Cost_loss)W = (AvgLoss + Cost_loss) / [(AvgWin - Cost_win) + (AvgLoss + Cost_loss)]Using the numbers above:
AvgWin - Cost_win = 60 - 18 = 42AvgLoss + Cost_loss = 50 + 25 = 75W = 75 / (42 + 75) = 75/117 ≈ 64.1%
So you’d need about a 64% win rate (instead of 50%) just to break even under those costs.
What Increases Slippage (and Why)
1) Low liquidity
When there are fewer shares/contracts available at each price level, your order consumes the top of book quickly and “walks the book,” producing a worse average fill.
2) Fast markets
When price is moving quickly, displayed quotes can change between the moment you decide and the moment your order reaches the market. Even small delays can matter.
3) News spikes and scheduled events
During sudden volatility, liquidity providers often widen spreads or pull orders. The book thins, and marketable orders pay up (or sell down) more than expected.
4) Stop orders triggering in thin books
Stops convert into marketable orders when triggered. If many stops trigger together, they can cascade through limited depth, causing large slippage precisely on exits.
5) Large position size relative to available depth
If your size is large compared to the shares available at the best prices, you will likely get multiple fills across multiple price levels, increasing average slippage and spread paid.
Step-by-Step: Estimating Expected Cost Per Trade Before Placing It
This method is designed to be fast enough to use in real time. You’ll estimate expected cost and a worst reasonable case cost, then decide if the trade still makes sense.
Step 1: Define your planned entry and exit mechanics
- Will you enter with a marketable order (immediate fill) or a limit (price control)?
- Will you exit with a limit target and a stop? If yes, assume stop slippage is higher than target slippage.
- What is your position size in shares/contracts?
Step 2: Estimate spread cost (round trip)
Use the current spread as a baseline.
- If you expect to cross the spread on both entry and exit, approximate spread cost ≈
spreadround trip. - If you expect to add liquidity on one side (limit fill) and cross on the other, approximate spread cost ≈
0.5 * spreadround trip.
Example: Spread = $0.02. You plan to enter with a limit (add) and exit with a marketable order (cross). Spread cost estimate ≈ $0.01/share.
Step 3: Add commissions/fees
Use your known all-in fee estimate per share round trip.
Example: $0.006/share round trip.
Step 4: Estimate slippage separately for entry, target exit, and stop exit
Use a simple “typical vs worst reasonable” approach:
- Typical slippage: what you usually see in normal conditions for that instrument and time of day.
- Worst reasonable slippage: what you might see in a fast push, minor news headline, or a quick liquidity vacuum (not a once-a-year flash crash, but a bad day).
| Leg | Typical slippage | Worst reasonable slippage |
|---|---|---|
| Entry | $0.00–$0.01/share | $0.02/share |
| Target exit | $0.00–$0.01/share | $0.02/share |
| Stop exit | $0.02/share | $0.06/share |
Even if you don’t know exact values, forcing yourself to write down a range prevents “zero-slippage fantasy math.”
Step 5: Add a missed-fill allowance (if using limits)
Model missed fills as: Probability_of_miss * Expected_adverse_move.
Example: You use a limit entry. You estimate a 20% chance you miss and price runs $0.05 without you (or you chase and pay up). Missed-fill allowance ≈ 0.20 * 0.05 = $0.01/share.
Step 6: Compute expected cost per share and per trade
ExpectedCost_perShare = SpreadCost + Fees + Slippage_expected + MissedFillAllowanceMultiply by shares for dollars.
Step 7: Stress test with “worst reasonable case” and re-check viability
Recalculate using worst reasonable slippage and a higher missed-fill allowance (because fast markets reduce fill quality and fill probability).
Then compare your trade’s planned edge to both scenarios:
- Planned gross edge: expected move captured (in $/share) based on your setup.
- Net edge (expected) = gross edge − expected cost.
- Net edge (worst reasonable) = gross edge − worst reasonable cost.
If the trade only works in the best-case execution, it’s not a robust trade.
Guidelines for Controlling Costs (Practical Rules)
Avoid illiquid names (or adjust your approach)
- Illiquid instruments often have wider spreads and thinner depth, which increases both spread cost and slippage.
- If you must trade them, reduce size and demand a larger expected move to compensate.
Trade during liquid hours
- Liquidity tends to be better when participation is high, which can reduce spread and slippage.
- Outside liquid windows, assume your worst reasonable slippage becomes your typical slippage.
Use limit orders where appropriate (but price control has a trade-off)
- Limits can reduce spread paid and slippage by controlling price.
- But limits introduce missed-fill and partial-fill risk; include an opportunity cost allowance in your math.
- For exits, consider that a limit target may not fill in a fast reversal; decide in advance whether you will accept partials or switch to a marketable exit.
Size positions to the order book (don’t be the market)
- As a rule of thumb, if your order size is a large fraction of the visible liquidity near the top of book, expect worse average fills.
- Reduce size, split orders, or require a larger expected move so the trade can absorb higher slippage.
Plan for stop slippage explicitly
- Assume stop exits have higher slippage than entries and targets.
- When calculating risk per trade, include stop slippage so your “$ risk” is not understated.
Track your realized execution quality
After a sample of trades, compute your average realized:
- Spread paid (approximate)
- Fees per share
- Slippage on entries
- Slippage on stop exits
Update your pre-trade assumptions so your planning matches your actual fills.