Back to all posts

Open Source comes to Finance

A few weeks back, we posted our manifesto, and pounded our chests about the need for openness in finance. Today, I’m writing to announce that we are walking the walk: we have open-sourced our backtesting engine Zipline. The frontman of our Zipline band, Thomas Wiecki, demoed Zipline to a full house at PyData NYC. In case you missed it, here he is knocking ‘em dead. (If you missed PyData, you should go next year!)

Simulated Algorithmic Trading with Zipline - Thomas Wiecki from Continuum Analytics on Vimeo.

The response has been inspiring. In just a week, we have over 40 followers, forks, and a bugfix delivered by the community. More than that, there is genuine enthusiasm for an open-source backtester. You can feel the excitement people have when they connect with other quant developers, and they share our aspiration to create a standard approach to historical simulation.

Before we released Zipline, the whole Quantopian team got together to decide if we were ready. It is one thing to have your audience experience the shiny outside of your application, and quite another to let them see its guts. With the help of Yoav Shapira, we planned our release of Zipline with the same care that went into our website launch. As we sprinted to ready our PyPI package, clean up our repo, and prepare the documentation, we all had the same pit in our stomachs: was this work of quality that we were willing to share with the world? So far, it looks like we did it right!

Zipline is young, and we have a lot of work to do to make it into an industry standard. In a lot of ways it is crazy to try to build a backtester. The problem of simulating transactions based on hypothetical orders is impossibly hard. The competition, firms with hundreds of PhD researchers, has poured millions of dollars into their own proprietary backtesters. How can a startup compete? There’s only one way to take on a challenge like that: open source.

Zipline stands on the shoulders of giants; projects like pandas, sklearn, scipy, matplotlib, and statsmodels are all helping to power Zipline. User requests (and this epic presentation) challenged us to make Zipline a "batteries-included" library with "one obvious way" to create algorithms and run backtests. The IPython Notebook blew our minds, and we had to include one in Zipline.

We’re grateful for the work that made Zipline possible. We’re delighted with the exciting start and thankful for the new support we've found. We can’t wait to meet more members of the new community!

We invite you to check out our open source project Zipline on Github.

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian.

In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.