RIT-trading-python
Disclaimer: The providers of the RIT software have refused to make the RestAPI public and I do not have access to the RIT server platform, therefore this repository might be out of date with the current version of RIT. It would be useful as a reference to create a more advanced automated trading API.
Python trading module for the Rotman Interactive Trader trading software. PyPI page.
Install with pip: pip install ritpytrading
Full documentation available online.
A GitHub markdown flavor documentation can be found in documentation/README.md.
Requirements
- Python 3.6+
- The Rotman Interactive Trading Client
The RIT Client only supports Windows OS. However, development of the PyPI ritpytrading package can be in done in Linux/BSD environments as well.
The full documentation for the RIT Client REST API can be found at Swaggerhub.
The swagger API documentation is also provided in the swagger_client_generated folder.
Usage (Only on Windows)
IMPORTANT:
- The RIT Trading Client must also be running to make sure the REST RIT API Client requests can be made.
- In each script your RIT Client API key must be entered and the requests module be imported to make API calls.
- The API and API Orders mode must be enabled in the RIT Client for the python module to send order requests.
pip install ritpytrading
Examples scripts are present inside the examples folder. Documentation available here.
Developers Guide
Setup
RIT Client
The RIT Client for Windows can be downloaded at http://rit.rotman.utoronto.ca/software.asp.
Instructions for setting up an RIT demonstration client account for the Liability Trading 3 case file can be found at http://rit.rotman.utoronto.ca/demo.asp.
Windows
Initialize the repository with git. Detailed instructions to download git for windows can be found at atlassian. The repository can then be initialized with git using:
git clone https://github.com/SamSamhuns/RIT-trading-python
Two options are available after this:
- Anaconda is recommended for Windows system. Set up up a virtual conda environment first.
Then open the anaconda prompt and use the command
conda install --yes --file requirements.txtto install all modules from requirements.txt. - Or Install
pythonand add it to yourPATHsystem variable. Then install thepippackage if not installed already also adding it to thePATHsystem variable. Then run the following commands.
python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt
Note: When using PowerShell in Windows, the virtual environment has to be activated with .\venv\Scripts\activate.ps1
Linux/BSD
After cloning the repository, install packages using pip.
git clone https://github.com/SamSamhuns/RIT-trading-python python -m venv venv; source venv/bin/activate pip install -r requirements.txt
Building dists and running tests using makefile
For Windows, different options are available for using makefile. GnuWin's make
provides a native port for Windows (without requiring a full runtime environment like Cygwin).
After installing GnuWin, add C:\Program Files (x86)\GnuWin32\bin
to your system PATH variable to run Makefiles from any directory.
- For Windows, run makefile commands with
make -f Makefile.win <directive>. Examplemake -f Makefile.win help - For Linux/BSD, run makefile commands with
make <directive>.
Run the following command to get a list of all Makefile command options.
make help
To run tests.
make test make test-all
To ensure the README.rst will be rendered in PyPi [If deprecated use the twine command given below]
python setup.py check --restructuredtext
To ensure the README.rst renders properly. After building with make dist, check the rendering with:
twine check dist/*
To build the source and wheel package.
make dist
To upload the distribution code to PyPi. The version number must be updated in setup.py and logged in HISTORY.rst.
twine upload dist/*
Running tests with the python unittest module
Once python has been added to the PATH system variable in Windows,
the code for running the scripts on Windows and Linux/BSD based systems
are the same.
From the main directory, run:
python -m unittest
If no tests are run from the command above, run the verbose mode.
Verbose mode
python -m unittest discover -v
Authors
- Samridha Shrestha
License
This project is licensed under the Apache 2.0 License - see the LICENSE.md file for details
Acknowledgments
- Rotman School of Management, University of Toronto http://www.rotman.utoronto.ca/
- Rotman Interactive Trader http://rit.rotman.utoronto.ca/
- Python open source libraries
- Joel Hasbrouck, NYU Stern Principles of Securities Trading, FINC-UB.0049, Spring 201. http://people.stern.nyu.edu/jhasbrou/
- This project directory was created based on Cookiecutter and the audreyr/cookiecutter-pypackage project template.
- README conversion for PyPI. Pandoc.org.
Contributions
Disclaimer
All RIT software and external RIT links are provided by the Rotman School of Management and are their exclusive property.