Why There Is Mismatch On Strategy Positions Tab
In the Order and Position Tracker window, on one of its tabs that is called Strategy Position there is a Positions Match column. It shows you if a strategy position and net position at the broker are the same or not: True (the position at the broker matches the strategy position) or False (the position at the broker does not match the strategy position) status. It is important to understand that the market position on a particular chart is meant under the "Strategy Position". Below you can see all the times when it can be False.
Position Match = True
Constant position match is expected if the following criteria are met:
- No manual orders are placed
- Only 1 chart with the particular symbol is auto trading at the particular broker account
- Synchronous mode of auto trading is used
- Each order receives its final status from the broker
Expected Mismatch Cases
Auto Trading in Asynchronous Mode
When a strategy is auto trading in Asynchronous Mode, the strategy position on the chart is formed by all orders that are displayed, including the orders from backtesting, which are not taken into account at the broker. The orders generated and displayed on the chart during real-time calculation are not guaranteed to be sent from MultiCharts though broker plug-in and be executed. This means the picture you see on the chart may be unrealistic (executed orders, market position). One should not expect a position match to be always true if the auto trading's mode is Asynchronous. There are 3 places where orders are executed and positions are opened/closed:
- Broker end,
- MultiCharts auto trading engine,
- Chart in MultiCharts.
If everything is set up correctly and working flawlessly (without any errors, manual orders or issues) in synchronous mode [SA], all these 3 places should be synchronized; in asynchronous mode [AA], visual order execution on the chart may be almost 100% different from the broker's end.
Combining Manual Trading and Auto trading
By its design, an auto trading strategy cannot be synchronized with any manual orders (both pending and executed). Execution of manual orders changes net market position at the broker, but, by default, this is not taken into account for the strategy. To learn more about this and find out how manual and auto trading can be combined, please read this article.
Auto Trading From Multiple Charts
Similar to combining manual and automated trading, having more than 1 chart auto trading the symbol X at the broker account Y at the same time leads to position mismatch, because strategies on each chart are working individually. To learn more about this, please read this article.
FA Accounts from Interactive Brokers
Interactive Brokers API does not provide cumulative broker position for Financial Advisor (FA) accounts, that is why the broker position for the master account (F) can be reflected as zero on the Open Positions/Strategy Positions tabs of the Order and Position Tracker. If a strategy calculation depends on the net position at broker for multiple accounts, then the GetPositionQuantity command can be used to calculate the net position across the required accounts for the specified instrument. It is possible to manually assign the total position for the strategy before turning on auto-trading, or use ChangeMarketPosition to assign the calculated position and average entry price to the strategy. After that is done - MarketPosition_at_Broker_for_The_Strategy and CurrentContracts will return the strategy position.
In this case the position mismatch under the Open Positions and the zero value returned by MarketPosition_at_Broker can be ignored there is no mismatch actually.
Unexpected Mismatch Case
If an order placed by the strategy during auto trading doesn't receive its final status (e.g. Cancelled, Filled), the strategy considers the order to be not executed. In fact, the order may be executed at the broker end, which leads to a position mismatch. Indicators of this are the following statuses for orders in Order and Position Tracker: