GDA’s Mini-Hackathon Recap
An intersection of engineering, data science, finance, smart contracts, trading and quantitive research.
Engineering, trading, finance, data science and machine learning.
680 Applications, 50+ participants
22-Dec to 24-Dec
03-Jan to 05-Jan
05-Jan to 07-Jan
Programming & Machine Learning Competition
As part of our recruitment efforts, GDA recently hosted several mini-hackathon events to provide passionate individuals with an opportunity to showcase their skills, and to invite any rising stars to join our project. We would like to thank all of our applicants and participants for their time and interest, and are happy to announce that the event was successful and the winners have been announced.
Prior to commencing, participants were split up into small teams with which they would carry out the challenges. This was done to promote teamwork and test the participant’s abilities to work with unfamiliar groups, and to give everyone a fair chance by avoiding pre-existing teams to power ahead.
Three teams participated in Data Science competition
Two teams participated in Trading competition
Three teams participated in Machine Learning and programming competition
Challenges and Schedule
The following challenges were devised to put our contestants to the test, and to provide them with a stage to demonstrate their abilities. Each challenge was broken down into a set of tasks which were to be completed in groups within a given timeframe. The first day of the event consisted of an information session, where participants were brought up to speed on the industry and project.
- Create a Microservice in python (optionally bind to C) to create a stable connection to ByBit’s Public Limit Order WebSocket endpoint, Normalize the data in memory, do the same for the public trades messages. Measure the average time taken to normalize the data; over five seconds, the fastest wins.
- Using the normalized data, build a limit order book in memory. Measure the average time to update the limit order book; over 5 seconds, the fastest wins.
- Calculate metrics from our list, OFI, & TFI for every 100ms pulse, use them to predict market spoofing. Measure the average time taken to calculate; over 5 seconds fastest wins.
The trading challenge primarily consisted of researching relevant topics in order to get teams up to speed on the field.
- Create a systematic trading plan based on the analysis of liquidity clusters.
Market Microstructure Correlation Research
- Researching the ByBit BTC market and understanding its workings.
Programming and Machine Learning
- Optimization problems for either C++ or Python code to be interfaced with our open crypto data initiative framework
- Implement OUCH Server using C++ or Python to accept Order Entry messages and respond back with appropriate response messages. Application should build the order book and print it on the console every 1 second. After completing this, modify the application to run it in silent mode and price the order book after receiving signal (USER1) from the operating system.
- SoupTCP validation for OUCH login is not required to be implemented for this challenge
2. Financial engineering
- Numerical Solutions Of American Options With Dividends Using Finite Difference Methods, using Python or C.
3. Extreme programming
- Comparative analysis of FIX 4.4 message parsing using TCP Stack vs Kernel Bypass using QuickFix https://github.com/quickfix/quickfix
- Create a FIX Acceptor to receive 1 million FIX messages, benchmark roundtrip latency
- Simulate the above using Kernel Bypass and benchmark the roundtrip latency, don’t use TCP stack, rather read the messages from eth interface use pcap library to get the layer2 frames to parse the messages(use tcpdump command to dump the traffic on eth interface)
Machine Learning Challenge
- Implementing machine learning techniques to solve a computer vision problem for technical analysis, similar to our own ACPRI tool.
- Reinforcement learning framework (RL , Q Learning, try Double Deep Q-learning, RL with Deep Kalman filters for algorithmic trading)
- Extract Data Features* (your choice) of Limit Order Book, Volume of Events Addition, Deletion, Rates between Addition Deletion, in 1 minute time buckets etc
- Use RL to predict future price
- Build a pair trading strategy prediction model
Winners and Closing Statements
Each team delivered excellent solutions to the problems provided, however, competitions must have winners. As such, the following standout teams were selected from their corresponding challenges on account of their achievements:
AlphaGo won the competition, they have implemented a data pipeline that can extract, normalise the data efficiently from Bybit using various optimisation techniques and have also calculated Order flow Imbalance and Trade flow Imbalance from the extracted data. Rayman Tang,Taraswin Mayoor, William Zhang(PM), Monica Subramaya(PM), Philip Hu.
Team PepperLunch Won the competition, they have done extensive research on liquidity clusters and created a trade plan based on their research. Rayman Tang,Taraswin Mayoor(PM), Iris Zhang, Yuha Park, Rina Yoo, Bradley Hughes(PM).
Programming and Machine Learning
Team OUCH and CourageousImps have won programming and ML competitions. Team OUCH worked on implementing OUCH protocol in python, they have used various optimization techniques to handle processing data from multiple clients simultaneously. Rayman Tang, Jahin, Richard Bao, Serena Huang, Kat. Team CourageousImps have used Crank-Nicholson finite difference method to calculate the price of an American option. Taraswin Maynoor (PM), Jay Taylor, James, Oscar and Iris Zhang.
Participants of winning teams were offered positions within GDA, and were awarded with certificates acknowledging their work. Winning submissions for each challenge can be found here.