OnClose OrdType confusion

Imported from previous forum

[ original email was from John Prewett - jprewett@lavatrading.com ]
I can see that FIX.5.0 eliminates the various “OnClose” OrdTypes in favor of putting this timing specification into 59=7 TimeInForce=AtTheClose instead which is a very good thing … However some of us must support earlier versions of FIX.

In FIX.4.2 I can see:
o OrdType=5 MarketOnClose
o OrdType=A OnClose
o OrdType=B LimitOnClose

Now I fully understand MarketOnClose and LimitOnClose.
What is OnClose?

If an “OnClose” 40=A order is supplied without a price, would that be the same as 40=5 “MarketOnClose”?
If an “OnClose” 40=A order is supplied with a price, would that be the same as 40=B “LimitOnClose”?

Thanks.

JohnP

[ original email was from Ryan Pierce (FPL Technical Director) - ryan.pierce@fixprotocol.org ]
> Now I fully understand MarketOnClose and LimitOnClose. What is OnClose?

That is a very good question.

What we’re talking about here is FIX in the Jurassic era. FIX began as an experiment so Fidelity could trade with Salomon, and it evolved in the mid-90’s into an open protocol, centered around buy-side to sell-side electronic communication. The de-facto standard protocol at the time was CMS, which was used between the sell-sides and NYSE and AMEX. CMS was not self-describing, and as such would be a poor choice for buy-side to sell-side communications that needed to be extensible. FIX’s Tag=Value syntax was self-describing and extensible. But NYSE was the 800 lbs gorilla at the time, and much of the business modeling of CMS heavily influenced FIX’s early period.

As time passed, FIX grew further from its CMS origins. One peculiarity of CMS was that it blurred the distinction between OrdType and TimeInForce. Market On Close, if I’m not mistaken, was represented in CMS as “MKT CLO” appearing on the same line, even though Time In Force values (like DAY, GTC, etc.) appeared on a different line. This, incidentally, was inconsistent with opening orders; a Market on Open, in CMS, used a Time In Force of “OPG”. This design method was carried into FIX, and later deprecated so that the “Market” and “Limit” (OrdTypes) were de-coupled from “On Close”. (TimeInForce.)

Excavating through the archeological record, I find that FIX 4.0, which contained the fields, didn’t have a glossary. This was added in FIX 4.1. It includes a definition for OnClose:

An odd-lot order to buy or sell to be filled at the price of the closing round-lot offer

  • plus the differential, for a buy order, or

  • minus the differential, for a sell order,

    or

A crossing session order to buy or sell at the closing price. [OrdType]

Market On Close is defined as:

A round-lot order to be executed at - or as near to as practical - the close of the market. [OrdType]

Limit On Close is undefined in the FIX 4.1 glossary.

This jogged my memory, and I seem to recall that these glossary definitions may have been pulled from the CMS spec. And, at least in CMS, “On Close” was distinct from both “Market on Close” and “Limit on Close” since “On Close” had to do with odd lots or with a specific crossing session.

In FIX 5.0 Vol 6 Appendix 6-F example 11 shows that both “On close” and “Market on Close” map the same way, into TimeInForce=7 and OrdType=1.

I think one of the reasons why these three TimeInForce values were deprecated was that “On Close” was always confusing. It’s not Market On Close, and it’s not Limit On Close, so what is it? I imagine that the vast majority of OrdType=A users probably weren’t using it consistently with the FIX 4.1 glossary, which makes it clear that OrdType=A is for two very highly specialized cases. Deprecating these three values greatly simplified things.

I hope this helps.