Imported from previous forum
[ original email was from Greg Wood - gregjwood@hotmail.com ]
Hi all,
It’s a common problem when allocating futures that you can’t always split the trades to precisely match the average price of the group of trades to be allocated. This is an industry wide issue based on how futures are settled. However it also poses problems when trying to express this in a FIX 4.4 Allocation Report (MsgType AS).
Take the following example -
BOT 2 ESH9 at 890
BOT 2 ESH9 at 890.5
BOT 3 ESH9 at 891
The average price for all 7 lots is 890.5714 (to 4 decimal places).
If I were to allocate 3 lots into 1 account and the remaining 4 lots into another account at the average price, the best I can get with no cash residual is 3 at 890.5 and 4 at 890.625.
I think that this should be expressed as the following in MsgType AS when it is reported back to the client -
78=6
79=ACCOUNT1
80=1
366=890
153=890.5
79=ACCOUNT1
80=1
366=890.5
153=890.5
79=ACCOUNT1
80=1
366=891
153=890.5
79=ACCOUNT2
80=1
366=890
153=890.625
79=ACCOUNT2
80=1
366=890.5
153=890.625
79=ACCOUNT2
80=2
366=891
153=890.625
Some problems with this approach compared to the 4.4 spec and the FAWG Implementation Guide -
-
Tag 366 AllocPrice should not be present if tag 153 AllocAvgPx is present. However putting AllocPrice in the block in my example demonstrates how the actual trades were allocated. In this case I think that it is permissible to bend the specification to handle this situation.
-
Tag 153 AllocAvgPx should match tag 6 AvgPx. However tag 6 is the average price across the entire group of trades, and AllocAvgPx in my example represents the most equitable possible average for each individual account. Note that there is a different average price in this example per account. Again, I think that it is permissible to bend the specification a little to handle this.
-
If we use an average price algorithm that takes a far more equitable approach and generates a cash residual, then how should this cash amount be represented per allocation ? AllocSettlCurrAmt ?
I know that there has been work carried out on this with the FIA Standards working group, but cannot find any examples of how these situations should be handled in a 4.4 allocation message. I’m guessing that most of the work done back in 2003 morphed into FIXML for post trade messaging. I have examples of how vendors have approached this situation but I’d really like to adopt or move towards a streetwide standard for allocation reports for futures.
Comments/suggestions ?
Thanks,
- Greg