There is no way in hell I got 1,477,318.1% return. Wtf happened?
There is no way in hell I got 1,477,318.1% return. Wtf happened?
You were right to be suspicious of the results! The ordering method doesn't check for open orders before calculating the number of shares to buy, so you were ending up with a long list of them.
A large order may take several bars to fill, according to the slippage model. Especially an order to buy or short a $1M portfolio! While this order is being filled, handle_data is getting called every minute and your order_target_percent is adjusting its values, creating a queue of open orders. This may also lead to large swings of order amounts.
I fixed this problem by adding a check on line 8 of the code (see the attached backtest). However, if you look at the graph of the cash, you can see that the algorithm shorts $1M - this is only allowed by the broker if you have a margin account (and you'll be paying interest). The line below means you're shorting 100% of your portfolio.
order_target_percent(context.security, -1)
Do you instead mean to sell the portfolio and close the position if current_price/mav30>1.05? In that case you want,
order_target_percent(context.security, 0)
In the custom graph, the stock price is getting masked by the cash because its so much smaller. If you want to view the stock price then click on "cash" to temporarily remove it from the graph. To bring it back, click on "cash" again.
Hope that helps!
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.