I have a few gigs of tick data and was curious what you guys felt was the best language to use for backtesting. Some background: I've know C++, Java, some Python. I know PHP.
What is the question? I mean, the best one is the one you know best that is suitable. PHP obviously is not suitable, Pyton not sure (assume no), C++ is very slow to develop in. Leaves Java.
R using quantstrat. It includes complete portfolio back-testing. http://blog.fosstrading.com/2011/08/introduction-to-quantstrat.html
If you really mean language then go for perl, fast and clear. Learning it shouldn't be too hard for you.
I would prefer to use python over java, but was curious how it would hold up when processing gigs of T&S data. Anyone used it for this?
comintel, Thanks, I have cloned the repo and am reviewing the code now. It's a new language to me but it might be a good year to learn a new language.
Curious if anyone has use haskell, erlang or possibly even ocaml for backtesting on tick data? I've wanted to learn one of these for quite a while, actually.
See also the book: http://www.amazon.com/Trading-Systems-development-optimisation-ebook/dp/B0052YFRGQ which illustrates developing several trading systems using R and quantstrat. The sample systems in the book are in included in the current quantstrat distribution. By the way, you have to learn to vectorize your code (minimize the use of explicit loops) for it to run efficiently. Otherwise it will run too slow.
One thing that people never seem to consider when throwing around different back testing options is the ability to move systems into production transparently. R is great for sketching out ideas, but you're never going to do any serious throughput in R, even if you do come up with something you're faced with re-coding the idea in whatever your execution system uses, a highly error prone process. The second thing to consider is the quality of the tool chain, debugging anything non-trivial in R is a PITA, debugging stuff in (for instance) visual studio is a piece of cake. Don't get me wrong, R is great and has it's place, but large scale back testing of production ready systems is not its strong suite. Stuff that does allow you to move systems into production transparently (Ninjatrader, for instance) is always hopelessly limited. IMO, you're either looking at C++ or C# (C# kills Java for speed) for the combination of speed and tool chain. Is writing a back tester in C++ hard, yep...but nothing worth doing is ever easy.