We're excited that you're here to participate in our event. Whether you're a coding novice or an experienced developer, this hackathon is designed to provide you with an engaging and challenging experience.
The objective for you in this hackathon is to build an equity trading algorithm that maximizes profit by buying and selling stocks (i.e., manage an investment portfolio). You will be provided access to years of historical data for a group of 500 stocks. Your algorithm should step through the data, one day at a time, and for each day, generate orders to buy or sell each of the 500 stocks. You can work individually or form a team to work together. Best of luck with your projects! We can't wait to see what you come up with!
The submission of your results will end by the end of the day on Nov 26th, Sunday.
Please email to airsyntheticdata.requests@jpmorgan.com to request the dataset.
The data for this hackathon is a synthetic version of the S&P 500, created by AI Research's Synthetic Data group. It is intended to be a synthetic version of the market that can be used for testing trading algorithms. It is modeled after real data, with accurate similarities and correlations between groups of stocks. The data that traders use to inform their trading is classified as "financial data" or "market data." Financial data includes information related to a company's financial health, industry, and macroeconomic factors, while market data focuses on historical price and volume information. Traders analyze these types of data to make informed decisions about buying and selling stocks.
The market data for this project is provided as a comma-separated-values (CSV) file, where each row represents the data for one day. An example looks like this:
Date | AAPL | IBM | JPM | TSLA |
---|---|---|---|---|
2005-01-03 | 52.2773 | 86.8520 | 60.4727 | 2.6500 |
2005-01-04 | 51.7295 | 85.7908 | 60.4137 | 2.6015 |
2005-01-05 | 52.0064 | 85.1988 | 60.3900 | 2.5867 |
2005-01-06 | 52.0417 | 85.6319 | 60.4313 | 2.5740 |
2005-01-07 | 52.1596 | 85.5092 | 60.4137 | 2.5570 |
2005-01-10 | 52.2420 | 85.9135 | 60.3841 | 2.5660 |
2005-01-11 | 52.5484 | 85.3215 | 60.4668 | 2.5888 |
2005-01-12 | 52.6191 | 85.6031 | 60.5553 | 2.5810 |
The financial data used by traders for investing generally falls into four categories: Fundamental, Technical, Sentiment, and Macroeconomic:
To simplify the project, we will precompute the values for five indicators and provide them to participants for each stock in a CSV file named for that stock. For instance, the file providing information about IBM is named IBM.CSV, and it looks like this:
Date | indicator01 | indicator02 | indicator03 | indicator04 | indicator05 |
---|---|---|---|---|---|
2005-01-03 | 0.2773 | 1.8520 | 0.4727 | 1.6500 | 0.2773 |
2005-01-04 | 0.7295 | 1.7908 | 0.4137 | 0.6015 | 1.7908 |
2005-01-05 | 0.0064 | 1.1988 | 0.3900 | 0.5867 | 0.3900 |
2005-01-06 | 0.0417 | -2.6319 | -0.4313 | -0.5740 | -2.6319 |
2005-01-07 | -0.1596 | 1.5092 | 0.4137 | -1.5570 | -0.1596 |
2005-01-10 | 1.2420 | 1.9135 | 0.3841 | 0.5660 | 1.9135 |
2005-01-11 | 0.5484 | 1.3215 | -0.4668 | 1.5888 | -0.4668 |
2005-01-12 | 0.6191 | 1.6031 | 0.5553 | 2.5810 | 1.6031 |
Your program should operate in the following way, and follow these rules:
The "trades.csv" file should be formatted like this:
Date | AAPL | IBM | JPM | TSLA |
---|---|---|---|---|
2005-01-03 | 0 | 0 | 0 | 0 |
2005-01-04 | 100 | 0 | 0 | 0 |
2005-01-05 | 0 | 0 | 0 | -100 |
2005-01-06 | 0 | 0 | 0 | 0 |
2005-01-07 | 0 | 0 | 0 | 0 |
2005-01-10 | -100 | 0 | 0 | 0 |
2005-01-11 | 0 | 0 | 0 | 0 |
2005-01-12 | 0 | 0 | 0 | 100 |
We have a market simulator, which reads in your trades file and the market data file, then simulates your trades. It provides some metrics of your trading performance, and charts showing how it did. We will evaluate each algorithm according to Sharpe ratio, and total return, and provide awards and rankings on those metrics.
Participants will be provided with 20 folders of data. The folders are in two groups: "training” and "testing”, e.g., training01 to training10 and testing01 to testing10. Participants can use the data in the training folders to train or develop trading algorithms. Each folder will contain about 501 files (1 market and 500 financial data). The data in each folder covers the same period, from January 2022 to December 2022.
Participants' algorithms must follow these rules:
Please email your results, the trade files in CSV format, with your team name to the contact email: haibei.zhu@jpmchase.com
We will evaluate your results given the metrics mentioned in the Procedure and update the leaderboard.
Last update: 11/16/2023, 11:00pm, ET
Team Name | Submission Date | Sharpe ratio | total return | Ranking |
---|---|---|---|---|
Alexander | 11/29/2023 | 0.219 | 0.036 = 3.6% | 1 |