How to mark an order is from an algo engine?

Imported from previous forum

Hi there,

Due to regulatory requirement, the buy-side needs to mark an order to indicate to the sell-side that it is generated from an algo engine.

What is the correct way to do that in FIX 4.2 and above? Is there something like IS_ALGO = Y ?

Daniel.

Use Tag 376 (ComplianceID)

FIXimate

http://www.fixtradingcommunity.org/FIXimate/FIXimate3.0/en/FIX.5.0SP2/tag376.html

Tag = 376

Field Name = ComplianceID

XML Name = @ComplianceID

Data Type = String

Description = ID used to represent this transaction for compliance purposes (e.g. OATS reporting).

Added = FIX.4.2

This Tag is present since FIX.4.2 till the latest FIX.5.0SP2

Blog : Recommended FIX tags for Flagging Algorithmic Orders for the German High Frequency Trading Act

http://www.fixtradingcommunity.org/pg/blog/fplpo/read/1074194/recommended-fix-tags-for-flagging-algorithmic-orders-for-the-german-high-frequency-trading-act

The above blog discusses 376 for German HFT, FIXimate gives example as OATS reporting (for FINRA USA), I believe its recommended for use globally in all regulatory / compliance reporting. In FIXimate Tag 376 is marked as not required in NewOrderSingle, please look thru all message types, Components where it could be used.

Hi Mahesh,

Thanks for your reply.

I have read both of those links and I read them differently than you.

In FIXimate, it talks about tag 376 for being “ID used to represent this transaction for compliance purposes (e.g. OATS reporting).”. First of all, I don’t understand what are the valid values. Is it just free text like tag 58? Secondly, it sounds to me that it is used for indicating the transaction (e.g. a new order or a order cancel) sent is for compliance purpose and the sell-side doesn’t need to “work” the order?

In the seoncd link: it said it can be used for “identification of specific trading algorithms under the German High Frequency Trading Act.”. So it sounds to me that it is used for putting the name of a particular algo e.g. Snipper.

What is your thought?

Daniel.

Hello

376 can be used for any regulatory requirement where it is required to identify an algorithm and so deliberately doesn’t impose any specific format (i.e. it’s a free text field). I’m not familiar with the OATS requirements but I am familiar with the German requirements where the regulators require these to be expressed as a 32 bit number. Looking ahead to MiFID 2 there are actually (in the current RTS anyway) two separate algorithm identifiers and so we may possibly need to add a second field (this will be looked at in due course by the GTC to determine whether this is necessary or whether there’s an existing field we can use).
JIm.

Hello Jim,

Thanks for clarifying the free text format usage of the tag 376.

Actually the regultory requirement is just to identify that an order is generated by an algo engine. There is no need to identify which algorithm (or strategy) specifically.

So do you see a problem if I use that tag with the value for example “ALGO Order” in it?

Daniel.

If you need to use FIX 4.2 then tag 376 is probably the simplest way, also if you just need a flag. It is indeed to identify a specific algo which, for example, also has to be registered with the regulator who can then map the ID to an algo description. If you want it to be generic, just use “ALGO”. It is then also easier to replace it with a more specific value down the road if you are required to.

Another option from a higher FIX version is to use CustOrderHandlingInst(1031) with H=“Algo engine”.

Hi Hanno,

Thanks for clarifying. I am using FIX 4.2, so using tag 376 is the way to go with the additional benefit of future proof.

The tag 1031 = H is the perfect solution though.

Cheers all.

Daniel.

Since Tag 376 is optional, would not just the presence of this Tag in a FIX message indicate its an Algo order ? Also from what I understand, the scope of 376 is within the same CompID hierarchy. As I understand, there could be bilateral agreements between sell side and buy side on permitted values in 376.

ComplianceID is to identify any compliance relevant information and algo usage is just one example and a new one as well. There were no algo engines in today’s sense when tag 376 was introduced in FIX 4.2 back in 2000. Valid values are not pre-defined and subject to bilateral agreement unless a regulator asks for specific information. Where do you see the link to the CompID hierarchy? As of FIX 4.3 one would rather look at the Parties block to determine the firm from a business perspective.