Market Price Increment
Introduction
The minimum increment is the minimum difference between price levels at which a contract can trade. Some trades have constant price increments at all price levels. However some contracts have different minimum increments on different exchanges on which they trade and/or different minimum increments at different price levels. In the contractDetails class, there is a field minTick which specifies the smallest possible minimum increment encountered on any exchange or price. For complete information about minimum price increment structure, there is the IB Contracts and Securities search site, or the API function EClient.reqMarketRule.
The function EClient.reqContractDetails when used with a Contract object will return contractDetails object to the contractDetails function which has a list of the valid exchanges where the instrument trades. Also within the contractDetails object is a field called marketRuleIDs which has a list of “market rules”. A market rule is defined as a rule which defines the minimum price increment given the price. The market rule list returned in contractDetails has a list of market rules in the same order as the list of valid exchanges. In this way, the market rule ID for a contract on a particular exchange can be determined.
- Market rule for forex and forex CFDs indicates default configuration (1/2 and not 1/10 pips). It can be adjusted to 1/10 pips through TWS or IB Gateway Global Configuration.
- Some non-US securities, for instance on the SEHK exchange, have a minimum lot size. This information is not available from the API but can be obtained from the IB Contracts and Securities search page. It will also be indicated in the error message returned from an order which does not conform to the minimum lot size.
With the market rule ID number, the corresponding rule can be found with the API function EClient.reqMarketRule. The rule is returned to the function EWrapper.marketRule.
- For forex, there is an option in TWS/IB Gateway configuration which allows trading in 1/10 pips instead of 1/5 pips (the default).
- TWS Global Configuration -> Display -> Ticker Row -> Allow Forex trading in 1/10 pips
Request Market Rule
EClient.reqMarketRule(marketRuleId)
Requests details about a given market rule. The market rule for an instrument on a particular exchange provides details about how the minimum price increment changes with price.
A list of market rule ids can be obtained by invoking EClient.reqContractDetails on a particular contract. The returned market rule ID list will provide the market rule ID for the instrument in the correspond valid exchange list in contractDetails.
The id of market rule.
Python
Java
C++
C#
VB.NET
Receive Market Rule
EWrapper.marketRule(marketRuleId, priceIncrements)
Returns minimum price increment structure for a particular market rule ID. Market rule IDs for an instrument on valid exchanges can be obtained from the contractDetails object for that contract.
Market Rule ID requested.
Returns the available price increments based on the market rule.

