[R-SIG-Finance] Fwd: R to common lisp translator

Jeffrey Ryan jeffrey.ryan at lemnica.com
Tue Jan 25 18:08:00 CET 2011

One aside that Brian didn't mention is that 'quantstrat' (on R-forge,
and discussed heavily on this list) is making serious strides in
getting the backtesting times down.  Coupled with further xts
optimizations we've been making you are able to do many orders of
magnitude better than naïve loops in R.

Vectorizing code isn't easy, but it generally means you are running in
C at that point.  One of the critical issues about 'faster than R' is
that you are going to miss 'R'.  You could code the fastest
implementation in Fortran, but are you "able to" really ---  from top
to bottom?  Fortran is the extreme case, but LISP is pretty close in
terms of nowhere near complete.  Plus you'll suffer from miserable
adoption rates - no offense to the language or its enthusiasts (I am
one), but if it hasn't met with success yet... I'm not putting much
money or time into it.

Use R for prototyping, spool up some more machines to backtest if need
be, and if you really need to, write some faster bits in
C/C++/Fortran2003 ;-).  The idea of xts 'speed at all costs' is to
make the bits we all use over and over as fast as possible, and to let
the R-based logic have a bit more breathing room.

Migrating to another language in search of the holy grail of speed
isn't probably the best route at the end of the day.

My 2c,

On Tue, Jan 25, 2011 at 10:09 AM, Brian G. Peterson <brian at braverock.com> wrote:
> On 01/25/2011 10:01 AM, Andres Susrud wrote:
>> The bottlenecks is when running backtests for larger datasets.I'm also
>> looking at some other functions that are updated for every new timestep.
> We run backtests in R on complex indicators on tick data where the indicator
> updates every tick.  These complete backtests, including the path dependent
> trade generation rules run (for us) in seconds to a few minutes per day of
> tick data per instrument.  All our code is R (mostly) or C/C++ (either
> implied, like with TTR, or specific to our proprietary indicators).
>> for(i in 1:length(dataset)){
>> function(dataset[1:i])}
> This is a known performance bottleneck in R, and there is quite a lot of
> literature about either reworking this to a vectorized formulation, or
> moving such calculations which *must* be looped to C, Fortran, Java, or C++
> (for which good integration options already exist in R).
>> When generating BM's also for comparisons, I also find the speed in R a
>> bit
>> slow, and that's why I'm looking for the bridge that gives more speed.
> R-help would be a better place to see if people are doing Lisp in R in any
> repeatable, scalable, manner.
> Regards,
>   - Brian
> --
> Brian G. Peterson
> http://braverock.com/brian/
> Ph: 773-459-4973
> IM: bgpbraverock
> _______________________________________________
> R-SIG-Finance at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions
> should go.

Jeffrey Ryan
jeffrey.ryan at lemnica.com


More information about the R-SIG-Finance mailing list