couple of things regarding Tradestation (in its favor actually)
1) Tradestation can talk to Matlab. google 'Tradestation Matlab'...
2) Tradestation EasyLanguage can reference user-created .dll's - so if speed/extendability is an issue, this is not perfect, but it does alot certain things to be done...
3) The Tradestation community so large, and there is so much code out there already, that people have come up with hacks/tweaks to do all kinds of things.
For example, pairs trading, which can not be done 'out of the box' in TS, _can_ still be done, through use of either the GV.dll or ADE.dll's. Many other examples of this...
hope this helps...