We are delighted to announce that the Varsity Algo Trading results are now in!

We would like to congratulate all students who participated and thank both universities and our sponsors for their support.

Overall P&L Winner: University Of Oxford

Overall Best Algo design: Ben Hack & team, University Of Oxford

In Summary:

  • 15 teams across both Universities

  • Each team received the same amount of seed capital

  • Trading was live for 1.5 months

  • Just under 1,000 trades executed

Cumulative Results:

  • University of Oxford total P&L: 85.3%

  • University of Cambridge total P&L: 50.4%

Top 3 Algo Designs:

  • Naive Velocity Based Algorithm - Ben Hack & Team, University Of Oxford

  • Weighted Average Dip Buying Algorithm - Luke Sharkey & Team, University Of Oxford

  • StableCoin Market Making Algorithm - David Nagy & Team, University Of Cambridge

Ben Hacks team (University Of Oxford): Naive Velocity Based Algorithm (1st place)

First, a naive velocity based algorithm. We had a couple different versions of this, which would buy/sell based on some measure of velocity (percentage change over the last 15 minutes, if it had increased/decreased monotonically for 5 single minutes, et cetera.) This was implemented in the GDP-BTC market.

Second, and most successfully, an algorithm to constantly check all markets for large spreads, large percentage change in price, or new Bid/Ask walls. This would then send an email, so that manual trading could be considered. Allowed early intervention in changes in the market, without needing to manually encode rules into the algorithm (as obviously the human is doing the actual investing). Just having the information on hand immediately was immensely helpful.

Luke Sharkey’s team (University Of Oxford): Weighted Average Dip Buying Algorithm (2nd Place)

The algorithm our team created traded between Ethereum and USD. It requested the history of the exchange rates between the two currencies, stored these as an array and calculated the percentage difference of those ten spaces apart in the array.

A weighted average was then taken, with more recent values having a greater weighting. Then if the last two changes were negative, the price would be low enough to buy and if the last three changes were positive the price would be high enough to sell.

This algorithm loops indefinitely with a small wait between each loop.

David Nagy’s team (University Of Cambridge): The Stablecoin Market-Making Algorithm (3rd Place)

Looking at the real-time orderbook for some time, it became apparent that there were market inefficiencies to be exploited. The fair price is 1.0000 (USDT/USD), but trades often happened at 3 ticks away at 0.9997 or 1.0003, and during a short period the price even went up to 1.0020. But it always returned to 0.9999 – 1.0000 in a couple of hours or a day. Furthermore, sometimes big order walls could be spotted, and price movements could be predicted based on these. We conjectured that such dynamics were due to market participants running general market-making and long-short strategies in the USDT market, without realising (or caring about) the fact that a stablecoin is fundamentally different from other cryptocurrencies). An estimation based on the frequency and price of trades suggested that we would achieve a meagre 7% yearly profit. However, using leverage could boost this a lot (since the strategy is basically arbitrage), so we believe this is a very valuable strategy, even if not in the context of the competition.

Did this answer your question?