Valaia / GamestonkTerminal

The next best thing after Bloomberg Terminal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stargazers Forks Contributors MIT License

Issues Bugs Open Bugs Closed

Build Status GitHub release Code style: black

Discord Shield


Logo

Gamestonk Terminal 🚀

The next best thing after Bloomberg Terminal. #weliketheterminal
≪ ROADMAP   ·   FEATURES »

Report Bug · Suggest Improvement · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Contributing
  4. License
  5. Disclaimer
  6. Contacts
  7. Acknowledgments

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:

Gamestonk Terminal provides a modern Python-based integrated environment for investment research, that allows the average joe retail trader to leverage state-of-the-art Data Science and Machine Learning technologies.

As a modern Python-based environment, GamestonkTerminal opens access to numerous Python data libraries in Data Science (Pandas, Numpy, Scipy, Jupyter), Machine Learning (Pytorch, Tensorflow, Sklearn, Flair), and Data Acquisition (Beautiful Soup, and numerous third-party APIs).

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.

  1. Star the project

Captura de ecrã 2021-04-25, às 01 13 30

  1. Install Anaconda

Confirm that you have it with: conda -V. The output should be something along the lines of: conda 4.9.2

  1. 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
  1. Activate the virtual environment
conda activate gst

Note: At the end, you can deactivate it with: conda deactivate.

  1. Install git
conda install -c anaconda git
  1. Clone the Project
  • Via HTTPS: git clone https://github.com/DidierRLopes/GamestonkTerminal.git
  • via SSH: git clone git@github.com:DidierRLopes/GamestonkTerminal.git
  1. Navigate into the project's folder
cd GamestonkTerminal/
  1. Install poetry
conda install poetry

7.5. If installing python 3.8

conda deactivate
conda activate gst

The conda deactivate -> conda activate in the middle is on purpose, this is sometimes required to avoid issues with poetry

  1. Install poetry dependencies
poetry install

This is a library for package management, and ensures a smoother experience than: pip install -r requirements.txt

  1. You're ready to Gamestonk it!
python terminal.py
  1. (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.

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:

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 build .
  • Run it: docker run -it gamestonkterminal:dev

Note: The problem with docker is that it won't output matplotlib figures.

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:

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, GT_API_POLYGON_KEY, GT_FRED_API_KEY, GT_API_NEWS_TOKEN, GT_OANDA_TOKEN, GT_OANDA_ACCOUNT, GT_TRADIER_TOKEN.

Example:

export GT_API_REDDIT_USERNAME=SexyYear

Environment variables can also be set in a .env file at the top of the repo. This file is ignored by git so your API keys will stay secret. The above example stored in .env would be:

GT_API_REDDIT_USERNAME=SexyYear

Note that the GT_API_REDDIT_USER_AGENT is the name of the script that you set when obtained the Reddit API key. 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.

  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. Appease the linters and commit again if needed
    1. Install and run black for every change you've made
    2. Install and run flake8 for every change you've made. flake8 . --count --ignore=E203,W503 --max-line-length=122 --show-source --statistics
  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 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.

Buy Me A Coffee

OR, if you prefer a coinbase crypto wallet: 3Pfx7NwGgmZsk7hQJxzHdp5rGBftUHVTiM

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

Contacts

Didier Rodrigues Lopes - dro.lopes@campus.fct.unl.pt

Artem Veremy - artem@veremey.net

James Maslek - jmaslek11@gmail.com

Feel free to share loss porn, memes or any questions:

Discord Banner 2

Acknowledgments

About

The next best thing after Bloomberg Terminal

License:MIT License


Languages

Language:Python 97.9%Language:Jupyter Notebook 2.0%Language:Dockerfile 0.1%Language:Batchfile 0.0%