Imported from previous forum
I’m currently looking at solving an overtrading problem with one of our systems.
My question is:
- If I have an order on the market, e.g. for BUY 100 BHP @ $30.00
- I then send an amend (35=G) to market to increase price to $30.01
- A split second before amend is received, the order partially fills (e.g. Cumulative Qty = 50, Leaves Qty = 50)
- Now, the amend message is applied to the partially filled order. The price is correctly moved to $30.01, but as the FIX spec insists that I have a qty on my amend message, the order qty is now amended back up to 100, which I didn’t want - once it fills, I have actually traded 150 shares instead of the 100 I actually wanted.
Is there any way to send an amend to the market which only specifies the fields you actually want to change? E.g. populate the price field, and any unpopulated fields will result in the amended order inheriting those fields from its original order?
Surely this issue must have been solved before…?
Thanks
-Lincoln
[ original email was from Boris Boroda - bboroda@marcopolonetwork.com ]
> I’m currently looking at solving an overtrading problem with one of
our systems.
My question is:
- If I have an order on the market, e.g. for BUY 100 BHP @ $30.00
- I then send an amend (35=G) to market to increase price to $30.01 3.
A split second before amend is received, the order partially fills
(e.g. Cumulative Qty = 50, Leaves Qty = 50)- Now, the amend message is applied to the partially filled order. The
price is correctly moved to $30.01, but as the FIX spec insists that
I have a qty on my amend message, the order qty is now amended back
up to 100, which I didn’t want - once it fills, I have actually
traded 150 shares instead of the 100 I actually wanted.Is there any way to send an amend to the market which only specifies the
fields you actually want to change? E.g. populate the price field, and
any unpopulated fields will result in the amended order inheriting those
fields from its original order?Surely this issue must have been solved before…?
Thanks -Lincoln
Lincoln,
In your example the order quantity is not actually getting amended back to 100, it stays at 100, meaning that if 50 shares were filled against the order, only 50 shares are left on the market at new limit price specified in your amend request. FIX protocol specification requires the following condition to be true at all times: OrdQty = CumQty + LeavesQty. Either OrdQty #38 or CashOrdQty #152 fields are required in the amend request message. The order quantity is never getting changed unless it the change is specified in the amend request message (in your example 38=150).
Regards,
Boris Boroda