Welcome to the ultimate team student trading competition. Competitors get to learn all the fundamentals of trading and truly test their coding and analytical skills. The aim is to build and optimise a trading algorithm that outperforms all others on a virtual exchange.
To learn more about the competition, visit [readytradergo.optiver.com] (https://readytradergo.optiver.com).
To run Ready Trader Go, you'll need Python version 3.9 or above and PySide6. You can download Python from www.python.org.
Once you have installed Python, you'll need to create a Python virtual environment, and you can find instructions for creating and using virtual environments at docs.python.org/3/library/venv.html.
To use the Ready Trader Go graphical user interface, you'll need to install the PySide6 package which you can do by running
pip3 install PySide6
in your Python virtual environment.
To run a Ready Trader Go match with one or more autotraders, simply run:
python3 rtg.py run [AUTOTRADER FILENAME [AUTOTRADER FILENAME]]
For example:
python3 rtg.py run autotrader.py
Each autotrader must have a corresponding JSON configuration file as described below.
This archive contains everything needed to run a Ready Trader Go match in which multiple autotraders compete against each other in a simulated market. For the exact definition of a match, see the competition terms and conditions.
The archive contains:
Each autotrader is configured with a JSON file like this:
{
"Execution": {
"Host": "127.0.0.1",
"Port": 12345
},
"Information": {
"Type": "mmap",
"Name": "info.dat"
},
"TeamName": "TraderOne",
"Secret": "secret"
}
The elements of the autotrader configuration are:
The market simulator is configured with a JSON file called "exchange.json". Here is an example:
{
"Engine": {
"MarketDataFile": "data/market_data.csv",
"MarketEventInterval": 0.05,
"MarketOpenDelay": 5.0,
"MatchEventsFile": "match_events.csv",
"ScoreBoardFile": "score_board.csv",
"Speed": 1.0,
"TickInterval": 0.25
},
"Execution": {
"host": "127.0.0.1",
"Port": 12345
},
"Fees": {
"Maker": -0.0001,
"Taker": 0.0002
},
"Information": {
"Type": "mmap",
"Name": "info.dat"
},
"Instrument": {
"EtfClamp": 0.002,
"TickSize": 1.00
},
"Limits": {
"ActiveOrderCountLimit": 10,
"ActiveVolumeLimit": 200,
"MessageFrequencyInterval": 1.0,
"MessageFrequencyLimit": 50,
"PositionLimit": 1000
},
"Traders": {
"TraderOne": "secret",
"ExampleOne": "qwerty",
"ExampleTwo": "12345"
}
}
The elements of the autotrader configuration are:
Important: Each autotrader must have a unique team name and password
listed in the 'Traders' section of the exchange.json file.
The Ready Trader Go command line utility, rtg.py, can be used to run or
replay a match. For help, run:
python3 rtg.py --help
To run a match, use the "run" command and specify the autotraders you wish to participate in the match:
python3 rtg.py run [AUTOTRADER FILENAME [AUTOTRADER FILENAME]]
Each autotrader must have a corresponding JSON file (with the same filename,
but ending in ".json" instead of ".py") which contains a unique team name
and the team name and secret must be listed in the exchange.json file.
It will take approximately 60 minutes for the match to complete and several files will be produced:
autotrader.log - log file for an autotraderexchange.log - log file for the simulatormatch_events.csv - a record of events during the matchscore_board.csv - a record of each autotrader's score over timeTo aid testing, you can speed up the match by modifying the "Speed" setting in the "exchange.json" configuration file - for example, setting the speed to 2.0 will halve the time it takes to run a match. Note, however, that increasing the speed may change the results.
When testing your autotrader, you should try it with different sample data files by modifying the "MarketDataFile" setting in the "exchange.json" file.
To replay a match, use the "replay" command and specify the name of the match events file you wish to replay:
python3 rtg.py replay match_events.csv
Autotraders in Ready Trader Go will be run in the following environment:
Shortly after the competition begins you'll be supplied with the details of a GIT repository which you can use to submit your autotrader.
To access the GIT repository, you'll need to configure your GIT client with your private key, and we'll use the public key you gave us when you registered to verify that it's you.
To submit your autotrader, simply commit your autotrader.py file to the
GIT repository. If you're using C++, simply commit your autotrader.h and
autotrader.cc files. Do not put the file(s) in a folder and do not
include any other files (any other files will be ignored). You may only
submit one autotrader (i.e. you cannot submit both a Python and a C++
autotrader).
You may replace your autotrader with a new one at any time. When each tournament starts we'll use the autotrader in your GIT repository at the cut-off time for that tournament.
$ claude mcp add Optiver_RTG_Workshop \
-- python -m otcore.mcp_server <graph>