Platform: MultiCharts Version 5.0 Release (Build 2369)
Broker: Interactive Brokers
Exchange: IDEALPRO
Limit orders submitted by MC to IB's IDEALPRO exchange are being held, i.e. they are not transmitted to the exchange. These orders appear in TWS as having the status "Order is being held and monitored." which is marked in blue color.
Only after the limit price of such an order is being touched, the order becomes active. Because of this (tiny) delay, this may lead to a situation in which this order is not executed, even though the price had reached the limit.
I would like to change the behaviour of the limit orders generated by MC so that its orders are transmitted directly to the exchange instead of only to IB's servers. This is the "normal" behaviour of a limit order when typed in manually into the TWS. After submission, such an order has the status "Order is at the exchange." which is marked in green color.
I have contacted the customer service of IB in this matter. They have verified that a limit order is being held when it has the feature "Overfill Protection" activated. This is the case with limit orders generated by MC. The "Overfill Protection" feature is found on the tab labelled "Misc." in the "Order Ticket" dialog of the TWS.
Is it possible to change the "Overfill Protection" setting from within MC?
If not, I would greatly appreciate to see this as a new feature in a near release of MC.
IB (Forex): Limit Order being held
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
There are two ways to handle OCO groups: kill the other orders or reduce a size. We use kill the other orders method and overfill protection option is not available for it.
Currently MultiCharts can’t reduce size of the OCO group orders but we will improve it since you need it. IB has two options: kill the other order completely or reduce a size. We use the first option. We realize that this is necessary for exit orders only (brackets). At the same time if you use OCO to enter the market it is necessary to kill the other orders if there is a partial fill. MultiCharts will handle it in the nearest future.
Currently MultiCharts can’t reduce size of the OCO group orders but we will improve it since you need it. IB has two options: kill the other order completely or reduce a size. We use the first option. We realize that this is necessary for exit orders only (brackets). At the same time if you use OCO to enter the market it is necessary to kill the other orders if there is a partial fill. MultiCharts will handle it in the nearest future.
MC 5.5 has the same problem
Andrew, could you please specify when you are going to fix the "Overfill Protection" setting? MC 5.5 still has the same problem.
More on "Overfill Protection"
Because there has been no response from TSSupport yet, I post some clarification. The "Overfill Protection" setting can be found under IB's TWS in the order dialog: Order->Misc.->"Overfill Protection".
Here is a competent answer I got from IB's API support in order to avoid this setting:
In this particular case, you need to implement m_ocaType of Order object. This attribute tells how to handle remaining orders in an OCA group when one order or part of an order executes. Valid values include:
1 = Cancel all remaining orders with block
2 = Remaining orders are proportionately reduced in size with block
3 = Remaining orders are proportionately reduced in size with no block
If you use a value "with block" gives your order has overfill protection. This means that only one order in the group will be routed at a time to remove the possibility of an overfill.
IB API Support
Here is a competent answer I got from IB's API support in order to avoid this setting:
In this particular case, you need to implement m_ocaType of Order object. This attribute tells how to handle remaining orders in an OCA group when one order or part of an order executes. Valid values include:
1 = Cancel all remaining orders with block
2 = Remaining orders are proportionately reduced in size with block
3 = Remaining orders are proportionately reduced in size with no block
If you use a value "with block" gives your order has overfill protection. This means that only one order in the group will be routed at a time to remove the possibility of an overfill.
IB API Support
Feature will be available with MC 6.0
Today I got a reply via e-mail from TSSupport with good news:
This functionality is ready and will be available in version 6.0
This version will be released this year; no ETA yet.
Dennis Globa
TS Support
Hi I have experienced the same issue: Limit order being held.
1) Can anyone please confirm the setting in MC 6.0 Beta 4 that the limit orders will be sent to exchange (not being held by IB)?
Is the settings below right??
Checked "Use Native OCO Group
Checked "Reduce Size OCO"
2) TraderJ has mentioned one of the disadvantages of using "Overfill Protection", I still tend to go with limit orders being sent to exchange without delay. So the next question is: what are the disadvantages of using this type, i.e. sending limit orders to exchange without delay (above settings??)?
--- > overfill ? can anyone illustrate with an example?
3) If overfill is one of the disadvantages, then is there any way to remendy it afterwards with a code the check it and then close /square the "overfilled" (unwanted) position?
Anyone can share experience here?
1) Can anyone please confirm the setting in MC 6.0 Beta 4 that the limit orders will be sent to exchange (not being held by IB)?
Is the settings below right??
Checked "Use Native OCO Group
Checked "Reduce Size OCO"
2) TraderJ has mentioned one of the disadvantages of using "Overfill Protection", I still tend to go with limit orders being sent to exchange without delay. So the next question is: what are the disadvantages of using this type, i.e. sending limit orders to exchange without delay (above settings??)?
--- > overfill ? can anyone illustrate with an example?
3) If overfill is one of the disadvantages, then is there any way to remendy it afterwards with a code the check it and then close /square the "overfilled" (unwanted) position?
Anyone can share experience here?
It seems that the OCO group of orders need to have the same quantity in order to send the limit order to the exchange directly without holding, is that right?
BUT, I want to send the limit order to the exchage without holding. The difference is due to that the stop order is a reverse order with double the quantity while the limit order is an exit order with a quantity same as the size of current position.
CAN MC DO THAT? If not, can TSSupport add this feature?
BUT, I want to send the limit order to the exchage without holding. The difference is due to that the stop order is a reverse order with double the quantity while the limit order is an exit order with a quantity same as the size of current position.
CAN MC DO THAT? If not, can TSSupport add this feature?