A cTrader Market Range can limit the deviation permitted for a market-order fill, but it cannot promise a fill at the displayed price. Before a cBot relies on it, test the boundary as a choice between an acceptable fill and no fill—not as a substitute for execution evidence.
That distinction is easy to miss because a market order feels immediate. The SEC explains the general trade-off: a market order is designed to execute, not to guarantee its execution price; cTrader describes its market order as execution at the best available price and lets the trader set a maximum deviation in pips through Market Range. cTrader’s order documentation and the SEC’s order-types guide describe the mechanism. Neither source makes a fill outcome predictable for a particular broker, symbol or moment.
What cTrader Market Range actually controls
In cTrader, Market Range is the maximum deviation in pips from the current price at which a market order may be filled. cTrader warns that a range set very close to zero can leave the order unfilled because the requested price may no longer be available during execution. That makes Market Range a permitted-deviation boundary, not a claim about the price a cBot will receive. cTrader documents the setting and warning here.
The distinction matches the broader order-type principle. The SEC says a market order generally executes at or near the current bid for a sale or ask for a purchase, while the last-traded price is not necessarily the execution price. A limit order handles the trade-off differently: it requires the stated price or better, but it may not execute. The SEC’s explanation is here.
Test the boundary before automation uses it
A useful test does not try to forecast slippage. It records how the exact account, symbol and order path behave under controlled, hypothetical inputs.
| Test case | Input to preserve | Observation to record | What the result can establish |
|---|---|---|---|
| Baseline | Requested price, volume and Market Range | Submitted request, fill or no-fill response, and resulting price if filled | The platform response for that specific setup |
| Tight boundary | The same request with a deliberately small permitted deviation | Whether the request is rejected or remains unfilled, plus the response | Whether the boundary can prevent that setup from filling |
| Wider boundary | The same setup with a wider permitted deviation | Fill response and the difference between requested and resulting price | The observed trade-off in that controlled case |
| Repeatable record | Timestamp, broker/server, account type, symbol and spread observation | Saved request and response together | A review trail, not a forecast of future liquidity |
Use demo or another controlled environment for this exercise. The table is a procedure, not an observed performance result. Change one field at a time, then keep the raw request and the platform response. If a cBot exposes the setting as a parameter, preserve the parameter value as well as the order result.
Separate the requested price from the fill price
A cBot can log a requested price, but that log entry is not proof of the price at which an order filled. Treat those as distinct fields in a review record. cTrader’s documentation says that its market order uses the best available price, while the SEC says a market order does not guarantee execution price; together, those statements are why the two values belong in separate columns. cTrader · SEC
For each test, record the requested price, Market Range, final status, fill price when there is one, and platform response. Do not turn a successful test into a claim that a later event-driven or thin-liquidity order will behave identically. The purpose is narrower: make the cBot’s accepted boundary inspectable.
Do not confuse a stop trigger with a guaranteed entry
A stop order and a stop-limit order have different paths after the trigger. cTrader says a stop order seeks the best available price once the stop level is reached; its stop-limit order activates a limit order and uses a Limit range in pips after the trigger. cTrader’s definitions are here. The SEC likewise says that a stop order becomes a market order when its stop price is reached, while a limit order requires its price or better. SEC order types.
That is a design choice, not a hierarchy of “better” orders. A market-style path prioritises getting an execution attempt after the trigger; a limit-style path prioritises a price boundary and can leave the order unfilled. Test the exact order type your cBot submits. A test of a market entry does not validate a stop-limit entry, even when the signal is the same.
Make no-fill handling part of the strategy record
A range boundary changes the strategy’s possible outcomes. If the cBot does not receive an acceptable fill, the strategy needs an explicit, reviewable response: skip the entry, retry under a separately defined rule, or report the event for human review. This is a design question, not an instruction to trade.
Write that response before you inspect a neat equity curve. The cTrader symbol checklist helps document the account-specific contract around the order, and the pending-order testing guide separates signal, trigger, fill and cancellation. Together they keep a price rule from becoming an undocumented assumption.
realbacktesting is a trading-software studio for cTrader that treats execution assumptions as things to inspect. Its methodology makes backtest assumptions visible rather than asking traders to infer them from a result. A Market Range test belongs in the same category: it can document a boundary and a response, but it cannot guarantee the next fill.
Frequently asked
Does cTrader Market Range guarantee my cBot’s execution price?
No. cTrader defines Market Range as a maximum permitted deviation for a market-order fill and warns that a very tight range can prevent a fill. It is a boundary on an acceptable fill, not a promised price. cTrader documentation
Is a smaller Market Range always safer?
Not automatically. A smaller boundary can reject a price you would not accept, but cTrader warns that a very tight setting can mean no fill. The relevant test is whether the cBot’s no-fill response is explicit and reviewable.
Does a stop order guarantee its trigger price?
No. The SEC says a stop order becomes a market order once the stop price is reached, and cTrader says its stop order seeks the best available price after its stop level is reached. Keep the trigger, requested path and fill result separate in the record. SEC · cTrader
The stubborn takeaway
A Market Range is not proof that a cBot controls its execution. It is a boundary whose no-fill consequence must be tested before the next order makes the decision for you.