Welcome to Quantopian!
The problem with your algorithm is that it's placing way more orders than you think. handle_data()
runs every minute, so once your content.track
hits 5000, you start placing an order every minute. The order is too big to fill in a minute, so you're in this runaway situation where orders are being placed on top of each other willy-nilly without your portfolio ever getting to a stable state. One way to handle this have sell_it_all
check for open orders and exit if there are open orders present.
A better way to handle it, though, is to get in the habit of using the Optimize API. With optimize
you pass in your desired portfolio and your constraints, and the API does all the order management for you. You avoid all of the annoying order management stuff like you're running into here. I'm attaching a backtest that looks mostly like your code, but changes the order method.
Note that in this algo we're still doing all of the ordering in handle_data
which isn't recommended - you should put it into a schedule_function
and run it daily or something. But for the sake of this example I left it alone.
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.