Gamestonk Terminal 🚀
The next best thing after Bloomberg Terminal. #weliketheterminal
≪ ROADMAP
·
FEATURES »
Report Bug
·
Suggest Improvement
·
Request Feature
Table of Contents
About The Project
How it started: "Gamestonk Terminal is an awesome stock and crypto market terminal that has been developed for fun, while I saw my GME shares tanking. But hey, I like the stock 💎🙌."
How it's going: u/schoen: (...) I think people have upvoted this so much because it's an initial version of a single person's passion project that manages to put a whole bunch of financial information at your fingertips. With an active community, it could easily grow and grow and grow in functionality.
Getting Started
Install
This project was originally written and tested with Python 3.6.8. It should now support Python 3.6, 3.7, and 3.8.
Our current recommendation is to use this project with Anaconda's Python distribution - either full Anaconda3 Latest or Miniconda3 Latest. Several features in this project utilize Machine Learning. Machine Learning Python dependencies are optional. If you decided to add Machine Learning features at a later point, you will likely have better user experience with Anaconda's Python distribution.
- Install Anaconda
Confirm that you have it with: conda -V
. The output should be something along the lines of: conda 4.9.2
- Create Environment
You can name the environment whatever you want. Although you could use names such as: welikethestock
, thisistheway
or diamondhands
, we recommend something simple and intuitive like gst
. This is because this name will be used from now onwards.
conda create -n gst python=3.6.8
- Activate the virtual environment
conda activate gst
Note: At the end, you can deactivate it with: conda deactivate
- Fork the Project
- Via HTTPS:
git clone https://github.com/DidierRLopes/GamestonkTerminal.git
- via SSH:
git clone git@github.com:DidierRLopes/GamestonkTerminal.git
Navigate into the folder with: cd GamestonkTerminal/
- Install poetry
conda install poetry
- Install poetry dependencies
poetry install
This is a library for package management, and ensures a smoother experience than: pip install -r requirements.txt
- You're ready to Gamestonk it!
python terminal.py
Advanced User Install - Machine Learning
If you are an advanced user and use other Python distributions, we have several requirements.txt documents that you can pick from to download project dependencies.
Note: The libraries specified in the requirements.txt file have been tested and work for the purpose of this project, however, these may be older versions. Hence, it is recommended for the user to set up a virtual python environment prior to installing these. This allows to keep dependencies required by different projects in separate places.
If you would like to use optional Machine Learning features:
- Update your config_terminal.py with:
ENABLE_PREDICT = False
- Install optional ML features dependencies collection with poetry:
poetry install -E prediction
If you would like to set up a docker image:
- Build the docker:
docker build .
- Run it:
docker run -it gamestonkterminal:dev
Note: The problem with docker is that it won't output matplotlib figures.
Commands that may help you in case of an error:
conda install -c conda-forge fbprophet -y
python -m pip install --upgrade pip
pip install pystan --upgrade
API Keys
The project is build around several different API calls, whether it is to access historical data or financials.
These are the ones where a key is necessary:
- Alpha Vantage: https://www.alphavantage.co
- Quandl: https://www.quandl.com/tools/api
- Reddit: https://www.reddit.com/prefs/apps
- Twitter: https://developer.twitter.com
- Financial Modeling Prep: https://financialmodelingprep.com/developer
When these are obtained, don't forget to update config_terminal.py.
Alternatively, you can also set them to the following environment variables: GT_API_KEY_ALPHAVANTAGE, GT_API_KEY_FINANCIALMODELINGPREP, GT_API_KEY_QUANDL, GT_API_REDDIT_CLIENT_ID, GT_API_REDDIT_CLIENT_SECRET, GT_API_REDDIT_USERNAME, GT_API_REDDIT_USER_AGENT, GT_API_REDDIT_PASSWORD, GT_API_TWITTER_KEY, GT_API_TWITTER_SECRET_KEY, GT_API_TWITTER_BEARER_TOKEN.
Example:
export GT_API_REDDIT_USERNAME=SexyYear
Note that it is not necessary to have a valid Alpha Vantage key to get daily OHLC values.
Usage
Start by loading a ticker of interest:
load -t GME
The menu will expand to all its menus since a ticker has been loaded.
View the historical data of this stock:
view
Slice the historical data by loading ticker and setting a starting point, e.g.
load -t GME -s 2020-06-04
Enter in technical analysis menu with
ta
and run a SMA with:
sma
However, imagine that you wanted to change the length of the window because you don't want to go long but do a swing, and therefore a smaller window is necessary. Check what settings are available on the SMA command:
sma -h
Once that has been seen, set the parameters that you want after flagging them. In this case, to change length window to 10, we would have to do:
sma -l 10
Example:
Contributing
There are 3 main ways of contributing to this project.
Become a Contributor 🦍
Recommended if you bought the dip, and the share price keeps dipping. You may as well keep yourself busy while stonks go up.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to your Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Become a Karen 🤷
Recommended if you adopted a strategy of buying high and selling low.
We are interested in your view on what sort of features would make you buy even higher and selling even lower.
Also, if somehow you're sitting in several mils due to this terminal, don't forget to report a bug so that the team can fix, and keep the old ways.
Join the 🙌 💎 Gang
If red is your favourite color, and you never sell for a loss.
Welcome to the club, and feel free to support the developers behind this amazing open-source project.
License
Distributed under the MIT License. See LICENSE for more information.
Disclaimer
"A few things I am not. I am not a cat. I am not an institutional investor, nor am I a hedge fund. I do not have clients and I do not provide personalized investment advice for fees or commissions." DFV
Contact
Didier Rodrigues Lopes - dro.lopes@campus.fct.unl.pt