What Is Friction Mode? Realistic Trading Costs Explained
Friction is MongoTrader's optional realistic-costs mode. Switch it on and a simulated portfolio pays the same kinds of costs a real brokerage account does — fees, bid/ask spreads, slippage, and partial fills — so the habits you build in practice are the ones that survive contact with live markets.
Most trading simulators are too generous. Every order fills instantly at the last printed price, nothing costs anything, and a strategy that would slowly bleed a real account looks like a winner on paper. Friction is MongoTrader's answer to that problem: a per-portfolio switch that models real-world trading costs inside the simulator. This guide explains what those costs are, how Friction models them, how to turn it on, and why some leagues require it for every entrant. As always, this is education rather than financial advice.
Why a frictionless simulator teaches the wrong lessons
Trading costs are tiny on any single order and enormous across hundreds of them. A trader who never pays them learns habits that feel harmless in a simulator and quietly drain a real account:
- Overtrading. When every order is free and instant, there is no reason not to fire off twenty trades a day. In a real market each of those trades crosses a spread and may pay a fee, and a thin edge often disappears entirely into the costs.
- Treating illiquid names as liquid. A thinly traded stock or a small crypto pair looks identical to a large one when fills are instant. In reality it carries a wide spread and cannot absorb a big order without moving the price against you.
- Ignoring the cost of holding. Borrowing shares to short, using margin, or sitting in an ETF all cost something over time. If the simulator never charges you, you never learn to weigh those costs against the expected return.
- Overstating returns. A paper track record that ignores costs is optimistic by definition. The gap between the simulated result and the real one is exactly the cost the simulation left out.
We cover these patterns in more depth in our post on paper trading mistakes to avoid. The short version: a simulator without friction is a fine place to learn the mechanics of placing orders and a poor place to judge whether a strategy actually works.
What Friction models
When Friction is on, four categories of real-world cost apply to every order in that portfolio.
Fees. Real trading charges you in different ways depending on the asset. Crypto exchanges charge maker and taker fees: a maker adds liquidity by placing a resting limit order, a taker removes it by hitting an existing quote, and takers typically pay the higher rate. ETFs carry an expense ratio, an annual percentage deducted from the fund's assets that shows up as a slow drag on your return. Short sellers pay borrow interest on the shares they have borrowed, and anyone trading on margin pays margin interest on the borrowed cash. With Friction on, MongoTrader charges crypto maker/taker fees, ETF expense ratios, and borrow and margin interest to the portfolio.
Bid/ask spread. At any moment a market has two prices: the bid, the highest price a buyer will pay, and the ask, the lowest price a seller will accept. The gap between them is the spread. If a stock is quoted at $100.00 bid and $100.05 ask, a market buy fills near $100.05 and an immediate market sell fills near $100.00 — a round trip costs five cents a share before the price has moved at all. Frictionless simulators fill everything at a single price and hide this. With Friction on, your fills reflect the spread, just as they would through a real broker.
Slippage on large orders. A quoted price is only good for a limited quantity. A large market order consumes the best quote and then fills the remainder at progressively worse prices. The difference between the price you expected and the average price you actually got is slippage, and it grows with order size and shrinks with liquidity. Friction applies slippage to large orders, so building a big position in a thin market costs what it would cost in reality.
Volume-limited partial fills. A market can only absorb as much as other participants are willing to trade. If you try to buy more than is available at once, a real order fills in pieces over time rather than all at once. With Friction on, MongoTrader limits fills by available volume, so a large order arrives in parts and you see how long it genuinely takes to build or exit a position of that size.
How to turn Friction on
Friction is off by default, so a new portfolio behaves like a standard simulator until you decide otherwise. It is a per-portfolio setting, which means you can keep one frictionless portfolio for learning order mechanics and another with Friction on for testing real strategies, then compare the two side by side.
- In the app, toggle Friction in the portfolio's settings on web or iOS.
- Via the developer API, create a portfolio with frictionEnabled set to true, or toggle it on an existing portfolio through the portfolio's friction endpoint. Read the portfolio's frictionEnabled field before sizing trades, because fills behave differently once it is on.
Once you toggle Friction, there is a 24-hour lock before it can be toggled again. In practice that means a portfolio's results reflect one set of rules for at least a full day at a time, rather than costs being switched off around an expensive trade and back on afterwards. Decide what a portfolio is for, set it, and leave it.
Friction in leagues
Some leagues require Friction on for every entrant. Those leagues only accept portfolios with Friction enabled, and the setting is frozen on for the duration of the league, so nobody can switch it off once the competition is under way. The point is fairness and realism at the same time: when every competitor pays the same spreads, fees, and slippage, the leaderboard rewards the trader whose strategy survives real costs rather than the one who churned the most free orders.
That makes Friction leagues a more honest test of skill. A large, fast order in a frictionless league is free; in a Friction league it fills in pieces at worsening prices, exactly as it would for a real fund manager. Traders who size positions to the market and let limit orders do the work tend to do well there. If league scoring is new to you, start with our guide on how trading competitions work.
You can see which leagues require Friction on the leagues page. If you plan to enter one, enable Friction on the portfolio you intend to use ahead of time — remember the 24-hour lock — and trade a few sessions under those rules first so the costs do not surprise you once the standings count.
How to trade well once Friction is on
Friction does not change what a good trade looks like; it changes how many trades are worth taking. A few habits help:
- Count the round trip. Before you enter, know what the spread and any fees will cost to get in and out. If the move you expect is smaller than that round-trip cost, the trade is not worth taking.
- Prefer limit orders when you can wait. A limit order lets you name your price instead of paying the ask, and in crypto it may qualify as a maker order with the lower fee. Our guide on market vs. limit orders covers the trade-offs.
- Size to the market. A position that is small relative to daily volume fills cleanly; one that is large fills in pieces and moves the price against you. Scale into thin markets gradually, or choose more liquid ones.
- Watch holding costs. Borrow and margin interest accrue for as long as a position is open. A short that takes months to work may cost more in interest than it earns.
- Compare your two portfolios. Run the same idea in a frictionless portfolio and a Friction portfolio. The gap between them is the true cost of the strategy, and it tells you whether the edge is real or an artifact of free fills.
The rule of thumb is simple: if a strategy only works when trading is free, it does not work. Friction is how you find that out in the simulator instead of on a brokerage statement.
Practice with real trading costs — free
Create a portfolio, switch on Friction, and see how your strategy holds up against fees, spreads, slippage, and partial fills on live market data.
Create Free AccountFrequently asked questions
Is Friction on by default?
No. Friction is off by default, and each portfolio has its own setting. You can turn it on in the app on web or iOS, or through the developer API by creating a portfolio with frictionEnabled set to true or toggling it on an existing portfolio. Keeping one portfolio frictionless and enabling Friction on another is a useful way to compare results.
Can I turn Friction off again after enabling it?
Yes, but not immediately. Once Friction is toggled there is a 24-hour lock before it can be toggled again. If the portfolio is entered in a league that requires Friction, the setting is frozen on for the length of that league.
Why do some leagues require Friction?
So that every entrant competes under the same realistic rules. When fees, spreads, slippage, and partial fills apply to everyone, the leaderboard rewards strategies that survive real trading costs rather than those that exploit free, instant fills. Those leagues only accept portfolios with Friction enabled and keep it on for the whole league.