I've read documents that claim that SWIFT and FIX are not competing protocols for financial transactions and messaging. And yet, I have not come across a clear articulation of when to use SWIFT versus FIX. For example, I know that FIX can be used for most trading activities, e.g. getting a quote, placing an order, canceling an order, getting settlement instructions, managing positions, etc. And I was under the impression that SWIFT is primary for accomplishing electronic wire transfers of money between financial institutions, e.g. as part of the trade settlement process. However, now I'm told that SWIFT can also be used to handle rolls and closeouts. Am I right in thinking that there's a significant overlap in terms of the domains covered by the two protocols? Would anyone care to take a crack at clarifying?
FIX is frequently used for order entry traffic (new order, amend order, cancel order) and occasionally used for delivering market data when latency and performance are not critical. (FIX/FAST is quite different, that is an encoding that CME and others use to compress price feed information.)
If you are entering orders (either to a broker or directly to an exchange), FIX is a good choice, and is often your only choice.
SWIFT is actually not a standard per se; rather, it's an organization that operates a proprietary exchange network that utilizes a set of ISO messaging standards.
FIX is a non-proprietary set of messaging standards with no underlying network specified.
There is certainly overlap between the two, and there has been work to co-align these standards. I would say the choice between them would be made more on the transport requirements (e.g. SWIFT for a centralized guaranteed delivery) and on the fringes where they don't overlap.
A couple salient threads from the FIX website: