Imported from previous forum
Hello,
I was reviewing the FIX specs for Bovespa (São Paulo Exchange), and also some posts about busted executions.
In Bovespa specs, there is an interesting point regarding “TradeCancel” (busted executions). Their document states:
<< Note: Since there is no appropriate tag for trade cancellation – TradeCancel – the Text field (tag 58) will be used instead observing the “TCQ=XXXXXXX” standard format, where XXXXXXX is the cancelled trade quantity. >>
…
So, I would like to know:
(1) How do other Exchanges inform the number of busted shares? Do they use LastShares (tag 32)?
(2) Let’s say that:
- a broker sends a NewOrder for 10,000 shares;
- the Exchange anwsers with an Ack and a PartialFill for 1,000 shares;
- the Exchange sends a *partial bust" for 500 shares.
I suppose the current ExecutionReport tags cannot inform this situation. Anyway, this kind of “partial bust” is not usual; probably the Exchange will bust the whole execution (referred in ExecRefID).
Thanks!
Hello,
I was reviewing the FIX specs for Bovespa (São Paulo Exchange), and
also some posts about busted executions.In Bovespa specs, there is an interesting point regarding “TradeCancel”
(busted executions). Their document states:<< Note: Since there is no appropriate tag for trade cancellation –
TradeCancel – the Text field (tag 58) will be used instead observing
the “TCQ=XXXXXXX” standard format, where XXXXXXX is the cancelled trade
quantity. >>…
So, I would like to know:
(1) How do other Exchanges inform the number of busted shares? Do they
use LastShares (tag 32)?(2) Let’s say that:
- a broker sends a NewOrder for 10,000 shares;
- the Exchange anwsers with an Ack and a PartialFill for 1,000 shares;
- the Exchange sends a *partial bust" for 500 shares.
I suppose the current ExecutionReport tags cannot inform this situation.
Anyway, this kind of “partial bust” is not usual; probably the Exchange
will bust the whole execution (referred in ExecRefID).
By the way: Bovespa FIX doesn’t support ExecTransType = Correct (tag 20=2), which could be used to modify an incorrectly reported fill.
Thanks!
[ original email was from Nicholas Tuttle - nicholas.tuttle@na.linedata.com ]
Hi. (disclaimer: this description is how my company’s OMS handles busts/corrections)
Per the FIX protocol description of tags 31 and 32 we require those fields to be 0 (ie, 31=0, 32=0) on all busts and trade corrections. So a bust with 19=1234, 20=1, 31=0, 32=0 would cancel all shares from the fill of exec report 17=1234. The only way to “bust” SOME shares of a fill is to send a correction with 20=2 where 32 carries the corrected qty, but it sounds like this isn’t an option.
The simplest thing to do for you would be to bust the whole partial fill and then send a new partial.
Hello,
I was reviewing the FIX specs for Bovespa (São Paulo Exchange), and
also some posts about busted executions.In Bovespa specs, there is an interesting point regarding
“TradeCancel” (busted executions). Their document states:<< Note: Since there is no appropriate tag for trade cancellation –
TradeCancel – the Text field (tag 58) will be used instead observing
the “TCQ=XXXXXXX” standard format, where XXXXXXX is the cancelled
trade quantity. >>…
So, I would like to know:
(1) How do other Exchanges inform the number of busted shares? Do they
use LastShares (tag 32)?(2) Let’s say that:
- a broker sends a NewOrder for 10,000 shares;
- the Exchange anwsers with an Ack and a PartialFill for 1,000 shares;
- the Exchange sends a *partial bust" for 500 shares.
I suppose the current ExecutionReport tags cannot inform this
situation. Anyway, this kind of “partial bust” is not usual; probably
the Exchange will bust the whole execution (referred in ExecRefID).By the way: Bovespa FIX doesn’t support ExecTransType = Correct (tag
20=2), which could be used to modify an incorrectly reported fill.Thanks!