Dear all,
Currently customizing an OMS/EMS by an internal system integration project into a banks pre-order processing.
This includes
1 communication with the custodian system (and DMA router) to check whether an account owner holds sufficient instruments to sell a certain order quantity.
2 communication with a „best execution engine“ responding the policy-compliant venue on request. This component could also be chosen by the OMS as the DMA routing system for this order in a second step.
These systems in question have their proprietary interfaces and message flow. But they are already attached to a EAI mapping message broker and this is capable of understanding any FIX version and translating to/from the prop interfaces…
Our general idea now is to faciliate the communication on the OMS side regarding both use cases hopefully by the use of the FIX protocol. OMS is representing the buy side.
One approach to address both use case ist to send the-check requests seperately and consecutively.
Another approach to combine both use cases in one request may possibly be to send a NewOrderSingle with 18=k and the venue (tags 100 and 207) left blank. Best Execution Policy related flags and more information are transported via the StrategyParametersGrp of the order. Additionally 18=w (lock) prevents the targeted system from routing the order.
One could think of using ValuesCheckGrp starting with 1858 since this Group supports a quantity check. This quantity check would not investigate on current market situation (which is probably the original business related use case intention of the check) but it veryfies the free quantity available and sufficient on the owners account.
Or would it be a violation on the business case related to the DisclosureInstructionGrp starting 1868 if we would use even this one ? Since DisclosureType also contains quantity and value > 100 is even open to bilateral agreement.
An Execution Report returns tag(s) 100 and/or 207 populated with the venue fitting the order requestor‘s profile according to the „best execution policy“ and additionally a tag37 value in case of positive result for both requests.
In the negative response the order will be rejected 39=8. The easy one.
If both request results were positive and the values were returned to the OMS, which status 39= whould we chose ? Probably „A“=Pending New“ or „New“?
By sending a ReplaceRequest with tag 37 and venues MICs populated from the BestExecution Response and 18=q (Release) from the OMS could then instruct the DMA router to release the order to the market.
I am afraid this is not an industry standard bullet proof approach but it hopefully does not only generate roll-eyes …
We‘d be extremely happy if you share your comments and ideas.
Thank you and Kind Regards
Uli
, here are some answers (my personal view).
.