<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Bringing Silicon Valley to Wall Street</title><link href="/blog/" rel="alternate"/><link href="/blog/feeds/all.atom.xml" rel="self"/><id>/blog/</id><updated>2026-04-12T12:27:00-05:00</updated><entry><title>14 years and version 3</title><link href="/blog/14-years-and-version-3.html" rel="alternate"/><published>2026-04-12T12:27:00-05:00</published><updated>2026-04-12T12:27:00-05:00</updated><author><name>Shahbaz Chaudhary</name></author><id>tag:None,2026-04-12:/blog/14-years-and-version-3.html</id><summary type="html">&lt;p&gt;FIX Parser has been serving the trading community for nearly 14 years. This app has been so successful that there are multiple sites inspired by it — and one which is simply a clone :)&lt;/p&gt;
&lt;p&gt;Since the first release, almost a decade and a half ago, there is been one major overhaul …&lt;/p&gt;</summary><content type="html">&lt;p&gt;FIX Parser has been serving the trading community for nearly 14 years. This app has been so successful that there are multiple sites inspired by it — and one which is simply a clone :)&lt;/p&gt;
&lt;p&gt;Since the first release, almost a decade and a half ago, there is been one major overhaul. Today we are releasing another.&lt;/p&gt;
&lt;figure class="tmblr-full" data-orig-height="119" data-orig-width="364"&gt;&lt;img src="images/site-screenshot-v3.png" data-orig-height="119" data-orig-width="364"&gt;&lt;/figure&gt;

&lt;p&gt;The look has been modernized, and a handful of new features have been added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is a tag lookup in the top right-hand corner, which makes this app a handy FIX reference. Ironically the original version had it, but it was removed to simplify the UI — many of you asked for it back, so here it is.&lt;/li&gt;
&lt;li&gt;You can filter the view to only specific order IDs, Comp IDs, symbols, message types, and more. You can also exclude those same entities. Either way, you can focus on exactly the messages that matter to you. &lt;/li&gt;
&lt;li&gt;The mechanism to share encrypted FIX logs with clients or colleagues has been simplified.&lt;/li&gt;
&lt;li&gt;You can add or remove columns to focus on the fields that matter to you.&lt;/li&gt;
&lt;li&gt;Large messages are parsed significantly faster — the difference will surprise you.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is just the beginning of broader changes coming to the site — some on the public app, some available to clients running it behind their firewall, and some extending it into interesting new use cases. More on those soon. Let us know if you want to be part of an early access cohort.&lt;/p&gt;
&lt;p&gt;Your feedback is what has kept this among the most loved web apps on Wall Street. Bug reports and feature requests drive everything, and fan emails are always a pleasure to read. As many of you have noted, yes — we know this site has been copied. We take it as a compliment :) Please keep reaching out at &lt;a href="mailto:fixsanity@targetcompid.com"&gt;fixsanity@targetcompid.com&lt;/a&gt; (a nod to the site's original name).&lt;/p&gt;</content><category term="FIX parser"/><category term="FIX"/><category term="parser"/><category term="tool"/></entry><entry><title>Repeating Groups!</title><link href="/blog/repeating-groups.html" rel="alternate"/><published>2015-07-25T10:20:00-05:00</published><updated>2015-07-25T10:20:00-05:00</updated><author><name>Shahbaz Chaudhary</name></author><id>tag:None,2015-07-25:/blog/repeating-groups.html</id><summary type="html">&lt;p&gt;A very short post for a very big deal. &lt;a href="http://fixparser.targetcompid.com"&gt;FIX parser&lt;/a&gt; is now able to parse repeating groups! Repeating groups have been the most requested feature since the app was launched.&lt;/p&gt;
&lt;p&gt;I hesitated adding repeating groups because they break the simplicity of parsing FIX where keys are unique. Repeating group …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A very short post for a very big deal. &lt;a href="http://fixparser.targetcompid.com"&gt;FIX parser&lt;/a&gt; is now able to parse repeating groups! Repeating groups have been the most requested feature since the app was launched.&lt;/p&gt;
&lt;p&gt;I hesitated adding repeating groups because they break the simplicity of parsing FIX where keys are unique. Repeating group tags have to be identified and a mechanism has to be provided to handle custom repeating groups.&lt;/p&gt;
&lt;p&gt;The current implementation bypasses all of that. The algorithm infers the existence of repeating groups from the data in the FIX message, removing the need for keeping track of custom or standard NoXXX tags.&lt;/p&gt;
&lt;p&gt;Check it out. Your favorite &lt;a href="http://fixparser.targetcompid.com"&gt;FIX analysis tool&lt;/a&gt; just became even better :)&lt;/p&gt;</content><category term="FIX parser"/><category term="FIX"/><category term="parser"/><category term="tool"/></entry><entry><title>Positions and Open Orders</title><link href="/blog/positions-and-open-orders.html" rel="alternate"/><published>2015-07-15T10:20:00-05:00</published><updated>2015-07-15T10:20:00-05:00</updated><author><name>Shahbaz Chaudhary</name></author><id>tag:None,2015-07-15:/blog/positions-and-open-orders.html</id><summary type="html">&lt;p&gt;It's been a while. It is always nice to hear from so many of you regarding &lt;a href="http://fixparser.targetcompid.com"&gt;fix parser&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Over the next few days, fix parser will gain the ability to calculate your positions and open orders. This is a beta level feature, meaning many corner cases may not yet be …&lt;/p&gt;</summary><content type="html">&lt;p&gt;It's been a while. It is always nice to hear from so many of you regarding &lt;a href="http://fixparser.targetcompid.com"&gt;fix parser&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Over the next few days, fix parser will gain the ability to calculate your positions and open orders. This is a beta level feature, meaning many corner cases may not yet be covered. By default, it is hidden away behind two toggle buttons so if you are not interested, you will barely even notice it.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="274" data-orig-width="1150"&gt;&lt;img src="images/positions-v1.png" data-orig-height="274" data-orig-width="1150"&gt;&lt;/figure&gt;&lt;p&gt;If you are curious, take a look at the ‘Positions’ and ‘Open Orders’ table. There, you will find dashboard like tables which will summarize the positions you have accumulated and the orders which are still open.&lt;/p&gt;&lt;figure class="tmblr-full" data-orig-height="226" data-orig-width="1178"&gt;&lt;img src="images/openorders-v1.png" data-orig-height="226" data-orig-width="1178"&gt;&lt;/figure&gt;&lt;p&gt;If the feedback is positive, these features will be fleshed out. The possibilities are very interesting :).&lt;/p&gt;&lt;p&gt;Please send me a note if some calculation is wrong or if you have other ideas.&lt;/p&gt;</content><category term="FIX parser"/><category term="FIX"/><category term="parser"/><category term="tool"/></entry><entry><title>Even easier, even prettier - FIX Parser 2.0!</title><link href="/blog/even-easier-even-prettier-fix-parser-20.html" rel="alternate"/><published>2013-12-04T10:20:00-06:00</published><updated>2013-12-04T10:20:00-06:00</updated><author><name>Shahbaz Chaudhary</name></author><id>tag:None,2013-12-04:/blog/even-easier-even-prettier-fix-parser-20.html</id><summary type="html">&lt;p&gt;Almost a year ago, the first version of http://fixparser.targetcompid.com was released. Then, as now, it was the most user friendly and beautiful way to quickly comprehend FIX messages. Since then, several features have been added, including a few in response to user requests.&lt;/p&gt;
&lt;p&gt;A few minutes ago …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Almost a year ago, the first version of http://fixparser.targetcompid.com was released. Then, as now, it was the most user friendly and beautiful way to quickly comprehend FIX messages. Since then, several features have been added, including a few in response to user requests.&lt;/p&gt;
&lt;p&gt;A few minutes ago, a brand new version of the app was released. It is almost completely redesigned, front to back with complete focus on making your FIX life easier.&lt;/p&gt;
&lt;p&gt;Let's start with a non-feature. The new version adds a note "Your FIX data is never sent to any server, it stays private and local to your machine." This was always true, just wasn't posted. FIX parser is a completely client-side app. Once you've loaded the web page, you can even disconnect your computer from the internet and the app will continue to work.&lt;/p&gt;
&lt;p&gt;On to the new stuff.&lt;/p&gt;
&lt;p&gt;Timeline view now shows relevant details, such as symbol, side quantity and reject text right next to the event type itself. This feature alone doubles the utility of FIX Parser.&lt;/p&gt;
&lt;figure class="tmblr-full" data-orig-height="119" data-orig-width="364"&gt;&lt;img src="images/site-screenshot-v2-a.jpg" data-orig-height="119" data-orig-width="364"&gt;&lt;/figure&gt;

&lt;p&gt;What's the best way to double the usefulness once again? Show which events are related to each other. Click on a New Order and you will see fills related to it. Click on a session Reject and you will see the referenced event. Making simple, what used to be a pain.&lt;/p&gt;
&lt;figure class="tmblr-full" data-orig-height="160" data-orig-width="336"&gt;&lt;img src="images/site-screenshot-v2-b.jpg" data-orig-height="160" data-orig-width="336"&gt;&lt;/figure&gt;

&lt;p&gt;The look and feel has been updated. The colors contrast better, there is less noise and the focus is squarely on the events. Use the app on your desktop, tablet or even your phone. It works beautifully.&lt;/p&gt;
&lt;figure class="tmblr-full" data-orig-height="506" data-orig-width="500"&gt;&lt;img src="images/site-screenshot-v2.jpg" data-orig-height="506" data-orig-width="500"&gt;&lt;/figure&gt;

&lt;figure class="tmblr-full" data-orig-height="750" data-orig-width="474"&gt;&lt;img src="images/site-screenshot-v2-long.jpg" data-orig-height="750" data-orig-width="474"&gt;&lt;/figure&gt;

&lt;p&gt;Finally, a great deal of thought and love has been put into the code behind the app. The parsing logic has been completely rewritten to process data much more intelligently.&lt;/p&gt;
&lt;p&gt;For the technically minded, the server side story is very interesting in its own right. There is no server side code! The app is served off Google's cloud storage. Naturally, FIX messages can contain sensitive information, which is why no FIX data is ever sent outside your computer. There is no server to send it to!&lt;/p&gt;
&lt;p&gt;The first version was also a labor of love and still lives at http://fixparser.targetcompid.com/v1.0 . This version improves usefulness by an order of magnitude.&lt;/p&gt;
&lt;p&gt;There are several more ideas floating around in our heads. If you have an idea, a request or even a complaint, please send a note to fixsanity@targetcompid.com&lt;/p&gt;</content><category term="FIX parser"/><category term="FIX"/><category term="parser"/><category term="tool"/></entry><entry><title>What is FIX Protocol?</title><link href="/blog/what-is-fix-protocol.html" rel="alternate"/><published>2013-01-06T10:20:00-06:00</published><updated>2013-01-06T10:20:00-06:00</updated><author><name>Shahbaz Chaudhary</name></author><id>tag:None,2013-01-06:/blog/what-is-fix-protocol.html</id><summary type="html">&lt;p&gt;&lt;h1&gt;WHY IS FIX PROTOCOL NEEDED?&lt;/h1&gt;

&lt;h3&gt;FIX protocol is the blood which flows through the veins of the financial industry.&lt;/h3&gt;

&lt;p&gt;Say you go to your broker’s website and enter two orders:&lt;br&gt;
buy 100 shares of Google&lt;br&gt;
buy 100 shares of Toyota&lt;/p&gt;

&lt;p&gt;Your broker finds that Google trades on NASDAQ and …&lt;/p&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;h1&gt;WHY IS FIX PROTOCOL NEEDED?&lt;/h1&gt;

&lt;h3&gt;FIX protocol is the blood which flows through the veins of the financial industry.&lt;/h3&gt;

&lt;p&gt;Say you go to your broker’s website and enter two orders:&lt;br&gt;
buy 100 shares of Google&lt;br&gt;
buy 100 shares of Toyota&lt;/p&gt;

&lt;p&gt;Your broker finds that Google trades on NASDAQ and sends your order to KCG, a NASDAQ market maker. KCG finds that GS is offering a better price and, as forced by best execution rules, forwards the order to them. GS fills the order and sends a notification back to KCG, which routes the notification back to your broker.&lt;/p&gt;

&lt;p&gt;In parallel, your broker found that Toyota trades in Japan. Since your broker is a very small company, they use a third-party to route international orders. Your Toyota order was forwarded to MPN, which sent the order to a Japanese broker who then sent your order to Tokyo Stock Exchange. When your order is filled, that notification hops through all these companies (and continents) until it comes back to you. All this happens in less than a second.&lt;/p&gt;

&lt;p&gt;These two orders touched six different companies. If you enter the exact pair of orders one minute later, it is possible that a different set of companies see your orders.&lt;/p&gt;

&lt;p&gt;Every second of the day, financial companies(1) in almost every country communicate with each other. FIX protocol is the language used by all these companies to communicate trading information among themselves.&lt;/p&gt;

&lt;h2&gt;WHAT IS FIX PROTOCOL?&lt;/h2&gt;

&lt;p&gt;FIX protocol is a collection of standardized messages, exchanged between two parties.&lt;/p&gt;

&lt;p&gt;In order to understand why FIX protocol is the way it is, you have to remember that actual money is exchanging hands and assets are being moved around using this encoding. Great care must be taken to make sure that messages are not intercepted and tampered with. Each transaction must be recorded and must be available on request. If server and client lose their connection, they must be able to re-connect and re-synchronize their state. Exact time of each transaction must be recorded. There must be a mechanism of finding out if one of the parties is no longer responsive. FIX protocol handles all these requirements.&lt;/p&gt;

&lt;p&gt;A FIX session generally consists of a server, which listens to incoming connections and a client, which initiates the connection. If you run a trading program on your machine, your program probably contains a FIX client, which connects to a FIX server run by your broker. Your broker, in turn, probably has many FIX clients which connect to servers at various exchanges or other brokers.&lt;/p&gt;

&lt;p&gt;A typical session generally looks like this:&lt;br&gt;
Client connects to server and sends logon message. Server responds with a logon acknowledgement. Both parties now consider logon to be successful and start sending each other heartbeats. Client may send a new order request. The server responds with an acknowledgement that the order was received and is now considered “open” and in the market. If the order executes, the server sends notifications of fills. Before the order has finished trading, client can send a request to cancel the order or modify it. If possible, the server will accept and acknowledge this request to cancel or modify the order. Otherwise, this request will be rejected.&lt;/p&gt;

&lt;figure class="tmblr-full" data-orig-height="394" data-orig-width="426"&gt;&lt;img src="images/fix-seq-diagram.jpg" data-orig-height="394" data-orig-width="426"&gt;&lt;/figure&gt;&lt;h2&gt;WHAT DOES FIX PROTOCOL LOOK LIKE?&lt;/h2&gt;

&lt;p&gt;FIX is a relatively simple text based protocol (2). Logically, it is just a collection of tags and values:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;side=buy|symbol=GOOG|qty=100&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Along with business information, these messages also contain infrastructure or logistics information, such as protocol version, total size of the message,id of the client, id of the target, message number, timestamp, error checking checksum, etc.:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;version=FIX.4.2|size=118|senderid=CLIENT|targetid=SERVER|side=buy|symbol=GOOG|qty=100|timestamp=10:52am|checksum=123|&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To make the specification more modular, the message is divided into three parts: the header, the body and the footer.&lt;/p&gt;

&lt;p&gt;The header contains generic information such as fix version, length of message, type of message, sender id, target id, message sequence number, sending time. This information is required. The header may also contain optional information about encryption, routing, flags indicating attempts to resend information, etc.&lt;/p&gt;

&lt;p&gt;The trailer is much simpler and generally only contains a checksum value. This checksum is calculated through a standard algorithm and is used to make sure there was no encoding error, either when the message was generated or while it was being transmitted.&lt;/p&gt;

&lt;p&gt;The body contains business specific information: order quantities, symbol names, reference ids of orders to be canceled, etc.&lt;/p&gt;

&lt;p&gt;You can look at FIX messages and parse them into an easy to understand format at &lt;a href="http://fixparser.targetcompid.com"&gt;&lt;/a&gt;&lt;a href="http://fixparser.targetcompid.com"&gt;http://fixparser.targetcompid.com&lt;/a&gt;&lt;/p&gt;

&lt;figure class="tmblr-full" data-orig-height="306" data-orig-width="500"&gt;&lt;img src="images/site-screenshot-v1.jpg" data-orig-height="306" data-orig-width="500"&gt;&lt;/figure&gt;&lt;h2&gt;WHAT DOES FIX PROTOCOL REALLY LOOK LIKE?&lt;/h2&gt;

&lt;p&gt;FIX messages, as they are processed by programs look slightly different from what you saw earlier. Tags are actually numeric values, rather than text descriptions. In other words, an actual FIX message is looks a little more like this:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;8=FIX.4.1|9=61|35=A|34=1|49=EXEC|52=20121105-23:24:06|56=BANZAI|98=0|108=30|10=003|&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;FIX specifications map tags to their descriptions. &lt;a href="http://fixparser.targetcompid.com"&gt;&lt;/a&gt;&lt;a href="http://fixparser.targetcompid.com"&gt;http://fixparser.targetcompid.com&lt;/a&gt; has a handy utility to convert tag numbers to their text descriptions.&lt;/p&gt;

&lt;figure class="tmblr-full" data-orig-height="70" data-orig-width="500"&gt;&lt;img src="images/tag-lookup-v1.jpg" data-orig-height="70" data-orig-width="500"&gt;&lt;/figure&gt;&lt;p&gt;There is one minor difference between what is shown here and what FIX messages &lt;em&gt;actually&lt;/em&gt; look like. In real FIX messages, the tag/value pairs are separated by special ASCII character ‘\01’ or SOH (which is a non-displaying character), not ‘|’ or pipe:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;8=FIX.4.19=6135=A34=149=EXEC52=20121105-23:24:0656=BANZAI98=0108=3010=003&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;WHAT ELSE?&lt;/h2&gt;

&lt;p&gt;FIX is good at re-synchronization of state (recovering from disconnects, corrupt data, etc.). Each outgoing message is tagged with a sequence number. When a message is received, the sequence number of the message is checked against the expected sequence number. If the numbers don’t match, the missing messages can be requested again. The party responsible for re-sending messages can chose to send an ‘ignore’ command so time-sensitive messages aren’t transmitted again.&lt;/p&gt;

&lt;p&gt;Notice how this differs from some protocols which require an acknowledgement of &lt;em&gt;each&lt;/em&gt; message. In FIX, acknowledgements are limited to business level requests, such as new orders, cancel and modify requests.&lt;/p&gt;

&lt;h2&gt;HOW CAN I LEARN THE DETAILS?&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://www.fixprotocol.org/"&gt;&lt;/a&gt;&lt;a href="http://www.fixprotocol.org/"&gt;http://www.fixprotocol.org/&lt;/a&gt; provides all the specs and a fairly active forum. Membership to the website is free and the forum members are very helpful to newcomers. &lt;a href="http://quickfixj.com/"&gt;&lt;/a&gt;&lt;a href="http://quickfixj.com/"&gt;http://quickfixj.com/&lt;/a&gt; (java) and &lt;a href="http://www.quickfixengine.org/"&gt;&lt;/a&gt;&lt;a href="http://www.quickfixengine.org/"&gt;http://www.quickfixengine.org/&lt;/a&gt; (C++ with bindings for python, ruby, C#, etc.) are production quality open source implementations of FIX and are used by many companies in the industry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/falconair/fix.js"&gt;&lt;/a&gt;&lt;a href="https://github.com/falconair/fix.js"&gt;https://github.com/falconair/fix.js&lt;/a&gt; (javascript-node.js) and &lt;a href="https://github.com/falconair/lowlevelfix"&gt;&lt;/a&gt;&lt;a href="https://github.com/falconair/lowlevelfix"&gt;https://github.com/falconair/lowlevelfix&lt;/a&gt; (java) are two FIX implementations by the author. These are certainly not to be used in production, but will prove helpful understanding how FIX can be implemented in code.&lt;/p&gt;

&lt;p&gt;Realistically, such detailed knowledge of FIX is not required by most practitioners.&lt;/p&gt;

&lt;hr&gt;&lt;p&gt;(1) Currently FIX is used to mainly trade Equities (stocks). Slowly other instruments are also being traded with it.&lt;br&gt;
(2) Latest versions of FIX introduce non-ascii encodings. However, most of the street is still on version 4.0 to 4.4, which are text based.&lt;/p&gt;&lt;/p&gt;</content><category term="FIX parser"/><category term="FIX"/><category term="parser"/><category term="tool"/></entry><entry><title>fixparser.targetcompid.com</title><link href="/blog/fixparsertargetcompidcom.html" rel="alternate"/><published>2012-10-31T10:20:00-05:00</published><updated>2012-10-31T10:20:00-05:00</updated><author><name>Shahbaz Chaudhary</name></author><id>tag:None,2012-10-31:/blog/fixparsertargetcompidcom.html</id><summary type="html">&lt;p&gt;A few days ago we released http://fixparser.targetcompid.com. It is a very simple tool to translate FIX protocol message tags to their English keywords.&lt;/p&gt;
&lt;p&gt;Try it out, share it with your friends and family. Most of all, let us know how to improve it by dropping us a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;A few days ago we released http://fixparser.targetcompid.com. It is a very simple tool to translate FIX protocol message tags to their English keywords.&lt;/p&gt;
&lt;p&gt;Try it out, share it with your friends and family. Most of all, let us know how to improve it by dropping us a line at info@targetcompid.com&lt;/p&gt;</content><category term="FIX parser"/><category term="FIX"/><category term="parser"/><category term="tool"/></entry></feed>