Skip to main content

Algorithmic Trading

The University of Waterloo quantitative analytics stocks club algorithmic trading repository.

Project Board: https://github.com/orgs/UWQSC/projects/1

Onboarding Information

Setup
  • After cloning the repository, run the following command
chmod +x ./setup.sh
./setup.sh
  • This sets up your:
    • Python virtual environment with your packages
    • GitHub hook for commit message regex.
Project Structure
  • src/: Main code
  • interfaces/: Abstract Interfaces, referenced by other repo
  • tests/: Unit Tests for src/

Other files and directories

  • bin: All important directory bash files go here
  • Makefile: Used to locally run unit tests, can be used for other functionalities as well
  • .github: Contains the GitHub Workflows that run on every push and pull request
  • .git: Contains GitHub Hooks for commit messages
Conventions and Rules to Follow
  • Every commit should be linked with at-least one issue. Hence, every commit should have the GitHub Issues that it belongs to. For example, if issue is #100, your commit should have topic/#100 mentioned in an independent line. Note that there is a checker.

Correct commit message

Writing Unit Test for black_litterman.py

topic/#100

- Code coverage 80%.

Incorrect commit message

Writing Unit Test for black_litterman.py
Writing Unit Test for black_litterman.py topic/#100
Writing Unit Test for black_litterman.py

topic/#100 - Code coverage 80%.
Writing Unit Test for black_litterman.py

topic/100 

- Code coverage 80%.
Writing Unit Test for black_litterman.py

#100 

- Code coverage 80%.
  • For convention’s sake, name your branches topic/<issue_number>. For example: Issue #100 should be worked on topic/100. There's no checker for branches though.
  • Try to make commits as descriptive as possible.
  • Changes to mainline can only be made through PRs. Please make the PR descriptions descriptive (preferably list of commit descriptions)
  • When a PR is ready to be reviewed, please add Ready for Review label from the Label section and then add algo-trading-team as reviewers.
  • When a PR is ready to be merged, please add Ready for Merge label from the Label section.
Running Unit Tests Locally
  • Running this command will run all the unit tests, with the source code being present at src/
make
Running GitHub Workflows Locally

This requires you to have Docker installed. Install Act from https://nektosact.com/introduction.html

A successful act run looks like:

> cd ~/<algorithmic-trading-root>
> act
...
[Pylint/build            ]   ✅  Success - Main Analysing the code with pylint
[Pylint/build            ] ⭐ Run Post Set up Python 3.9
[Pylint/build            ]   🐳  docker exec cmd=[/opt/acttoolcache/node/18.20.5/arm64/bin/node /var/run/act/actions/actions-setup-python@v3/dist/cache-save/index.js] user= workdir=
[Pylint/build            ]   ✅  Success - Post Set up Python 3.9
[Pylint/build            ] Cleaning up container for job build
[Pylint/build            ] 🏁  Job succeeded
>

Metadata

Release files for uwqsc-algorithmic-trading 2025.3.23

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uwqsc-algorithmic-trading 2025.3.23
File Size Uploaded
uwqsc_algorithmic_trading-2025.3.23.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uwqsc-algorithmic-trading 2025.3.23
File Interpreter ABI Platform
uwqsc_algorithmic_trading-2025.3.23-py3-none-any.whl Python 3 none any Details

Total release size: 30.7 kB

Release files / uwqsc_algorithmic_trading-2025.3.23.tar.gz

Download URL uwqsc_algorithmic_trading-2025.3.23.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
4a087159eb876d76702f2e07826072a3348543ca8ac7a39f22795bfe4e4e4110
BLAKE2b-256 checksum
How to use checksums
4678b9e45aeaa9f554f71b05af33c444671b02023471ff8aa55b402931530503
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Release files / uwqsc_algorithmic_trading-2025.3.23-py3-none-any.whl

Download URL uwqsc_algorithmic_trading-2025.3.23-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
74ca5ee5ac7bdcb1003591765312c203108105940ce4d6e076c4c5e081cd1fa3
BLAKE2b-256 checksum
How to use checksums
b563f6e0d9e085a955a289cdcc85f545192dbc5dbea0c1869b8baafd123a1ce8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page