-
Notifications
You must be signed in to change notification settings - Fork 5
Getting Started Guide (Python development)
To contribute to SPY Reaper, you'll need to follow some ordinary steps for getting started with Open source development plus some specific steps required for our project.
-
Download and install Skype; Add the repo owner as a contact on Skype: tranceitionalMynd
https://www.skype.com/en/get-skype/ -
Sign up for a GitHub user account. Send your username on Skype to get added as a contributor to the repo
https://github.com/join -
Download and install Python3. Python3 is required by the TWS API.
https://www.python.org/downloads/ -
Download and install the TWS API. Make sure you install a version higher than or equal to 9.73. Special instructions for Mac/Linux only: unzip the archive under /opt/twsapi/. Move pythonclient (it's under a couple of subdirectories) directly under /opt/twsapi. Other unzipped directories can be safely deleted.
http://interactivebrokers.github.io/# -
Clone the spy-reaper Git repo onto your development PC.
https://help.github.com/articles/cloning-a-repository/ -
Download a Git GUI (even if you prefer using the terminal, even installing and running git-gui from the terminal may help). There are hundreds out there. A few examples are:
Git Extensions: http://git-extensions-documentation.readthedocs.io/en/latest/git_extensions.html
GitKraken: https://www.gitkraken.com/
GitHub Desktop: https://desktop.github.com/
git-gui: https://git-scm.com/docs/git-gui -
Make your first branch of the repo. Branches help enable parallel collaboration among multiple developers. Branches are also an integral component of Pull Requests (this comes later). There is an option to create a branch in your GUI or you can do so on the terminal with "git checkout -b NEW_BRANCH_NAME".
https://guides.github.com/introduction/flow/ -
Make your first commit. Edit the file spy-reaper/spy-reaper.py by adding your name to the list of Authors at the top of the file. Then commit your code change in your GUI or on the terminal with "git add spy-reaper/spy-reaper.py" followed by "git commit -m 'Added MY_NAME to the list of authors.'". See the glossary explanation of "commit" and any Git words that are unfamiliar to you.
https://help.github.com/articles/github-glossary/ -
Make your first pull request. Push your first branch with your GUI or via the terminal with "git push --set-upstream origin BRANCH_NAME". After pushing, create a pull request.
https://help.github.com/articles/creating-a-pull-request/ -
Plan your first assignment. Check the development page and see if there are any task numbers you would be comfortable with, or, even better, excited about, implementing. Chat with Tyler if nothing looks good- or good ones are taken- and see if he has some project ideas for you. Tasks should be challenging enough that you can learn something new, but not so much that you feel overwhelmed. Once you know what you'd like to do, check in with Tyler or edit the development page yourself adding the date, your name, and "Assigned" as the task's state.
https://github.com/tranceitionalMynd/spy-reaper/wiki/Development -
ADVANCED If you would like to experiment with the TWS API, or see the algorithmic trading program in action, install IB's Trader Workstation or IB Gateway and use the guest login option.
https://www.interactivebrokers.com/en/index.php?f=16040 -
ADVANCED If you would like to see backtests (tests against historical stock market data) of the algorithmic trading program, or research your own trading algorithms, sign up for an account on Quantopian. Ask for a collaboration invitation to see the Proof of Concept algorithms (algorithms which this project is based off of).
https://www.quantopian.com/users/sign_up -
ADVANCED If you would like to test the algorithm on your own personal paper trading stock account, sign up for and fund an Interactive Broker's account. See the guide for enabling the TWS API connections in Trader Workstation. Cash trading is optional and will come later after testing with paper trading accounts.
https://www.interactivebrokers.com/en/index.php?f=4695
http://interactivebrokers.github.io/tws-api/initial_setup.html#gsc.tab=0