After three weeks of building and optimising their trading algorithms, Optiver sends a huge congratulations to the winning teams and participants of Ready Trader Go 2023!
A big congratulations to Jakub Szulc for climbing to the top of the leaderboard and taking home the grand prize of €30,000! After two rounds of optimisation and a competitive grand finale, Jakub developed the best performing autotrader with an impressive profit and loss (PnL) of €21,775.53.
We sat down with Jakub, who shared his experience in the competition, insights into how he developed the best performing algorithm and the challenges he faced along the way.
Congratulations on winning Ready Trader Go 2023! What was your experience in the competition?
Thank you! It was an incredibly exciting and challenging experience. The competition wired my brain into a highly competitive mode, providing a dose of adrenaline. Discovering other teams’ ideas, using some of them, and testing my counterstrategies against them was a truly rewarding experience.
What was the most challenging part of the competition?
The most challenging part of the competition was likely the trial-and-error process, which required me to develop countless models simultaneously. It took a lot of work to manage, and I could only test my models against each other, which introduced a lot of bias and variance.
Can you tell us more about how you developed your algorithm?
I started with a simple “stay-on-top-of-the-book” algorithm and continuously made optimisations, refining my approach based on the insights from analysing the match logs. I was not attached to any particular approach, often rewriting the entire program if I found a promising idea. In total, I’d say I wrote around 10-20 models, which I kept to use as a benchmark against the new strategies.
What did you discover in the process of developing your algorithm?
I quickly realised that speed was crucial. I wanted to squeeze every microsecond and fully utilise the position and message limit.
For example, I noticed that the seemingly insignificant 20 microseconds between receiving each order book were actually a lot of time, so I made an effort to execute trades as quickly as possible, not waiting for the second order book to come. A breakthrough came when I discovered that other teams were executing trades between the ticks and using hedging of size 1 to probe future prices, which suddenly made message limit a precious resource. I also realised that a lot of money was wasted because of not being able to cancel orders, which became unprofitable, soon enough. It led me to entirely switch from inserting the limit orders to orders with a “fill and kill” lifespan.
The constraints inspired me to write a “wrapper” around the provided BaseTrader class.
What was your biggest takeaway from the competition?
The competition not only allowed me to gain practical experience but also provided a platform to push my boundaries and hone my skills. Overall, it was a highly valuable experience that helped me develop my skills further and gave me the confidence to tackle new and complex problems.