Skip to main content

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

Project description

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
>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uwqsc_algorithmic_trading-2025.3.4.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uwqsc_algorithmic_trading-2025.3.4-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file uwqsc_algorithmic_trading-2025.3.4.tar.gz.

File metadata

File hashes

Hashes for uwqsc_algorithmic_trading-2025.3.4.tar.gz
Algorithm Hash digest
SHA256 e70925bb0d594fedc9f836fc4ed3f98a628bc9e2f9cb6904227d205b952b3d29
MD5 e9a8ec1337b2c298d3b29d79f40392d4
BLAKE2b-256 e9bc72f9ec5ca67edbecef5187fde6902b2dc8e9b58fa1b30f1b931632513c40

See more details on using hashes here.

File details

Details for the file uwqsc_algorithmic_trading-2025.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for uwqsc_algorithmic_trading-2025.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8c4f8af41af6125cd0313fc1f1bfbc15aa4712051e2f9b4e4b62bfca79029ff0
MD5 fd3f458618c53f35efa93052c596d1c7
BLAKE2b-256 e37a768c4e46caa50291acf5e07e0d24a22d5a7afdb7867b5eebc298ae1e5209

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page