[![Stargazers][stars-shield]][stars-url]
[![Forks][forks-shield]][forks-url]
[![Contributors][contributors-shield]][contributors-url]
[![MIT License][license-shield]][license-url]
[![Issues][issues-shield]][issues-url]
[![Bugs Open][bugs-open-shield]][bugs-open-url]
[![Bugs Closed][bugs-closed-shield]][bugs-closed-url]
[](https://github.com/GamestonkTerminal/GamestonkTerminal/actions)
[](https://github.com/GamestonkTerminal/GamestonkTerminal/releases)
[](https://github.com/psf/black)

[](https://twitter.com/gamestonkt)
The next best thing after Bloomberg Terminal. #weliketheterminal
≪ ROADMAP
  ·  
FEATURES »
Report Bug
·
Suggest Improvement
·
Request Feature
1. [Install Anaconda](https://docs.anaconda.com/anaconda/install/index.html) (It's on the AUR as anaconda or miniconda3!)
Confirm that you have it with: `conda -V`. The output should be something along the lines of: `conda 4.9.2`
- If on Windows, install/update Microsoft C++ Build Tools from here: https://visualstudio.microsoft.com/visual-cpp-build-tools/
2. Install git
```
conda install -c anaconda git
````
3. Clone the Project
- Via HTTPS: `git clone https://github.com/GamestonkTerminal/GamestonkTerminal.git`
- via SSH: `git clone git@github.com:GamestonkTerminal/GamestonkTerminal.git`
4. Navigate into the project's folder
```
cd GamestonkTerminal/
```
5. 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 env create -n gst --file build/conda/conda-3-8-env.yaml
````
6. Activate the virtual environment
```
conda activate gst
```
Note: At the end, you can deactivate it with: `conda deactivate`.
7. Install poetry dependencies
```
poetry install
```
If you are having trouble with Poetry (e.g. on a Windows system), simply install requirements.txt with pip
```
pip install -r requirements.txt
```
8. You're ready to Gamestonk it!
```
python terminal.py
```
9. (Windows - Optional) Speeding up opening process in the future
After you've installed Gamestonk Terminal, you'll find a file named "Gamestonk Terminal.bat". You can use this file to open Gamestonk Terminal quicker. This file can be moved to your desktop if you'd like. If you run into issues while trying to run the batch file. If you run into issues with the batch files, edit the file and check to see if the directories match up. This file assumes you used the default directories when installing.
**NOTE:** When you close the terminal and re-open it, the only command you need to re-call is `conda activate gst` before you call `python terminal.py` again.
**TROUBLESHOOT:** If you are having troubles to install, check our *newest* troubleshoot page
### 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.
If you are using conda instead of build/conda/conda-3-8-env.yaml configuration file in Step 5, use build/conda/conda-3-8-env-full.
Note: The libraries specified in the [requirements.txt](/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 [feature_flags.py](/gamestonk_terminal/feature_flags.py) with:
```
ENABLE_PREDICT = os.getenv("GTFF_ENABLE_PREDICT") or True
```
* Install optional ML features dependencies:
```
poetry install -E prediction
```
*If you would like to set up a docker image:*
* Build the docker:
```
docker-compose -f docker/docker-compose.yaml build gst-python
docker-compose -f docker/docker-compose.yaml build gst-poetry-deps
docker-compose -f docker/docker-compose.yaml build gst-poetry
```
* Run it:
```
docker run -it --env-file=docker/setenv --rm gst/gst-poetry:1.1.0
```
Note: Remember to customize your docker/setenv.
### Update Terminal
The terminal is constantly being updated with new features and bug fixes, hence, for your terminal to be update, you can run:
```
git pull
```
to get the latest changes.
If this fails due to the fact that you had modified some python files, and there's a conflict with the updates, you can use:
```
git stash
```
Then, re-run `poetry install` or `pip install -r requirements.txt` to get any new dependencies.
Once installation is finished, you're ready to gamestonk.
If you `stashed` your changes previously, you can un-stash them with:
```
git stash pop
```
### 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
* Binance: https://binance.us (US) / https://binance.com (Outside US)
* CoinMarketCap API: https://coinmarketcap.com/api
* Degiro API : https://www.degiro.fr
* FRED: https://fred.stlouisfed.org/docs/api/api_key.html
* Financial Modeling Prep: https://financialmodelingprep.com/developer
* Finhub API: https://finnhub.io
* News API: https://newsapi.org
* Oanda API: https://developer.oanda.com
* Polygon: https://polygon.io
* Quandl: https://www.quandl.com/tools/api
* Reddit: https://www.reddit.com/prefs/apps
* SentimentInvestor: https://sentimentinvestor.com
* Tradier: https://developer.tradier.com/getting_started
* Twitter: https://developer.twitter.com
When these are obtained, don't forget to update [config_terminal.py](/gamestonk_terminal/config_terminal.py).
Alternatively, you can also set them to the following environment variables:
| Website | Variables |
| :--- | :--- |
| [Alpha Vantage](https://www.alphavantage.co) | GT_API_KEY_ALPHAVANTAGE |
| [Binance](https://binance.com) | GT_API_BINANCE_KEY
## Contributing
There are 3 main ways of contributing to this project.
For a 1h coding session where the architecture of the repo is explained while a new feature is added, check https://www.youtube.com/watch?v=9BMI9cleTTg.
**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.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Install the pre-commit hooks by running:
```pre-commit install```.
Any time you commit a change, linters will be run automatically. On changes, you will have to re-commit.
5. Push to your Branch (`git push origin feature/AmazingFeature`)
6. 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](https://github.com/GamestonkTerminal/GamestonkTerminal/issues) 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](https://github.com/GamestonkTerminal/GamestonkTerminal/issues) 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](https://github.com/GamestonkTerminal/GamestonkTerminal/blob/main/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
Trading in financial instruments involves high risks including the risk of losing some, or all, of your investment amount, and may not be suitable for all investors. Before deciding to trade in financial instrument you should be fully informed of the risks and costs associated with trading the financial markets, carefully consider your investment objectives, level of experience, and risk appetite, and seek professional advice where needed. The data contained in GST is not necessarily accurate. GST and any provider of the data contained in this website will not accept liability for any loss or damage as a result of your trading, or your reliance on the information displayed.
## Contacts
[Didier Rodrigues Lopes](https://www.linkedin.com/in/didier-lopes/) - dro.lopes@campus.fct.unl.pt
[Artem Veremy](https://www.linkedin.com/in/veremey/) - artem@veremey.net
[James Maslek](https://www.linkedin.com/in/james-maslek-b6810186/) - jmaslek11@gmail.com
Feel free to share loss porn, memes or any questions at:
* Discord: https://discord.gg/Up2QGbMKHY
* Twitter: [@gamestonkt](https://twitter.com/gamestonkt)
#### Contributors
* **pll_llq** and **Chavithra**: Working towards a GUI using Qt.
* Get in touch in our [#gui](https://discord.gg/gQ3VxXEj) discord channel.
* **1lluz10n** and **crspy** : Working on our landing page https://gamestonkterminal.netlify.app.
* Get in touch in our [#landing-page](https://discord.gg/wkyB4xcb) discord channel.
* **Meghan Hone** : Managing Twitter account
* **alokan** : Responsible by developing `Forex` menu
* **Chavithra** and **Deel18** : for Degiro's integration.
* **Traceabl3** : By adding several preset screeners
* **jpp** : Responsible by developing `Crypto` menu