We have an official winner to the June edition of the contest – congratulations to Michael Van Kleeck! You can see the results in the June leaderboard. It was a nail-biter race to the finish.
After running the contest for several months, we have learned quite a lot about launching algorithms -- everything from handling expected exception cases to inspecting the tear sheets. We want to share all these as best practices (see below), and as a first step we are onboarding the winner before s/he goes live. This will allow the winner to reap the full benefits of the contest and maximize the reward over the next 6 months.
To that end, we’re working with Michael and his algo will be deployed very soon.
As we’re building the fund, these are the suggestions we’re advising for algorithms. These are the same suggestions we shared with Michael, and I encourage you to add these to your entries:
- Refactor deprecated functions (e.g. update batch_transform to history)
- Update hard-coded date logic to use schedule_function instead where possible
- Consider replacing manual order calculations with order_target or order_target_percent where appropriate.
- Add a guard for open orders in algo logic when using order_target() functions
- Verify the algo will backfill any historical data needed to set initial parameters.
- Make sure algo is 'aware' of existing portfolio positions at deploy. The algo should handle starts/stops smoothly and pick up the correct positions.
- Add logging of intended orders (timing, symbols and order sizes). This helps us monitor that the algo is behaving correctly, and was able to achieve its target positions.
We’re excited to start the onboarding process and help you develop more intelligent, robust algorithms. Keep this list in mind as you’re developing your next strategy.
Cheers,
Alisa