This project analyzes day trading data in a Jupyter Notebook hosted on a Docker container. It imports a file with trade data called trades.csv
, where the input data are in this format:
account_id | symbol | side | qty | timestamp |
---|---|---|---|---|
77658 | GOOG | sell | 493 | 2023-09-04 09:30:00 |
19191 | NVDA | sell | 216 | 2023-09-04 09:30:03 |
These source data are loaded into a table called public.trades
on Postgres instance hosted on a Docker container when the container starts up. The Docker configuration also starts a Jupyter notebook, which queries the public.trades
table name puts the source data into a DataFrame.
The Jupyter notebook analyzes the trading data and looks for the number of day-trades the occurred per account within a given time period. The program outputs a file with day trades in the /work
directory.
The program runs on Docker and can be started with a docker compose up -d --build
command.
There are two containers: one for the Postgresql instance and another for Jupyter Notebooks, verify they are running with a docker ps
command.
Once both containers are up, and they are healthy, open a browser and go to 'http://localhost:8888/'. This will launch the Jupyter notebook which contains the trading analysis.
Navigate inside the work/
directory and open the trades_notebook.ipynb
file. Run each block of code within the notebook. The final statement contains a method call where you can input a start_time
and an end_time
for the date range to analyze day trades by account. Running the final code block will run the find_day_trades()
and the write_output_file()
method will create a .csv
file with the count of day trades per account over the given time window.