Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Allow algorithm to run twice a day

How do you tell an algorithm to run twice a day? I know how to tell it to run once day, but not sure how to tell it to run at two different times.

5 responses

See schedule_function on the help page.

Nick,

I would recommend going through this tutorial lesson on scheduling functions. To have a function run twice per day, you could simply schedule it a second time.

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.

If an algorithm has two strategies, one overlaying the other, order_optimum_portfolio pretty much invalidates it. Is there a way to execute order_optimum_portfolio without impacting trades made earlier in the day (for example)?

Can loop through get_open_orders() to cancel any partial fills before the second order_optimal_portfolio.
order_optimal_portfolio returns a list of order id's. After it runs in the same minute you can loop through those id's. Click in the margin (line numbers) to set a breakpoint. You have get_order(this_order_id).sid and get_order(this_order_id).amount to work with, plus in the positions object also .amount for current shares. There's cancel_order(this_order_id) for any you'd rather not allow or might want to modify.

I've overcome the issue by updating the array instead of setting a new value. Thank you for the advice above - good insight into the definitions.