Python is a beautiful language. It sits well with me for some reason I cannot explain. Sort of like liking one beautiful woman as opposed to another. For extreme realtime trading, it won't work and I have no problem using C++, or soon C++11 (which is barely recognizable as C) as I am very dextrous in that language. But for slower style stuff, I can't imagine why anyone would use anything else - it is so simple to get things going and there are so many "libraries" that further simplify work, this one being one the best.
Pardon my naive, perhaps, question, but what exactly do you expect to get from this that you may not get by using Amibroker that seems to be better suited for this kind of task than most other retail products in its class? Processing more data? Is that what you are basically after?
Very well said.. I'm just not familiar with getting python up and going to execute trades so I was curious but after a quick search I saw that IB seems to work with it. Thanks again!
I have been playing around with Matplotlib for real-time charting, wxPython,et al http://matplotlib.sourceforge.net/ i.e. but for cooking up some backtesting strats PyAlgoTrade looks sweet, will be trying that out next.
The questions is a perfectly reasonable one. The reason for these sort of systems as opposed to canned systems like AmiBroker or NinjaTrder etc, is that a) you have the power of a real interactive language, python, which makes the entire system scriptable b) the power of unix (awk sed perl etc etc) c) complete source to the underlying mechanism for executing strategies. d) Is automatically 64-bit if run correctly for handling huge amounts of data autotmatically. e) It is extremely powerful, simple, and free. f) You can bind to thousands of python libraries. g) highly adaptable That means that just about anything is possible. With many canned software trading systems, they solve one or two problems, most of them are highly geared towards the sort of systems that are chart based. Since they are not open source or are written poorly, it makes it more difficult to massage it into what you need. For example, try plotting the indicator of an indicator in Ninja. Try testing or realtime trading a system that is defined by multiple symbols/legs. Try hooking up Ninja to use CUDA. He has done quite a bit in the infrastructure already, and with a little more, it could turn into an amazing realtime system as well. It is not just processing more data. It is the way the system helps or aids in the analysis of more and more complex ways to test/trade, and making it a joy to do so.