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 codeinterfaces/: Abstract Interfaces, referenced by other repotests/: Unit Tests forsrc/
Other files and directories
bin: All important directory bash files go hereMakefile: 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 havetopic/#100mentioned 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#100should be worked ontopic/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 Reviewlabel from theLabelsection and then addalgo-trading-teamas reviewers. - When a PR is ready to be merged, please add
Ready for Mergelabel from theLabelsection.
Running Unit Tests Locally
- Running this command will run all the unit tests, with the source code being present at
src/
make
- To see unit test writing convention, please refer to Python Sample Test File
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)
| File | Size | Uploaded | |
|---|---|---|---|
| uwqsc_algorithmic_trading-2025.3.23.tar.gz | 12.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|