Back to Community
Feature request: Strategy version control

I've noticed that when I change or refactor a strategy and then come back to it a few days, I can't remember what those changes were or why it's now broken!

It would be great to have some kind of version control to see the change history of a strategy and maybe even compare the performance of different versions of a single strategy.


5 responses

+1 awesome idea!

This is indeed a great idea +1. Have lost count of the number of times I've wanted to return to previous code versions of a strategy I'm working on because I've messed up something along the way.

Another couple of ideas I thought might be cool:

1) being able to add meta tags to a strategy, such as "pairs" or "mean reversion", and then allow for a user to be able to search their strategy library using such tags
2) related: once a user has a lot of strategies in their "My Algorithms" it might be nice to be able to use a "sort by" drop down, where you can sort by things like the Sharpe Ratio or the Cumulative Return of the strategies that are there

I've been thinking about this a bit more and a nice solution might be to have a "Commit" button alongside the "Save" button. When you hit "Commit", you would be required to add a comment (git or svn like) and that version would be saved to the version history. Having the ability to see version diffs like github would also be nice.

@Tim, I like your second idea a lot, +1!

Hi Aidan and Tim, thanks for the suggestions!

We just released a diff tool that you can use to compare two backtest runs of the same strategy. Just go to your backtest list for an algorithm, select two backtests, and click "Compare". For now, we're using a full backtest run as the trigger to save a version, but I can see having more granular control in the future like Aidan suggested with a "Commit" button.

Let us know what you guys think!

Jean, Quantopian

Bumping this request since it would be better than having to run a full backtest each time you wan to "commit" a revision