Its' been a while since I shared FIX protocol interview questions. So here is the new set of top 20 FIX protocol interview questions. These are the question which is mostly asked in while interviewing any developer or support professional which has some knowledge of FIX protocol. Given the number of clients, broker and exchange using FIX protocol it’s really a great thing to have in your resume and can land you some very well paying jobs in street. These questions not only serve as quick reference before heading for a FIX protocol job interview but also opens new path of learning for guys who are new in FIX and trying to understand it. I am not giving answers of these questions initially and leaving for you guys to find it out but I will update these post some time later to include answers of below FIX protocol questions, for now these are questions which many of you definitely be aware and for new comers it’s an exercise for them to find answers. You can definitely ask me if you have any difficulty finding answers of any of these questions by reading FIX protocol technical specification or by taking help of any good Fixionary.
Top 20 FIX Protocol Interview Questions
Here are some 20 questions from FIX protocol, collected from various Investment bank interviews e.g. JP Morgan, Barclays, Morgan Stanley, Citibank, and Goldman Sachs.
1. What is the difference between OrdStatus and ExecType in FIX4.4?
OrdStatus (39) indicates the current status of the order. ExecType (150) was introduced in 4.2 to indicate the type of execution report received. For example, if you replace an order that is already partially filled, the order status is Partially Filled but the ExecType for the replace confirmation is Replaced (FIX 4.2).
2. What is the minimum length of ClOrdID?
ClOrdID is a mandatory string field so the minimum length is 1. Obviously one character doesn't make much sense because of limited flexibility. Length is determined by the combination of the executing party / vendor / exchange.
3. Which tag in FIX 4.4 can be used to denote Smart Order Routing?
There is no specific tag in FIX 4.4 that denotes Smart Order Routing. Brokers and/or executing destinations can decide from different options. They can simply go with a user-defined tag or with a standard tag such as HandlInst (21), ExDestination (100) or SecurityExchange (207).
4. What is business message reject in FIX Protocol?
The Business Message Reject (j) message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. For example, if the fix engine accepts a tag that is not supported by the FIX application, this type of reject should be sent. See here for more detailed answer
5. What do you mean by DK (Don't know) Trade?
Don't Know Trade is a MessageType (Q) that indicates a reject of a received execution report. For example, if you only sent one order today with ClOrdID = 10 but you received an execution report from an execution destination for ClOrdID = 20, your FIX application should reject this execution report.
6. Which tag is used in FIX Protocol to denote an order is for equity or for future options?
FIX tag 167 (SecurityType) should be used to identity asset type. In FIX 4.4, you are recommended to use CFICode (461).
7. What is tag RoutingID and why does it used in FIX Protocol?
RoutingID (217) is used to specify a specific routing destination. It is part of a repeating group so it's convenient if you want to specify more than one destination. It's only defined for 3 MessageTypes (Email, News, IOI); and only IOI is commonly used. If you are asked this on an interview, well, good luck with that one.
8. Can you have different OrderID on NewOrder and Modification and Cancel messages?
OrderID is the identifier generally provided on execution reports from the exchange / execution destination. It should remain the same throughout a trade's lifecycle regardless if you replace or cancel.
9. What is FIX Session?
It's link to facilitate communication between FIX engines. At low level it's just a TCP/IP connection with client authentication detail. See here for more detailed answer.
10. What do you mean by EOD of FIX Session?
EOD stands for End of Day and indicates a reset of sequence numbers to 1/1 in regards to a FIX session. Both incoming and outgoing sequence numbers are reset as part of EOD. Commercial FIX engines like QuickFIX, Appia or Cameron FIX allows you to specify different EOD time for different client session.
11. Which FIX tag is used to denote "CARE" order in FIX Protocol?
FIX tag 21 (HandlInst) is used to indicate a CARE order. A care order is handled manually by either a trader or someone on the execution side; therefore 21=3 (manual) is meant for this.
12. Which tag is used to denote trading capacity of order e.g. Prop or Agency?
Up until FIX 4.2, Rule80A (47) was used to indicate order capacity. Starting in FIX 4.3, OrderCapacity (528) was introduced.
13. How do you identify FIX version of a FIX message?
This can be done either at the FIX engine configuration level or looking at the FIX message header. FIX tag 8 indicates FIX version.
14. Which tag is used to denote MsgType in FIX protocol?
MessageType is tag 35. Different types of messages e.g. NewOrderSingle, OrderCancelRequest, OrderReplaceRequest are just different values of tag 35 e.g. 35=D is new order, 35=G is modification and 35=F is cancel request.
15. How do you handle out of sequence messages e.g. you received Cancelled ack and then a fill?
The handling of out of sequence messages varies per firm. If a cancel is received prior to a fill, the cancel could close the order and the fill can get rejected. Some firms will allow the fill to be processed. There really is no standard here.
16. What do you do if your session gets disconnected intraday?
Pray. This is not a good thing. Just don't reset the sequence numbers; that could lead to a very costly error and possibly the loss of your job. Coordinate with the counterparty to get things back to normal. Most fix engine configurations support automatic re-connections so be careful.
17. What are heartbeat messages which tag you use to identify heartbeat messages?
Heartbeat messages are keep-alive messages; letting the other FIX engine know that you are still alive and active. Heartbeat is a MessageType (35=0).
18. What is LeavesQty which tag is used to denote LeavesQty in fix message?
LeavesQty (151) indicates how much quality is left to be executed on the order. If value of tag 151 is zero it means order is fully executed and order status would be filled, while if value of LeavesQty is greater than zero means trade is only partially executed and order status would be partial fill.
19. What is equivalent of tag 20 ExecTransType in FIX 4.4?
ExecTransType was removed in FIX 4.3 to eliminate confusion since ExecType also is used to indicate type of execution report received. The old values of ExecTransType have been merged into ExecType (150). 20=1 --> 150=H | 20=2 --> 150=G | 20=3 --> 150=I. See here to learn more.
20. What are various FIX tags which are used for symbology identification?
The most common FIX tag used for symbology identification is tag 55 (Symbol). You can also use the combination of tag 22 (IDSource) and 48 (SecurityID).
New FIX Protocol interview Question
I have created this new FIX Protocol Interview section to include new questions contributed by my reader and different sources. Please let me know if you have asked a FIX Protocol interview question which is not present here and I will include it for community’s benefit.
1. You placed a new order and then modification and before modification a cancel, what would be the OrigClOrdid of Cancel?
Since Modification request is not accepted yet so ClOrdID of original order will be in place So Cancel Request must contain OrigClOrdID (Tag 41) same as ClOrdID of Original Order.
2. You placed a new order and then place a replace request and received Pending replace message and then a fill, what would be ClOrdID of the fill?
Since OrderCancelReplaceRequest (tag 35=F) is not accepted, ClOrdID of NewOrder will be in force and fill will contain ClOrdID of the NewOrderSingle (35=A). It’s only after your received ExecutionReport with ExecType=Replaced your ClOrdID of active order gets updated. Pending Replace is just indication that broker or exchange received a Replace Request but not yet accepted or rejected it.
3. You placed a new order got a partial fill and place a replace and got replaced what would be the value of tag 39 and tag 150.
Since Order is in Partial fill status so tag 39 OrdStatus will contain partial fill and ExecType will be Replaced I thing 150=5 and 39=1.
Related post:
Financial Information Exchange (FIX) Protocol Interview Questions Answers
FIX protocol and fix messaging interview questions
Interview question asked on FINANCIAL INFORMATION EXCHANGE (FIX) Protocol
FIX Protocol Tutorial for beginners
FIX Protocol Session or Admin messages tutorial
Fix Session is not connecting how to diagnose it?
Tidak ada komentar:
Posting Komentar