I've been working with the C# (socket) API, mainly from this tutorial. I was a little bummed out when I realized that you're (I think) essentially making a connection back to the TWS application itself, which is then communicating with IB over TCP/IP. Is there some way to use your own FIX library and bypass the TWS application? I'd like to avoid handling a piece of client software; it really chops down the options for application design and portability.
IB used to have a FIX interface that they charged $500 (one-time) for. I don't see that on their website now. It says that you have to use TWS or the Gateway to connect over the Internet. The Gateway is code-compatible with the TWS and is simply the TWS with the GUI stripped out. It appears you can still connect directly to IB's servers via a dedicated (i.e. high-cost) connection which would be FIX compliant.
that is bullshit. No real risk checks are done at the TWS gateway nor TWS frontend. Pre-trade risk checks are done on IB's servers and regardless of whether you submit an order via API (tcp/ip) or via FIX message.
IB offers a rock solid FIX solution. I use it myself and have done so for years. You do not need to have the TWS gateway nor TWS open to submit orders via FIX.
it is direct FIX into IB's servers, having nothing whatsoever to do with IB's gateway nor TWS frontend. You do not need a dedicated line to be able to shoot FIX messages directly into IB's servers.
Some how we are never on the same page. I'm talking about direct FIX to the exchange bypassing their server. They can't offer that.
Maybe you could take a second to see why we always miss being on the same page: OP never talked about "direct FIX". He asked whether there is a way to "bypass the TWS application". That to my (and I guess most) understanding means he wanted to know whether you can basically send FIX messages without having to run the TWS frontend or TWS gateway. My answer to that was yes, you can. The issue was never about sending FIX messages directly to the exchange. But I apologize because I think I did misread your original message (notwithstanding your above mentioned misunderstanding of OP's intent); you just pointed out that sending FIX messages directly to the exchange would mean it bypassed IB's internal risk checks which I agree with. Sorry about that. (But again sending messages "direct" was never the topic.