optionsgeek
Yeah, I have been interested in a Mass Quoter for about two years now. You are right about all the moving pieces, but that is what motivates me. This is a very difficult problem to design, and program correctly.
I wrote it in FIX because I wanted to get acquainted with everything but the actual protocol to communicate Mass Quotes. Since I understood the CBOE FIX specification well, it was the lowest hanging fruit. Plus the CBOE is super friendly to developers. Figured if I got everything else right, this would be the easy part to change later of the whole project. So it is more of a testing ground for me than a final product. Besides, for options, it is the stock feed that really matters.
Well, since the system is distributed, and the FIX engine can handle many simultaneous connections at once, it can handle many many symbols. The computationally intensive part is not the FIX engine, but is all the computation that goes on from the time the underlyer ticks, e.g., from volcurve-> to implied vol->greek computation->quoting "script"->to filling the data structures->to FIX engine, etc...I am working on offloading the whole thing to CUDA. Finally, one of the most important parts is the conditional quoting module. I would say this is probably the most important feature of any automated program, but often overlooked.
). On the options side, my program understands CBOE FIX market data, and Activ market data. If I were to turn this into production level product, I would probably write directly to exchange feeds on the stock side, ARCA, INET, etc. The options side would probably also be required, but I think I would just do PHLX, ISE and I already have CBOE. Alternatively, OPRA is fine too.
Usually what happens is that a trader or two want a custom solution, and then they end up backing the whole thing. They get killer software, and a tech firm. That is how OptionsCity got their start I believe. Who the heck wants to pay ORC $20K ++ a month per seat for Liquidator? And that only gets you like 200 symbols.
Quote from optionsgeek:
Nitro,
Sounds like you have been looking at this space in detail. Writing a mass quoter is big deal - lots of moving parts.
Yeah, I have been interested in a Mass Quoter for about two years now. You are right about all the moving pieces, but that is what motivates me. This is a very difficult problem to design, and program correctly.
Well, the CBOE implemented the CBOE FIX engine on top of the CMi engine, so there is a small penalty to pay. Eventually I expect CMi to die and FIX to take over, using FAST (I am not a fan of FAST since it is stateful over UDP. Brilliant aye?)You say you are doing this in FIX - don't you find that message latency makes it hard to keep up with the market?
I wrote it in FIX because I wanted to get acquainted with everything but the actual protocol to communicate Mass Quotes. Since I understood the CBOE FIX specification well, it was the lowest hanging fruit. Plus the CBOE is super friendly to developers. Figured if I got everything else right, this would be the easy part to change later of the whole project. So it is more of a testing ground for me than a final product. Besides, for options, it is the stock feed that really matters.
How many option chains/underliers can you handle simulatenously?
Well, since the system is distributed, and the FIX engine can handle many simultaneous connections at once, it can handle many many symbols. The computationally intensive part is not the FIX engine, but is all the computation that goes on from the time the underlyer ticks, e.g., from volcurve-> to implied vol->greek computation->quoting "script"->to filling the data structures->to FIX engine, etc...I am working on offloading the whole thing to CUDA. Finally, one of the most important parts is the conditional quoting module. I would say this is probably the most important feature of any automated program, but often overlooked.
I wrote my program to IRealTimeData interface, and then I attach it to any stock feed by just implementing a given feed. This way my program can work with any feed implementation and my program has no idea where the data is coming from. I program to interfaces. I have done this for the stock quotes in Activ, Sterling, Interactive Brokers (notice no direct ECN feeds on the stock sideWho's your market data provider?
Sad, but so true. Direct feeds are the only way to go if you want to be a player. Activ, Spryware, all a bunch of crap.I've never had a provider yet who hasn't disappointed. Have you looked at hardware accelerated solutions at all? What technology platform are you writing this in? Did you write your own pricing analytics or are you using third party?
I don't know yet. Right now it is just for me. If there was interest I would probably form a company around it, but it is just me. I would love to find a good programmer that does exchange feed connectivity to become my partner.Are you marketing your solution or is this just for your own.
Usually what happens is that a trader or two want a custom solution, and then they end up backing the whole thing. They get killer software, and a tech firm. That is how OptionsCity got their start I believe. Who the heck wants to pay ORC $20K ++ a month per seat for Liquidator? And that only gets you like 200 symbols.