I just want to clarify that quantstrat in R is actually event driven. However it is not the same type of events as zipline, pyalgo or quantstarts "backtester" each of those engines consider 1 bar or 1 day to be the updating event. However quantstrat in R considers a new signal the updating event. This may actually make it more efficient since it does not have to re analyze or update every day where there is no activity.
The following 2 users say Thank You to treydog999 for this post:
Just a follow-up to my previous post RE: quantstrat vs zipline.
I've been playing around with quantstrat for a few weeks. I like it...but I don't like it (or R) enough to switch from python completely. I'll continue using it but I'm still a fan of zipline over quantstrat for now.
Honestly I really want to find that python is the better option. Which is why i started researching python and zipline in depth. I just do not feel comfortable with its lack of features at this moment. However if you are able to work with futures, pairs trading, and multi currency portfolios I would be very much interested.
The real reason is python is faster even though it requires about 60% more code. However my alternative stance is to continue to use R but then re code any bottle necks or execution in C++ and use RCCP to import that. Although its similar to what python can do, take in C++ code through a package. Also I think python would make a better end to end tech stack solution than R. Which in my current situation may become a large factor. However I do not really want to write my own custom backtester to handle these types of things. If I had to write something from scratch it would probably be in C++, since that is the fastest and most battle tested language in the computer world and heavily used in finance. Fastest testing and HFT speed executions.
What is the python equivalent of PerformanceAnalytics and financial instrument packages? What would you recommend as a viable entry way to python from R if i require the capabilities mentioned above?
I don't know enough about PerformanceAnalytics to say that there is a python equivalent. I will, however, say that zipline has everything built into it that I need for analyzing performance of the strategies.
Regarding zipline's immaturity...I agree. There are plenty of things missing, specifically the ability to work with futures. That's the biggest issue for me but the AlephNull fork of zipline seemingly addresses the future's issues although I haven't looked at AlephNull's version in detail yet.
From my experiences, Python does offer me more value overall for end-to-end solutions. I know there are plenty of people that use R for strat building and testing and it works well but python is the platform I've built everything else on so I'm planning on staying there if possible.
The following user says Thank You to ericbrown for this post:
I think that's really the wall right there. Blotter is really amazing. Although its the behind the scenes work it is really what gives a lot of the underlying functionality. Python nor Matlab has anything as nearly as robust as either of those 2 packages.
To be honest the backtester of quantstrat or zipline or any other tester for that matter are basically glorified loops. Its really the underlying functionality that makes R/quantstrat using blotter/PerfA shine.
The following user says Thank You to treydog999 for this post: