What’s the best “scripting” language to use for implementing automated trading strategies?
We’ve recently launched (yet another?) 100% Java, 100% GPL algorithmic trading platform. Currently strategies for the platform need to be written in a combination of Java and Esper EPL. This is not terribly user friendly, particularly if you’re not a Java/SQL hacker.
What is your favourite algo “scripting” language, and are you fond enough of it to write some code to persuade it to sit easily on top of Java/EPL?
Algorithmic Trading System based on Esper, InteractiveBrokers and…
In my opinion it does absolutely make sense to have a combination of scripting language (like Esper EPL, Groovy or JRuby) and object oriented language (like Java or C#).
To express trading rules and come up with signals I personally prefer a rule-based language like Esper EPL, but for things like Execution and Position management I prefer to have something more procedural (like Java).
Also in case your strategy involves more than just a few simple technical indicators and you want to express rules that contain a temporal logic (like during, between, afterwards, parallel with, along with, finishes, begins with) Esper EPL is great way to do that. Even though I have to admit that there is a learning curve attached to it.
I’ve always preferred prototyping/scripting in Matlab and I’m very intrigued by your project. I’m well versed in Matlab/Java integration and this looks like a fun side-project. However, I have to ask, what is the ultimate goal for this project?
i am a fan of lua for scripting, very powerful. I am just starting using it, but can see the possibilities it can bring to the tool box.
I’m pleased to discover that you’re very intrigued by AlgoTrader.
This is very early days for what is after all an open source project. The “ultimate goal” of the active participants may change over time. We rather hope for more active participants over time also! The roadmap currently states:
FIX broker/market data interface based on QuickFix/J
Automated portfolio optimization
Integrated risk management
Automated parameter optimization
We’re currently trying to gauge what people’s interests are (if any!) regarding a “scripting” frontend. I understand that quants like Matlab, but I’m not a quant! However some other members of the group are, and whilst this is not my area of expertise I gather that QuantLib is such an obvious inclusion that it’s not even mentioned on the roadmap.
From my own point of view, I have an irrational fear of automated trading using software for which I do not have access to the source code. I also believe (irrationally also?) that open source ultimately produces more reliable software too. My personal short term goal is reliable and extensible platform independent software for which I have access to the source code and which I can rely on for my own strategy development and automated trading. Along the way I get to work with some interesting new people, and learn some fancy new tricks with Enterprise Java and CEP too.
Does that go some way towards answering your question?
P.S. Any more votes for Matlab or Lua?
I’d vote for R over Matlab any day for probability & statistics related work, integration of R with ruby (and ruby on rails) is in beta stage, but there’s probably a very good future there as ruby development is drastically faster compared to raw java
while R is better for prob/statistics work natively, Matlab’s native support for Java makes it much easier to expand a Matlab prototype into a fully functioning model (i.e. you can start transferring the code object by object to Java while keeping everything else fixed).
I checked out a copy of AlgoTrader last night. I’ll PM you when I get a better feel for your code. Thanks for sharing!
thanks, I’ll look into it, I suppose you’re familiar with the JRI project? http://www.rforge.net/JRI/
NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!