What is the difference between the fields SecurityTradingStatus and TradingSessionSubID in the context of the message SecurityStatus? E.g. when a market place want to convey the status of a security.
- SecurityTradingStatus seem to be an older field, and is lacking values for intraday auctions.
- TradingSessionSubID is tied to TradingSessionID (Day, After-hours, etc), and is lacking a value for halted.
Which field should be used?
Regards,
Mikael Brännström
@mikaelbrannstrom SecurityTradingStatus is a) about the trading status and b) of a single security/instrument. TradingSession(Sub)ID is about a phase in the market for which certain rules apply to all securities traded during that phase. Hence the two fields are not mutually exclusive.
There is some semantic overlap and it depends on the granularity you need to design into your interface. For example, I would advise against using SecurityTradingStatus 21=Pre-open as this is a phase rather than a status, better modelled with TradingSessionSubID 1 = Pre-trading.
SecurityTradingStatus is more granular than TradingSession(Sub)ID. For example, you could be in TradingSessionID 1 = Day, TradingSessionSubID 6 = Scheduled intraday auction but SecurityTradingStatus 2 = Trading halt for a specific security.
Last not least, the status of a trading (sub)session should be modelled with TradSesStatus(340), e.g. 1 = Halted. That status then applies to all securities of that (sub)session. Note that TradSesStatus(340) is not part of SecurityStatus(35=f) as that message is about the status of a security and not about the status of a trading (sub)session. Note also the availability of SecurityMassStatus(35=CO) to convey the status of many securities with a single message, including an exception list.
Thanks Hanno. I’m still a little confused regarding TradingSessionSubID. It has values like:
9=Unscheduled intraday auction. An unscheduled intraday auction might be triggered by a circuit breaker
This does not sound like a phase in the market, more like current status in a single security. For example, how should a circuit breaker auction in a single security otherwise be conveyed?
Mikael, the design of messages in this area is complex and marketplaces have their own terminology and approach. FIX tries to cover the many different flavours as good as possible. The first attempt at describing the scenarios applicable to exchanges was made back in 2007 (see section 3.4 in https://www.fixtrading.org/packages/recommended-practices-fix-by-exchanges-phase-1/).
The third term apart from phase and status is event which is used to identify the trigger for a change of phase and/or status.
Now to your question. A phase is used to describe something that has a duration, even if it very short, e.g. only a few minutes in case of an auction. The circuit breaker in the case above is the event that causes the phase of continuous trading to change to an auction phase. An unscheduled intraday auction can apply to an entire market segment and not just a single security. The message context also plays a role, i.e. the scope of SecurityStatus(35=f) is a single security and TradingSessionSubID in this case applies only to that security. The scope of TradingSessionStatus(35=h) is a trading (sub)session but it can be limited with MarketSegmentID or elements of the Instrument component all the way down to a single security (this is not recommended, SecurityStatus(35=f) should be used for a single instrument).
This forum is not the right place for a detailed design discussion and can only provide general information. Typically, there is more than one way of modelling a given set of requirements in this area. You can contact me offline if you need specific help in your project.