Imported from previous forum
FIX 4.1
Execution Report - MsgType 8
Fields: 200 - MaturityMonthYear,
205 - MaturityDay,
201 - PutOrCall,
202 - StrikePrice
206 - OptAttribute
Are these fields conditional (required for Options/Futures) or always optional?
[ original email was from Jim Northey - jnorthey@lasalletech.com ]
This can be a bit confusing, with the real answer being they are sort of conditionally required.
It might be better to think of these fields as optional, with counterparties trading options and futures needing to agree on which of these additional fields, used to identify the contract characteristics, are to be required.
For instance, in addition to Symbol(tag 55) equal to the contract symbol and SecurityType(tag 167)=OPT, most listed options markets only require MaturityMonthYear(tag 200), PutOrCall(201), and StrikePrice(202) to uniquely identify an option series.
For futures, in addition to Symbol(tag 55) equal to the contract symbol and SecurityType(167)=FUT, MaturityMonthYear(tag 200) is required.
It is conidered a good thing to include the MaturityDay(tag 205) on messages outbound from an exchange (marketplace), to indicate to the counterparty the actual expiration day - as the actual day of expiration changes from month to month because it is based upon the end of a specific week, such as an option class that expires the end of the third week of each month.
I would strongly recommend against making MaturityDay(tag 205) and OptAttribute(tag 206) required or conditionally required on any message. For standard listed options and futures contracts (those following a standard expiration calendar) you should epscially not require MaturityDay(tag 205) on request messages, such as New Order, Order Cancel Replace Request, Quote, Mass Quote. Since the expiration day of the month changes each month it is a great inconvenience to be required to store this and provide it on orders, etc.
If you are inquirying with respect to coding up validation rules within a FIX engine for automated validation, I think it best to leave these fields as optional, especially since you want to minimize the risk of rejecting an Execution Report back to an exchange (market place). Most exchanges do not handle rejected execution reports gracefully. For instance the CBOE would consider the rejection of an Execution Report for application level reasons or data validation errors by a counterparty as being non-compliant with their FIX interface.
Hope this helps.
> FIX 4.1
> Execution Report - MsgType 8
> Fields: 200 - MaturityMonthYear,
> 205 - MaturityDay,
> 201 - PutOrCall,
> 202 - StrikePrice
> 206 - OptAttribute
> Are these fields conditional (required for Options/Futures) or always optional?
>