Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Writing code across multiple files

Hi,

Is it possible to write code which is spread across multiple files? For example, if I write a custom library that I want to import, can it be done? It would be nice to have some sort of file directory structure like say dropbox or google drive where we can put our codes and then run them from there, and interface with quantopian using the two functions that have provided by default.

7 responses

Hi mc,

Unfortunately this is currently not possible. It would be nice though and we certainly considered ways to achieve this. One way I happen to like is to be able to link to a github repository which contains your algorithm and any additional files. What do you think?

Disclaimer

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.

@mc, could you give a specific example? I have this hope, perhaps futile, that the "custom" libraries people write are actually common problems and solutions could be shared and collaborated upon. For example, position limits. Many times your algorithm will generate buy/sell signals, but you have to gauge the degree to which to follow the signal at any time. Our backtester doesn't limit your leverage, so a lot of users have asked for position limit tools. Rather than have everyone write redundant implementations, I have always hoped we could organize effort around common implementations. That's why we are open-sourcing our backtester, Zipline before the end of October.

Disclaimer

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.

Hi,

For sure, it is good to share libraries. But I asked the question in a different context. When developing a large trading application, wouldn't it be nice and modular to spread it across different files and libraries. Or perhaps, I did not quite understand the purpose of quantopian. My impression is that it can be used, at some point in the future, for production trading. If so, then when we our trading applications, it would get really messy if we had to fit the whole program in a single file, especially as the logic becomes complex.

So how does it work with Zipline? Is it that we develop the application on our computers (offline) and interface with quantopian's servers through Zipline?

@mc, thanks for the reply. Yes, you will be able to trade live via Quantopian in the future, and it makes sense that you would have code of your own that you want to modularize and re-use across many algorithms. In that scenario, I think @Thomas' proposal is a very good fit. Does it seem useful to you?

Zipline is a standalone library for real-time financial trading simulation, so it doesn't know about Quantopian. Quantopian runs the zipline library on our site to produce the simulated returns, performance analysis, and risk metrics for each backtest. You could use zipline independently, but you wouldn't have the Quantopian data or UI.

Thomas's proposal sounds excellent! So essentially put up all the code as a repository on github and Quantopian will be able to read this?

Yup, that is the idea!

Is this done?