FX Post Trade Events (Rolls, Early Terminations, Close Out)

Hi,

FX Trading - we are using fix for all our venue API’s for standard FX flow (spot, forward, swaps, ndf etc.) but now need to process Post Trade Events like Rollovers (HRR), Early Termination, Close Out etc. all on the FX side.

Are there any Post Trade ‘fx event’ FIX msg types I can use for the aforementioned events (not allocations) ?

Otherwise we will have to use standard QuoteRequest , NewOrderSingle workflow and add custom tags.

Anyone had any experience on this please?

thanks
Binny

1 Like

I’m curious as well, can you tag me if you get an answer?

1 Like

@indigostar108, have a look at TradeContinuation(1937). It is part of a number of FIX messages and has for example 31=“Early termination”. It allows user-defined values as of 100 (union datatype Reserved100Plus). You can also use 99=“Other price-forming continuation data” together with TradeContinuationText(2374).

1 Like

I won’t be holding my breath. I will be instructing our dev team to use standard msg types and add custom where needed for now.

Couldn’t find anything online

I am using TradeCaptureReport message we also do HRR’s and my plan was to use a custom value in field 167 SecurityType (https://fiximate.fixtrading.org/en/FIX.Latest/tag167.html) and used either OrigTrdID (https://fiximate.fixtrading.org/en/FIX.Latest/tag1126.html) or ExecRefID (https://fiximate.fixtrading.org/en/FIX.Latest/tag19.html)

1 Like

What kind of values are you missing in this field? It does not permit custom values and the upcoming EP272 (not final, Gap Analysis had been published for public comment here) will add quite a large number of values to it.

Hi, so instead of NewOrderSingle, we can use TradeCaptureReport to instruct an ‘event’ ? I assume its very similar to NewOrderSingle / ExecutionReport (have not had time to look today).

Can a TradeCapture report be responded to with an ‘accept/reject’ just like ER is the response to a NOS ?

Yes, TCRs can be used for trade reporting, i.e. to create new trades at the recipient of the TCR, e.g. OTC trades sent to exchanges/clearinghouses for clearing. Use TradeReportTransType(487)=0 (New) and TradeReportType(856)=0 (Submit) for new trades. The response is also a TCR with TrdRptStatus(939)=0 (Accepted) or 1 (Rejected) etc.

Also have a look at TCRs in the FIX online specification and EP179, Appendix E for examples of trade continuation events and how they are reported in Europe.

1 Like

@gtcpm ty for your help on this, much appreciated

1 Like

@gtcpm . TCR’s seem like a good way to receive an event and replied with a TCR Ack. What about pricing events, as Rolls, Early Terminations etc. need to be priced with a quote msg (as done for QuoteRequest + Quote). Are there any options here too ?

@gtcpm did you see my last question above? We have to provide pricing workflow for these events in the same we would price an FX spot, FX Swap, FX Forward etc with Quote, QuoteCancels etc.

If there is no equivalent for Trade Capture Report ‘events’ , then I would have a hybrid workflow where the initial request is a TCR (just like a QuoteRequest msg) and to respond back with an actual Quote / QuoteCancel and then instead of NewOrderSingle, client is to send a TCR again (instead of NewOrderSingle).

Not sure its worth doing this, and to just do custom tags and change SecurityType to use additional values in standard QuoteReuest --> Quote --> NewOrderSingle --> ExecutionReport as @ianworsfold mentioned.

@indigostar108 What you’re describing is a post trade life cycle event. Take a look at the Repo Recommended Practices here that talks about these similar types of post trade life cycle events (section 5). If you need to “agree on a price” to do an early termination then you cannot use the TCR for that - the TCR is only after the fact to report an event, not instruct an event.

What does HRR stand for?

You and @ianworsfold mention adding custom SecurityType for this - what are you looking to use? I’m not seeing why custom SecType is needed here.

I noticed you articulated your “workflow” as using the NewOrderSingle after the Quote, what version of FIX are you using? Is this just a pricing feed to roll or early terminate to 1 client (I can’t imaging this being a generic feed if this is a post-trade life cycle event).

You’re on the right track with QuoteRequest --> Quote --> NewOrderSingle or QuoteResponse --> ExecutionReport flow. Again, see that Repo doc I linked above.

Hi @ltaikit . Ty for your feedback. I will take a look at that link.

I think you have confirmed that the TCR usage is not fit for purpose. HRR is Historic Rate Rollover that has to be priced in the same way as Early Termination or other events we intend to offer to an internal client using Fix. Although we use Fix 5.0 it’s our own fix dictionary that we try to use standard fix tags regardless of version.

I am more on the functional side & asked to provide a FIX spec to an internal client with whom we already use the workflow for quoting, execution as I mentioned above, now the same client wants us to price these ‘events’ for them as well.

I wanted to explore other options before committing our dev team to use our existing msg types for QuoteRequest, Quote, NewOrdersingle, ExecReport and tailing the SecType to include “DRAWDOWN”, “ROLLFWD”, “ROLLBACK” , “EARLYTERMINATION” etc. and adding custom fields (if nothing sensible matches in fix specs) for anything different required to our FX product offering over fix.

Hope that makes sense. I haven’t downloaded the Repo Recommended Practices yet but will try to look tomorrow.

thanks

Hi Lisa, do you know if RollOvers have been addressed? I looked at the latest spec and it’s not covered in there., Thx, Jan

Are Rolls and RollOvers not the same “thing”?

Sorry, brain blurp on my end, I meant Pair-Off, not RollOver.

Rolls & RollOver are the same and are already covered.

That topic hasn’t come up in any of the active WGs yet.

Early termination is not a security type so please don’t put it in the SecurityType(167) field - in the Repo doc it is shown as a TradeContinuation(1937). Roll back / roll forward, and probably along with jelly roll, roll up and roll down, appears to be some kind of option strategy? If so maybe the StrategyType(2141) field is more appropriate. I am not sure exactly what exactly is a “draw down trade” (don’t have a lot of time to research this right now).

Want to have a brainstorm call on this?

1 Like

@itaikit

These are all FX events, so the REPO doc is totally not relevant for our purpose. I suspect the value you indicated in 1937 is not the same as our FX events.

All our events are focussed on Foreign Exchange events that occur days, weeks, months, years after the original trade is booked, hence a Post Trade ‘event’ . Roll fwd or Roll back is moving the date of an FX transaction forward/back but can be done using historic rate or at market. All these events go through a pricing workflow where a quoterequest is required, quoted, then tradeRequest etc.

These are NOT options, simple events to standard FX trades