Back to Community
Pipeline Now Available in Paper Trading and the Quantopian Open

As of this afternoon, you can paper trade your algorithms using the Pipeline API and submit them for consideration in the November 2nd contest. This gives you just over one week to get your pipeline algorithms ready before the contest deadline!

We built the pipeline API because it will open up a new world of potential algorithms for consideration in the Quantopian fund. The API enables broad cross-sectional analysis of the entire universe of US securities, every day, so that you can build well-hedged portfolios with low volatility. Pipeline frees you from using hard coded universes, which are fraught with survivorship bias in favor of criteria based screening. We believe that this will result in more high-quality algorithms that can be used in the Quantopian fund.

We are very excited to see the pipeline API in contest submissions, but there are complications. The API is in beta and is under intensive development. We anticipate making changes to it in the future. It is in everyone's best interest to develop a great API; we must avoid limiting the creative process of the team working on the API. On the other hand, it's also in everyone's best interest to not break contest algos while they are building valuable out-of-sample track records. These two goals can be in conflict with each other.

So, what happens to contest algos using the pipeline API if the API changes in the future? When we have breaking changes for the API we will attempt to migrate the algorithms through the API changes, keeping them running in the contest and generating track records. We cannot promise we will always be successful, but it will be our goal. We don't want to deter anyone from using the API, but want to be transparent about the state of the API and the implications.

We can't wait to see the new contest entries at the top of the leaderboard!


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.

4 responses


Thanks Karen and Q Team !!!

Can we increase the timeout threshold?

Seems like its impossible to use pipeline in the competition

I'd love to know more about what you are doing that is too slow. In general, I'm not opposed to increasing the timeout threshold, but we are also looking for built ins factors that we can help write to be more effected (things like calculating beta to the spy, or correlation) and understand what you are trying to do would be helpful. If you are willing to share an algo, I'd suggest starting a new thread and asking for performance help, or sending it to feedback so that we can evaluate it with you.

I think its tinkering with price history thats causing the problem

I have been trying to set stops (simple, atr or slope based)

def stop(context, data):  
    for stock in context.portfolio.positions:  
        if stock in context.stock_list.index:  
            price = data[stock].price  
            high_history = history(63,'1d','high')  
            high = max(high_history[stock][:-1])  
            stop = 0.65 * high  
            if price < stop:  
                order_target_percent(stock, 0.0)  

Could ghost stocks being stuck in the portfolio be whats creating problems?

I have been using the following script to remove these stocks and fix leverage problem

def fix_delisted(context, data):  
    current_date = get_datetime()  
    for stock in context.portfolio.positions:  
        if (stock.end_date - current_date).days < 10:  
            order_target_percent(stock, 0.0)