Reference · Liquidity and Market Data
Tick Size vs Price Precision: Valid Order Prices
Check valid order prices against a tick grid rather than decimal formatting, using a worked example and clear rounding and mapping constraints.
Published Updated
Published by FxTrusts, a supplier of brokerage and prop firm technology. Prepared with AI-assisted research and drafting; reviewed against the cited public sources. Examples are illustrative. Product links describe our services.
What is Tick size?
Tick size is the permitted price increment for a contract or price range. Display precision is the number of decimal places shown. A price can fit the display format and still be invalid on the tick grid, so order validation must use the actual instrument specification.

Do not infer the grid from the screen
A two-decimal display can show 10.03 even when the instrument trades only in increments of 0.05. Conversely, an interface can display more decimals than are needed for valid prices. MQL5 exposes point and tick-size properties separately, and exchange specifications such as CME’s define contract-specific minimum price increments. Keep the actual grid rule in configuration instead of deriving it from formatting settings or a screenshot.
Validate the increment in the correct domain
For a simple uniform grid anchored at zero, divide the price by tick size and check whether the result is an integer within the implementation’s precision policy. Some markets use different grids, price bands or rules for different transaction types, so this simplified check is not universal. Store the instrument and applicable rule version with the validation result. Quantity steps are another constraint and should not be confused with price ticks.
Rounding is an economic decision
Changing an invalid price to the nearest tick can alter a limit or trigger condition. A buy limit rounded upward allows a higher purchase price; a sell limit rounded downward permits a lower sale price. A system should not make that change silently. Define whether the request is rejected, returned for correction or normalized under an expressly authorized policy. The numerical rounding mode and the decision owner should be visible in test cases.
Separate tick size from tick value
Tick size is a change in price units. Tick value translates that movement into money for a specified contract and quantity under its calculation model. One cannot replace the other in a validator. A contract may also have different outright and spread increments, as exchange product specifications illustrate. When comparing an OTC CFD with a similarly named futures contract, verify both independently rather than inheriting one product’s tick rules from the other.
A two-decimal display with a five-cent grid
Assume a synthetic instrument has a uniform tick size of 0.05 and a two-decimal display. Prices 10.00 and 10.05 lie on the grid, while 10.03 does not. For an invalid buy limit at 10.03, changing it to 10.05 would permit paying more than requested. This worksheet therefore records rejection for correction as the declared policy; another policy would need explicit authorization.
| Requested price | Price ÷ 0.05 | Grid result |
|---|---|---|
| 10.00 | 200 | Valid |
| 10.03 | 200.6 | Invalid despite two-decimal format |
| 10.05 | 201 | Valid |
| 10.10 | 202 | Valid |
Implementation checklist
- Read tick rules from the actual instrument specification.
- Validate price and quantity grids separately.
- Do not silently change an order’s economic condition through rounding.
- Retain rule versions and test boundary prices after configuration changes.
Sources
These documents support the reference. Check the original publication for current requirements and the limits of its scope.
- MQL5 symbol propertieswww.mql5.com
- CME Group FX product guidewww.cmegroup.com
- Python decimal arithmetic and roundingdocs.python.org
Continue with the broader guides
Connect this reference to platform selection and the wider operating workflow.
