Registered: Mar 2004
09-17-11 04:51 PM
I first started a few years ago programming my C# trading tools on top of the TWSLink COM object because the developer promised it would be free forever for personal trading. Well, I guess he had big dreams of being this corporate provider because that was a lie. It went commercial a year into my development. Then, I switched over to the open source IBClient library and then on to IBCSharp because that developer had built some nice additions on top of IBClient.
I've finally come full circle and converted that back to be compatible with IB's ActiveX component (a super trivial port). With surprising little code, you can even embed several Tws.ocx ActiveX controls onto a hidden window and your app can access multiple IB accounts to trade (multiple retail and IRA accounts...I'm not into the whole FA thing). I'd rather have the less hassle of non-threading issues with using the ActiveX control and knowing that it's going to be kept up to date immediately whenever IB comes out with new API versions.
Regarding TradeLink, I don't like the idea of the IB direct communication part being a server instead of a library and then having that connected through some obscure Microsoft Windows messaging technique to get your commands to and from that server before it finally goes on to the TWS. I don't have a problem with their higher level trading interface but really, that C++ coded server needs to go and be replaced with a C# library.
TradeLink itself doesn't look like it's that hard to pick up at the trade programming level if you have the rudimentary C# programming skills. You can go through the videos with your trusty "C# 4.0 in a Nutshell" book at your side and do okay. Hats off to the wonderful developers involved in this free software effort. They have a passion for their work and THAT is the most important thing about that project.
Here's my personal predicament (aka "gee, you're such a whiner!"):
I love the eSignal 10.x charting software. I've been using them for 8 years now. They've got a great data-to-scripting interface and that model just simply works wonderfully for someone who wants to pile on multiple scripts on one chart.
My #1 complaint about them is that they have zero interest in developing any auto-trading component within their scripting API. It's as though they want you to trade by hand (by the newer tools they're providing) simply because their new owners serve two masters where the one which makes them the most $$$ have high frequency trading interests and they don't want retail traders getting in on that gig. [I have no inside info on this, but c'mon, common sense tells me that if private equity took Interactive Data Corp off the NYSE, you've got big bucks involved which doesn't see the retail components as being their priority money maker].
So, you've got 11.x. Big deal. Eye candy for the most part. If you're a serious futures trader who is concentrating on making a living from just several symbols (futures or ETFs or index options) to get that juicy 60/40 Section 1256 Contract tax consideration, you see 11.x as a 1.0 of something very disconnected to helping the retail trader get anything major out of in comparison to the well thought-out v10 product series.
So, I'm looking around and seeing the alternative trading landscapes and here's what I see:
You've got Amibroker, Ensign, TradeStation, MultiCharts (i.e., TradeStation++), QuoteTracker (going dead after 2011), Sierra Charts and NinjaTrader and several others which we all know but these are really the top ones I see year after year talked about among active day traders.
A prior poster here has it right. What it all boils down to is that you're going to get pulled into their little worlds and always feel like there's something missing.
I'll tell you what's missing in all that I've mentioned. There's no one out there who has fully opened up their charting interface to the point where you can change what you don't like about it through your own plugins. Charting components should do the heavy lifting for you and manage all the junk you want to put on it, giving you an easy way to reference and manipulate the objects interactively and programatically.
For example, if I initiate drawing a line on the chart interactively, then any scripting would get updates to the effect that that line was created and could reference and manipulate it independently. This has great value in coming up with direct chart programming interfaces which are not canned (i.e., your vendor has decided what you can and cannot do with a DCT interface and you're 100% out of luck if you don't like how they implemented something).
Charting components, trading tools and the broker interfaces should be harnessed in a way that they do a wonderful job of managing the very tedious parts of such a system which you would have no interest in changing because they're at the very base level of what just about every package out there has to to for bookkeeping chores.
But that's where it ends in their "power" to control what you can and cannot do. The rest should be default plugin implementations which the majority of users would tend to gravitate towards yet anyone with development skills could completely alter for their own needs and tastes or chunk it and build their own to replace it.
It's a meta-trading platform. No such animal exists because you don't have to think at such a higher architectural level to make a commercially viable product. But you do need to think like this if your goal is to keep from staying pigeon-holed by any one particular charting vendor who limits (inadvertently, or otherwise) your creativity because they don't have the resources to do what you want done.
Sorry for the ramble and whining, but I've got 25+ years of software development experience and 8 years of futures trading experience and I am at the proficiency area in both fields where I have become feed to the teeth with the current state of the art in charting/trading software. It is so average in comparison to what it could be.
[I'm not making any claims of software brilliancy on my part either. I'm just saying that since I've been trading full-time for so long now and know what I would like to have to make my job easier, I look out on what is there and I don't see anyone else who IS brilliant and "gets it" because they turned to software development...because they can't trade for a living and make the big $$$ that way. ;-)]