Hi all, I am looking for the best open source auto-trading platform, based upon which I could build my auto trading system. Hopefully it is mature. It can link to InteractiveBrokers and has lots of users to discuss with, and has order management facilities. And it also has the capability to do both backtesting, papertrading, and real-trading. Moreover, hopefully it has lots of indicators, much like TradeStation. Please give me some pointers! Thank you! ----- Maybe I should drop the requirement of "lots of technical indicators", because for that maybe TradeStation is better anyway... so the workflow will always be to use TradeStation to do historical back-test and then use ATS+IB to do real trades... Any thoughts?
It's not a mature set of tools, but I'd encourage you to check out the following R packages: quantmod, xts, TTR, IBrokers, PerformanceAnalytics, and blotter. Unfortunately, blotter is still in heavy development (you can find it on r-forge).
I would say easily JSystemTrader and JBookTrader. http://groups.google.com/group/jsystemtrader http://code.google.com/p/jbooktrader/ They are written in Java. There is a group for each platform.
bodanker - what is the trick of "blotter"? I downloaded it and tried "the turtles" example. I don't get what is special about it other than it runs amazingly slow on my mac? (Also is there any documentation of it?)
What kind of "trick" do you expect? It's not "special" in the sense that it does something other software doesn't, but it's the only publicly-available way to run transaction-oriented trading simulations in R. "Heavy development" means "not optimized for speed", among other things. Try ?blotter from the R prompt for general package information. Many functions have man pages that can be accessed similiarly.
You're most welcome. I didn't think you were belittling it, but I did want to know if you thought it should do something that it doesn't currently do. If you have questions, you can contact the package maintainers (for any package) or post on the R-SIG-Finance mailing list. You'll need to sign up first, and please do read the posting guide - it will help you get the most out of the list.
Could you say more about these tools? Can they submit orders? How good are these tools compared to JSystemTrader and JBookTrader, etc.? What's special about these tools? Thanks!
I can't compare these tools to JSystemTrader or JBookTrader, since I have no experience with either of those packages. All I can say is the two Java packages seem geared toward developers, and the R packages are aimed more toward end-users. Though I'll concede that R has a steep learning curve if you have no programming experience. It won't be as easy to use as something like EclipseTrader, but it's very powerful. quantmod has charting functionality (and uses TTR's technical indicators) and data management, among other things. All the packages use xts, which is an eXtensible Time Series data class. It's optimized for time series data and allows for easy conversion to/from the several time series classes in R. IBrokers is a native R API to IB's TWS (it allows you to acquire data, submit orders, etc. *without any warranty!*). PerformanceAnalytics is a library of econometric functions for performance and risk analysis, utilizing the latest research in analysis of non-normal return streams. blotter provides transaction-oriented infrastructure for defining instruments, transactions, portfolios and accounts for trading systems and simulation. I hope that helps.
I think the biggest difference is the programming language/environment: R vs. C# or Java. C# and Java are object orientated application development languages with an edit/compile/run-cycle and big IDEs like Netbeans or MS Visual Studio. R is a mathematical/statistical scripting language with a command-line interface where each command modifies your workspace giving a more direct explorative form of programming. R is "mathematical" in the sense that it has basic primitives like vectors and shorthands for plotting and visualization. My sense is that R is very useful for prototyping which is where I spend most of my type pt. See: http://en.wikipedia.org/wiki/R_(programming_language) Anyway - when I started this I looked a lot at SmartQuant (which is commercial) and eventually made my own setup. Most frameworks seems to be focused on basic mechanical rules like single instrument moving averages-rules which I found to be unfruitful.