Hacker News new | ask | show | jobs
by ewjordan 5883 days ago
+1 for IB - that's what I've been using for the past year, and they're quite solid from what I've seen. It's not a very elegant API (or trading platform [Java based + clunky] or documentation [brief at best], for that matter!), but they've got Java, C++, and Excel APIs that work, a solid selection of products, reliable performance (data kept flowing to me just fine throughout the whole mess today), and fair commissions (unless you're doing massive trades, it's usually around 2 bucks, so you can profitably offer liquidity against some pretty tight spreads). As far as algorithmic trading that's accessible to the average Joe, IB is as good as I've found. I think you need 10k to open an account, and have to maintain at least 25k to day-trade equities (a legal requirement, not an IB thing - you'll probably need at least this much if you're algo trading).

Just don't expect hand holding. You're supposed to be an experienced trader to even sign up with them (for a few products, like options, you have to pass a ridiculously easy test to trade them), and they won't save you from yourself - they'll happily let you buy 500k Euros with only $20k in your account, so be warned: if you'd made that mistake today, you'd be flat broke right now, though IIRC they do close out positions for you so at least you shouldn't end up too far in the red once your account is dunzo...

...which, to reiterate fnid2's point, it will be, unless you make sure to paper trade your damn code first! I'd also suggest that until you're really sure it's working, you never ever EVER leave it running unless you're watching it like a hawk. And code yourself a big bright red "PANIC" button that closes all your positions and shuts everything down, because you're going to end up in a situation some day where things go wonky and you just want to get out, but you'll have a dozen open positions and you don't want to have to click around to close them all.

Also, it's always a good idea to put in "everything's gone to hell" stops and place orders that time-out, even if your strategy doesn't require them (algo strategies don't typically use actual stop orders for exits): you never know when your connection might die, and you really don't want to end up stuck with nasty positions that you don't even have any way to track or close out b/c your cable went out...the positions that you hold when doing algo stuff can on occasion end up frighteningly large, which is only acceptable if you're holding them for very short period of time.