From d7bb5a9456250114da83172e5d49beb242df5eed Mon Sep 17 00:00:00 2001
From: DidierRLopes
-
+
The next best thing after Bloomberg Terminal. #weliketheterminal
@@ -34,16 +34,16 @@
- ≪ ROADMAP
+ ≪ ROADMAP
  ·  
- FEATURES »
+ FEATURES »
- Report Bug
+ Report Bug
·
- Suggest Improvement
+ Suggest Improvement
·
- Request Feature
+ Request Feature
+
+
## events
```text
usage: events [-c {NZ,AU,ERL,CA,EU,US,JP,CN,GB,CH}] [-i {low,medium,high,all}] [-n NUM]
diff --git a/gamestonk_terminal/economy/cnn_view.py b/gamestonk_terminal/economy/cnn_view.py
new file mode 100644
index 00000000000..c0f122f2a9b
--- /dev/null
+++ b/gamestonk_terminal/economy/cnn_view.py
@@ -0,0 +1,105 @@
+""" Fred View """
+__docformat__ = "numpy"
+
+import argparse
+from typing import List
+from fear_greed_index.CNNFearAndGreedIndex import CNNFearAndGreedIndex
+from pandas.plotting import register_matplotlib_converters
+import matplotlib.pyplot as plt
+from gamestonk_terminal.helper_funcs import (
+ parse_known_args_and_warn,
+ plot_autoscale,
+)
+from gamestonk_terminal.config_plot import PLOT_DPI
+from gamestonk_terminal import feature_flags as gtff
+
+register_matplotlib_converters()
+
+
+def fear_and_greed_index(other_args: List[str]):
+ """Display CNN Fear And Greed Index.
+
+ Parameters
+ ----------
+ other_args : List[str]
+ argparse other args
+ """
+
+ parser = argparse.ArgumentParser(
+ add_help=False,
+ prog="feargreed",
+ description="""
+ Display CNN Fear And Greed Index from https://money.cnn.com/data/fear-and-greed/.
+ """,
+ )
+
+ parser.add_argument(
+ "-i",
+ "--indicator",
+ dest="indicator",
+ required=False,
+ type=str,
+ choices=["jbd", "mv", "pco", "mm", "sps", "spb", "shd", "index"],
+ help="""
+ CNN Fear And Greed indicator or index. From Junk Bond Demand, Market Volatility,
+ Put and Call Options, Market Momentum Stock Price Strength, Stock Price Breadth,
+ Safe Heaven Demand, and Index.
+ """,
+ )
+
+ try:
+ if other_args:
+ if "-" not in other_args[0]:
+ other_args.insert(0, "-i")
+
+ ns_parser = parse_known_args_and_warn(parser, other_args)
+ if not ns_parser:
+ return
+
+ cnn_fg = CNNFearAndGreedIndex()
+
+ fig = plt.figure(figsize=plot_autoscale(), dpi=PLOT_DPI)
+
+ if ns_parser.indicator:
+ if ns_parser.indicator == "index":
+ print(cnn_fg.index_summary)
+
+ im = cnn_fg.index_chart
+ plt.imshow(im)
+
+ else:
+ d_indicator_match = {
+ "jbd": "Junk Bond Demand",
+ "mv": "Market Volatility",
+ "pco": "Put and Call Options",
+ "mm": "Market Momentum",
+ "sps": "Stock Price Strength",
+ "spb": "Stock Price Breadth",
+ "shd": "Safe Heaven Demand",
+ }
+ indicator_name = d_indicator_match[ns_parser.indicator]
+
+ for indicator in cnn_fg.all_indicators:
+ if indicator_name == indicator.type_indicator:
+ print(indicator.get_report())
+ im = indicator.chart
+ plt.imshow(im)
+
+ else:
+ # print Fear and Greed complete report
+ print(cnn_fg.get_complete_report())
+
+ # plot Fear and Greed charts
+ cnn_fg.plot_all_charts(fig)
+
+ if gtff.USE_ION:
+ plt.ion()
+
+ plt.show()
+ print("")
+
+ except SystemExit:
+ print("")
+ except Exception as e:
+ print(e, "\n")
+ return
diff --git a/gamestonk_terminal/economy/econ_controller.py b/gamestonk_terminal/economy/econ_controller.py
index 5fb07b6655f..ea61a8ce3a1 100644
--- a/gamestonk_terminal/economy/econ_controller.py
+++ b/gamestonk_terminal/economy/econ_controller.py
@@ -9,6 +9,7 @@ from gamestonk_terminal.helper_funcs import get_flair
from gamestonk_terminal.menu import session
from gamestonk_terminal.economy import fred_view
from gamestonk_terminal.economy import finnhub_view
+from gamestonk_terminal.economy import cnn_view
class EconomyController:
@@ -32,6 +33,7 @@ class EconomyController:
"fedfunds",
"aaa",
"dexcaus",
+ "feargreed",
]
def __init__(self):
@@ -51,6 +53,7 @@ class EconomyController:
print(" q quit this menu, and shows back to main menu")
print(" quit quit to abandon program")
print(" ")
+ print(" feargreed CNN Fear and Greed Index")
print(" events economic impact events [Finnhub]")
print(
" fred display customized FRED data from https://fred.stlouisfed.org"
@@ -149,6 +152,10 @@ class EconomyController:
"""Process dexcaus command"""
fred_view.display_fred(other_args, "DEXCAUS")
+ def call_feargreed(self, other_args: List[str]):
+ """Process feargreed command"""
+ cnn_view.fear_and_greed_index(other_args)
+
def menu():
"""Econ Menu"""
diff --git a/gamestonk_terminal/technical_analysis/ta_controller.py b/gamestonk_terminal/technical_analysis/ta_controller.py
index 4d071150ac0..68a1e2985a2 100644
--- a/gamestonk_terminal/technical_analysis/ta_controller.py
+++ b/gamestonk_terminal/technical_analysis/ta_controller.py
@@ -120,7 +120,6 @@ class TechnicalAnalysisController:
True - quit the program
None - continue in the menu
"""
-
(known_args, other_args) = self.ta_parser.parse_known_args(an_input.split())
return getattr(
diff --git a/poetry.lock b/poetry.lock
index e5f52a91b22..53daf0de543 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -29,6 +29,14 @@ yarl = ">=1.0,<2.0"
[package.extras]
speedups = ["aiodns", "brotlipy", "cchardet"]
+[[package]]
+name = "alabaster"
+version = "0.7.12"
+description = "A configurable sidebar-enabled Sphinx theme"
+category = "main"
+optional = false
+python-versions = "*"
+
[[package]]
name = "alpaca-trade-api"
version = "1.2.2"
@@ -164,6 +172,17 @@ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"]
tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"]
+[[package]]
+name = "babel"
+version = "2.9.1"
+description = "Internationalization utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+pytz = ">=2015.7"
+
[[package]]
name = "backcall"
version = "0.2.0"
@@ -485,6 +504,14 @@ category = "main"
optional = false
python-versions = ">=3.6"
+[[package]]
+name = "docutils"
+version = "0.16"
+description = "Docutils -- Python Documentation Utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
[[package]]
name = "ecos"
version = "2.0.7.post1"
@@ -505,6 +532,24 @@ category = "main"
optional = false
python-versions = ">=2.7"
+[[package]]
+name = "fear-greed-index"
+version = "0.1.3"
+description = "CNN Fear and Greed Index"
+category = "main"
+optional = false
+python-versions = ">=3.6.8,<4.0.0"
+
+[package.dependencies]
+bs4 = ">=0.0.1,<0.0.2"
+lxml = ">=4.6.3,<5.0.0"
+m2r2 = ">=0.2.7,<0.3.0"
+matplotlib = ">=3.3.4,<4.0.0"
+Pillow = ">=8.2.0,<9.0.0"
+requests = ">=2.25.1,<3.0.0"
+Sphinx = ">=4.0.2,<5.0.0"
+sphinx-rtd-theme = ">=0.5.2,<0.6.0"
+
[[package]]
name = "ffn"
version = "0.3.6"
@@ -759,6 +804,14 @@ python-versions = "*"
[package.dependencies]
idna = ">=2.0"
+[[package]]
+name = "imagesize"
+version = "1.2.0"
+description = "Getting image size from png/jpeg/jpeg2000/gif file"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
[[package]]
name = "importlib-metadata"
version = "4.5.0"
@@ -1090,6 +1143,18 @@ html5 = ["html5lib"]
htmlsoup = ["beautifulsoup4"]
source = ["Cython (>=0.29.7)"]
+[[package]]
+name = "m2r2"
+version = "0.2.7"
+description = "Markdown and reStructuredText in a single file."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+docutils = "*"
+mistune = "*"
+
[[package]]
name = "markdown"
version = "3.3.4"
@@ -2270,6 +2335,14 @@ category = "main"
optional = false
python-versions = ">=3.5"
+[[package]]
+name = "snowballstemmer"
+version = "2.1.0"
+description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
+category = "main"
+optional = false
+python-versions = "*"
+
[[package]]
name = "soupsieve"
version = "2.2.1"
@@ -2278,6 +2351,123 @@ category = "main"
optional = false
python-versions = ">=3.6"
+[[package]]
+name = "sphinx"
+version = "4.0.2"
+description = "Python documentation generator"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+alabaster = ">=0.7,<0.8"
+babel = ">=1.3"
+colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
+docutils = ">=0.14,<0.18"
+imagesize = "*"
+Jinja2 = ">=2.3"
+packaging = "*"
+Pygments = ">=2.0"
+requests = ">=2.5.0"
+snowballstemmer = ">=1.1"
+sphinxcontrib-applehelp = "*"
+sphinxcontrib-devhelp = "*"
+sphinxcontrib-htmlhelp = "*"
+sphinxcontrib-jsmath = "*"
+sphinxcontrib-qthelp = "*"
+sphinxcontrib-serializinghtml = "*"
+
+[package.extras]
+docs = ["sphinxcontrib-websupport"]
+lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.800)", "docutils-stubs"]
+test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
+
+[[package]]
+name = "sphinx-rtd-theme"
+version = "0.5.2"
+description = "Read the Docs theme for Sphinx"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+docutils = "<0.17"
+sphinx = "*"
+
+[package.extras]
+dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version"]
+
+[[package]]
+name = "sphinxcontrib-applehelp"
+version = "1.0.2"
+description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "sphinxcontrib-devhelp"
+version = "1.0.2"
+description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "sphinxcontrib-htmlhelp"
+version = "2.0.0"
+description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest", "html5lib"]
+
+[[package]]
+name = "sphinxcontrib-jsmath"
+version = "1.0.1"
+description = "A sphinx extension which renders display math in HTML via JavaScript"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+test = ["pytest", "flake8", "mypy"]
+
+[[package]]
+name = "sphinxcontrib-qthelp"
+version = "1.0.3"
+description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
+[[package]]
+name = "sphinxcontrib-serializinghtml"
+version = "1.1.5"
+description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+lint = ["flake8", "mypy", "docutils-stubs"]
+test = ["pytest"]
+
[[package]]
name = "statsmodels"
version = "0.12.2"
@@ -2739,7 +2929,7 @@ prediction = ["tensorflow", "pmdarima"]
[metadata]
lock-version = "1.1"
python-versions = "^3.6.8"
-content-hash = "d4fbf7ee3900dc58867cc3486617ba8064123403cb2edf8bde5da1199d921737"
+content-hash = "25a6b84904e2d1523dbd3cb88dbf551c3931d1bcc10811f8bb60cff5b9caa729"
[metadata.files]
absl-py = [
@@ -2785,6 +2975,10 @@ aiohttp = [
{file = "aiohttp-3.7.4.post0-cp39-cp39-win_amd64.whl", hash = "sha256:02f46fc0e3c5ac58b80d4d56eb0a7c7d97fcef69ace9326289fb9f1955e65cfe"},
{file = "aiohttp-3.7.4.post0.tar.gz", hash = "sha256:493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf"},
]
+alabaster = [
+ {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
+ {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
+]
alpaca-trade-api = [
{file = "alpaca-trade-api-1.2.2.tar.gz", hash = "sha256:7f1fedacb597c549aa5dff5c6b0c39fc89e5a70ca9d499a33065d5c61c5303bf"},
{file = "alpaca_trade_api-1.2.2-py3-none-any.whl", hash = "sha256:0017bfa0a2e3a20d8300b9145030ae8cc58c27d25ff4512b0f9f417f7069f47a"},
@@ -2849,6 +3043,10 @@ attrs = [
{file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"},
{file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
]
+babel = [
+ {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
+ {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
+]
backcall = [
{file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"},
{file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"},
@@ -3050,6 +3248,10 @@ detecta = [
{file = "detecta-0.0.5-py3-none-any.whl", hash = "sha256:dbaf1938e5d785386c904034e2553824e2aa31793e967984ca65983aca06d23e"},
{file = "detecta-0.0.5.tar.gz", hash = "sha256:d2ea7d13dfbbc994d6ce385a7f8dc0a85fe675a8a8e712a64ec56e54c40603ed"},
]
+docutils = [
+ {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
+ {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
+]
ecos = [
{file = "ecos-2.0.7.post1-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:dd9f01e28fe58894fb394931804884122606fb4e2a59d4514b803e9cd11b7d2b"},
{file = "ecos-2.0.7.post1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:db7433051f6072d4821ebc582e9ff853d7d631ed98770550d248eae70b29dd26"},
@@ -3078,6 +3280,10 @@ entrypoints = [
{file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"},
{file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"},
]
+fear-greed-index = [
+ {file = "fear-greed-index-0.1.3.tar.gz", hash = "sha256:5ba5286ee29b2b35147a93da353899e30abf1715decf943183399e4f057a2d87"},
+ {file = "fear_greed_index-0.1.3-py3-none-any.whl", hash = "sha256:0bdccdce61a408172187254dced6e1033c6126620d4694aaccc5ce09f4001921"},
+]
ffn = [
{file = "ffn-0.3.6-py2.py3-none-any.whl", hash = "sha256:1e55e8caf6b63dce2f164cc4d3b8a02b678be7ed12990cafb2006b818a9a09e7"},
{file = "ffn-0.3.6.tar.gz", hash = "sha256:4a79e72e06ff328e333ffe97010b1ce110bcd694fcd03be7351bf5065cd273e8"},
@@ -3213,6 +3419,10 @@ idna = [
idna-ssl = [
{file = "idna-ssl-1.1.0.tar.gz", hash = "sha256:a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c"},
]
+imagesize = [
+ {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
+ {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
+]
importlib-metadata = [
{file = "importlib_metadata-4.5.0-py3-none-any.whl", hash = "sha256:833b26fb89d5de469b24a390e9df088d4e52e4ba33b01dc5e0e4f41b81a16c00"},
{file = "importlib_metadata-4.5.0.tar.gz", hash = "sha256:b142cc1dd1342f31ff04bb7d022492b09920cb64fed867cd3ea6f80fe3ebd139"},
@@ -3397,6 +3607,10 @@ lxml = [
{file = "lxml-4.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83"},
{file = "lxml-4.6.3.tar.gz", hash = "sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468"},
]
+m2r2 = [
+ {file = "m2r2-0.2.7-py3-none-any.whl", hash = "sha256:a1b87b00f4d5163a3616253fca4c045f8351818cd803ba2e24af8897442a0eae"},
+ {file = "m2r2-0.2.7.tar.gz", hash = "sha256:fbf72ade9f648d41658f97c5267687431612451f36b65761a138fbc276294df5"},
+]
markdown = [
{file = "Markdown-3.3.4-py3-none-any.whl", hash = "sha256:96c3ba1261de2f7547b46a00ea8463832c921d3f9d6aba3f255a6f71386db20c"},
{file = "Markdown-3.3.4.tar.gz", hash = "sha256:31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49"},
@@ -4034,18 +4248,26 @@ pyyaml = [
{file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"},
{file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"},
{file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"},
+ {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"},
+ {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"},
{file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"},
{file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"},
{file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"},
{file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"},
+ {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"},
+ {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"},
{file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"},
{file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"},
{file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"},
{file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"},
+ {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"},
+ {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"},
{file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"},
{file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"},
{file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"},
{file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"},
+ {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"},
+ {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"},
{file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"},
{file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"},
{file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"},
@@ -4328,10 +4550,46 @@ smmap = [
{file = "smmap-4.0.0-py2.py3-none-any.whl", hash = "sha256:a9a7479e4c572e2e775c404dcd3080c8dc49f39918c2cf74913d30c4c478e3c2"},
{file = "smmap-4.0.0.tar.gz", hash = "sha256:7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182"},
]
+snowballstemmer = [
+ {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
+ {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"},
+]
soupsieve = [
{file = "soupsieve-2.2.1-py3-none-any.whl", hash = "sha256:c2c1c2d44f158cdbddab7824a9af8c4f83c76b1e23e049479aa432feb6c4c23b"},
{file = "soupsieve-2.2.1.tar.gz", hash = "sha256:052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc"},
]
+sphinx = [
+ {file = "Sphinx-4.0.2-py3-none-any.whl", hash = "sha256:d1cb10bee9c4231f1700ec2e24a91be3f3a3aba066ea4ca9f3bbe47e59d5a1d4"},
+ {file = "Sphinx-4.0.2.tar.gz", hash = "sha256:b5c2ae4120bf00c799ba9b3699bc895816d272d120080fbc967292f29b52b48c"},
+]
+sphinx-rtd-theme = [
+ {file = "sphinx_rtd_theme-0.5.2-py2.py3-none-any.whl", hash = "sha256:4a05bdbe8b1446d77a01e20a23ebc6777c74f43237035e76be89699308987d6f"},
+ {file = "sphinx_rtd_theme-0.5.2.tar.gz", hash = "sha256:32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a"},
+]
+sphinxcontrib-applehelp = [
+ {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
+ {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"},
+]
+sphinxcontrib-devhelp = [
+ {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"},
+ {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
+]
+sphinxcontrib-htmlhelp = [
+ {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"},
+ {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"},
+]
+sphinxcontrib-jsmath = [
+ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
+ {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
+]
+sphinxcontrib-qthelp = [
+ {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"},
+ {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
+]
+sphinxcontrib-serializinghtml = [
+ {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"},
+ {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"},
+]
statsmodels = [
{file = "statsmodels-0.12.2-cp36-cp36m-macosx_10_15_x86_64.whl", hash = "sha256:c1d98ce2072f5e772cbf91d05475490368da5d3ee4a3150062330c7b83221ceb"},
{file = "statsmodels-0.12.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:4184487e9c281acad3d0bda19445c69db292f0dbb18f25ebf56a7966a0a28eef"},
diff --git a/pyproject.toml b/pyproject.toml
index 762a76e59a4..07f8c314180 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -73,6 +73,7 @@ vaderSentiment = "3.3.2"
degiro-connector = "1.0.0"
mypy = "^0.901"
GitPython = "^3.1.17"
+fear-greed-index = "^0.1.3"
[tool.poetry.dev-dependencies]
pytest = "^6.2.2"
diff --git a/requirements-full.txt b/requirements-full.txt
index 7d5018803dc..864bca7c9d8 100644
--- a/requirements-full.txt
+++ b/requirements-full.txt
@@ -1,5 +1,6 @@
absl-py==0.13.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.2.0"
aiohttp==3.7.4.post0; python_version >= "3.6"
+alabaster==0.7.12; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
alpaca-trade-api==1.2.2
alpha-vantage==2.3.1
ansiwrap==0.8.4; python_version >= "3.6"
@@ -10,6 +11,7 @@ astunparse==1.6.3
async-generator==1.10; python_full_version >= "3.6.1" and python_version >= "3.6"
async-timeout==3.0.1; python_full_version >= "3.5.3" and python_version >= "3.6"
attrs==21.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+babel==2.9.1; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
backcall==0.2.0; python_version >= "3.6"
beautifulsoup4==4.9.3; python_version >= "3.5"
black==21.5b2; python_full_version >= "3.6.2"
@@ -36,8 +38,10 @@ decorator==5.0.9; python_version >= "3.6" and python_full_version < "3.0.0" or p
defusedxml==0.7.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
degiro-connector==1.0.0; python_version >= "3.6"
detecta==0.0.5; python_version >= "3.6"
+docutils==0.16; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
ecos==2.0.7.post1; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.5"
entrypoints==0.3; python_version >= "3.6"
+fear-greed-index==0.1.3; python_full_version >= "3.6.8" and python_full_version < "4.0.0"
ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
finviz==1.4.1
finvizfinance==0.9.8; python_version >= "3.5"
@@ -57,6 +61,7 @@ hijri-converter==2.1.2; python_version >= "3.6"
holidays==0.10.5.2
idna-ssl==1.1.0; python_version < "3.7" and python_version >= "3.6"
idna==2.10; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version < "3.7" and python_version >= "3.6" and python_full_version >= "3.5.0"
+imagesize==1.2.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
importlib-metadata==4.5.0; python_version < "3.8" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.8" or python_full_version >= "3.2.0" and python_version >= "3.6" and python_version < "3.8")
inflection==0.5.1; python_version >= "3.5"
ipykernel==5.5.5; python_version >= "3.6"
@@ -65,7 +70,7 @@ ipython==7.16.1; python_version >= "3.6"
ipywidgets==7.6.3
iso8601==0.1.14
jedi==0.18.0; python_version >= "3.6"
-jinja2==3.0.1; python_version >= "3.6"
+jinja2==3.0.1; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
joblib==1.0.1; python_version >= "3.6"
jsonschema==3.2.0; python_version >= "3.6"
jupyter-client==6.1.12; python_version >= "3.5"
@@ -78,11 +83,12 @@ keras-nightly==2.5.0.dev2021032900
keras-preprocessing==1.1.2
kiwisolver==1.3.1; python_version >= "3.6"
korean-lunar-calendar==0.2.1
-lxml==4.6.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
+lxml==4.6.3; python_full_version >= "3.6.8" and python_version >= "3.5" and python_full_version < "4.0.0" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6")
+m2r2==0.2.7; python_full_version >= "3.6.8" and python_full_version < "4.0.0"
markdown==3.3.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.2.0" and python_version >= "3.6"
markupsafe==2.0.1; python_version >= "3.6"
matplotlib==3.3.4; python_version >= "3.6"
-mistune==0.8.4; python_version >= "3.6"
+mistune==0.8.4; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
more-itertools==8.8.0; python_version >= "3.5"
mplfinance==0.12.7a17
msgpack==1.0.2
@@ -102,7 +108,7 @@ onetimepass==1.0.1; python_version >= "3.6"
opt-einsum==3.3.0; python_version >= "3.5"
orjson==3.5.3; python_version >= "3.6"
osqp==0.6.2.post0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.5"
-packaging==20.9; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+packaging==20.9; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6")
pandas-datareader==0.9.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
pandas-ta==0.2.45b
pandas==1.1.5; python_full_version >= "3.6.1"
@@ -130,12 +136,12 @@ pyasn1-modules==0.2.8; python_version >= "2.7" and python_full_version < "3.0.0"
pyasn1==0.4.8; python_version >= "3.5" and python_full_version < "3.0.0" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") or python_version >= "3.5" and python_version < "4" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6") and python_full_version >= "3.6.0"
pycoingecko==1.4.1
pycparser==2.20; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
-pygments==2.9.0; python_version >= "3.6"
+pygments==2.9.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
pymeeus==0.5.11; python_version >= "3.5"
pyobjc-core==7.3; python_version >= "3.6" and sys_platform == "darwin"
pyobjc-framework-cocoa==7.3; python_version >= "3.6" and sys_platform == "darwin"
pyotp==2.6.0; python_version >= "3"
-pyparsing==2.4.7; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+pyparsing==2.4.7; python_full_version >= "3.6.8" and python_version >= "3.6" and python_full_version < "4.0.0"
pyportfolioopt==1.4.2; python_full_version >= "3.6.1" and python_full_version < "4.0.0"
pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
pyrsistent==0.14.11
@@ -144,7 +150,7 @@ python-coinmarketcap==0.2
python-dateutil==2.8.1; python_full_version >= "3.6.1" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5")
python-dotenv==0.17.1; python_version >= "3"
pytrends==4.7.3
-pytz==2021.1; python_full_version >= "3.6.1" and python_version >= "3.5"
+pytz==2021.1; python_full_version >= "3.6.8" and python_version >= "3.6" and python_full_version < "4.0.0"
pyupgrade==2.18.2; python_full_version >= "3.6.1"
pywin32==301; sys_platform == "win32" and python_version >= "3.6"
pywinpty==1.1.2; os_name == "nt" and python_version >= "3.6"
@@ -170,7 +176,16 @@ selenium==3.141.0
send2trash==1.5.0; python_version >= "3.6"
six==1.15.0; python_full_version >= "3.6.1" and python_version >= "3.5" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0")
smmap==4.0.0; python_version >= "3.6"
+snowballstemmer==2.1.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
soupsieve==2.2.1; python_version >= "3.6"
+sphinx-rtd-theme==0.5.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0"
+sphinx==4.0.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-applehelp==1.0.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-devhelp==1.0.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-htmlhelp==2.0.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-jsmath==1.0.1; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-qthelp==1.0.3; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-serializinghtml==1.1.5; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
statsmodels==0.12.2; python_version >= "3.6"
tabulate==0.8.9
tenacity==7.0.0; python_version >= "3.6"
diff --git a/requirements.txt b/requirements.txt
index 8fe1f6d7911..117477d4b54 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,5 @@
aiohttp==3.7.4.post0; python_version >= "3.6"
+alabaster==0.7.12; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
alpaca-trade-api==1.2.2
alpha-vantage==2.3.1
ansiwrap==0.8.4; python_version >= "3.6"
@@ -8,6 +9,7 @@ argon2-cffi==20.1.0; python_version >= "3.6"
async-generator==1.10; python_full_version >= "3.6.1" and python_version >= "3.6"
async-timeout==3.0.1; python_full_version >= "3.5.3" and python_version >= "3.6"
attrs==21.2.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+babel==2.9.1; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
backcall==0.2.0; python_version >= "3.6"
beautifulsoup4==4.9.3; python_version >= "3.5"
black==21.5b2; python_full_version >= "3.6.2"
@@ -33,8 +35,10 @@ decorator==5.0.9; python_version >= "3.6" and python_full_version < "3.0.0" or p
defusedxml==0.7.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
degiro-connector==1.0.0; python_version >= "3.6"
detecta==0.0.5; python_version >= "3.6"
+docutils==0.16; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
ecos==2.0.7.post1; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.5"
entrypoints==0.3; python_version >= "3.6"
+fear-greed-index==0.1.3; python_full_version >= "3.6.8" and python_full_version < "4.0.0"
ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
finviz==1.4.1
finvizfinance==0.9.8; python_version >= "3.5"
@@ -49,6 +53,7 @@ hijri-converter==2.1.2; python_version >= "3.6"
holidays==0.10.5.2
idna-ssl==1.1.0; python_version < "3.7" and python_version >= "3.6"
idna==2.10; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "3.7" or python_version < "3.7" and python_version >= "3.6" and python_full_version >= "3.5.0"
+imagesize==1.2.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
importlib-metadata==4.5.0; python_version < "3.8" and python_version >= "3.6"
inflection==0.5.1; python_version >= "3.5"
ipykernel==5.5.5; python_version >= "3.6"
@@ -57,7 +62,7 @@ ipython==7.16.1; python_version >= "3.6"
ipywidgets==7.6.3
iso8601==0.1.14
jedi==0.18.0; python_version >= "3.6"
-jinja2==3.0.1; python_version >= "3.6"
+jinja2==3.0.1; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
joblib==1.0.1; python_version >= "3.6"
jsonschema==3.2.0; python_version >= "3.6"
jupyter-client==6.1.12; python_version >= "3.5"
@@ -68,10 +73,11 @@ jupyterlab-pygments==0.1.2; python_version >= "3.6"
jupyterlab-widgets==1.0.0; python_version >= "3.6"
kiwisolver==1.3.1; python_version >= "3.6"
korean-lunar-calendar==0.2.1
-lxml==4.6.3; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
+lxml==4.6.3; python_full_version >= "3.6.8" and python_version >= "3.5" and python_full_version < "4.0.0" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6")
+m2r2==0.2.7; python_full_version >= "3.6.8" and python_full_version < "4.0.0"
markupsafe==2.0.1; python_version >= "3.6"
matplotlib==3.3.4; python_version >= "3.6"
-mistune==0.8.4; python_version >= "3.6"
+mistune==0.8.4; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
more-itertools==8.8.0; python_version >= "3.5"
mplfinance==0.12.7a17
msgpack==1.0.2
@@ -90,7 +96,7 @@ oauthlib==3.1.1; python_version >= "3.6" and python_full_version < "3.0.0" or py
onetimepass==1.0.1; python_version >= "3.6"
orjson==3.5.3; python_version >= "3.6"
osqp==0.6.2.post0; python_full_version >= "3.6.1" and python_full_version < "4.0.0" and python_version >= "3.5"
-packaging==20.9; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+packaging==20.9; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6")
pandas-datareader==0.9.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6"
pandas-ta==0.2.45b
pandas==1.1.5; python_full_version >= "3.6.1"
@@ -116,12 +122,12 @@ py==1.10.0; python_version >= "3.6" and python_full_version < "3.0.0" and implem
pyally==1.1.2
pycoingecko==1.4.1
pycparser==2.20; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6"
-pygments==2.9.0; python_version >= "3.6"
+pygments==2.9.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
pymeeus==0.5.11; python_version >= "3.5"
pyobjc-core==7.3; python_version >= "3.6" and sys_platform == "darwin"
pyobjc-framework-cocoa==7.3; python_version >= "3.6" and sys_platform == "darwin"
pyotp==2.6.0; python_version >= "3"
-pyparsing==2.4.7; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
+pyparsing==2.4.7; python_full_version >= "3.6.8" and python_version >= "3.6" and python_full_version < "4.0.0"
pyportfolioopt==1.4.2; python_full_version >= "3.6.1" and python_full_version < "4.0.0"
pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0"
pyrsistent==0.14.11
@@ -130,7 +136,7 @@ python-coinmarketcap==0.2
python-dateutil==2.8.1; python_full_version >= "3.6.1" and python_version >= "3.6" and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5")
python-dotenv==0.17.1; python_version >= "3"
pytrends==4.7.3
-pytz==2021.1; python_full_version >= "3.6.1" and python_version >= "3.5"
+pytz==2021.1; python_full_version >= "3.6.8" and python_version >= "3.6" and python_full_version < "4.0.0"
pyupgrade==2.18.2; python_full_version >= "3.6.1"
pywin32==301; sys_platform == "win32" and python_version >= "3.6"
pywinpty==1.1.2; os_name == "nt" and python_version >= "3.6"
@@ -155,7 +161,16 @@ selenium==3.141.0
send2trash==1.5.0; python_version >= "3.6"
six==1.15.0; python_full_version >= "3.6.1" and python_version >= "3.5" and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.6") and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.5") and (python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6")
smmap==4.0.0; python_version >= "3.6"
+snowballstemmer==2.1.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
soupsieve==2.2.1; python_version >= "3.6"
+sphinx-rtd-theme==0.5.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0"
+sphinx==4.0.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-applehelp==1.0.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-devhelp==1.0.2; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-htmlhelp==2.0.0; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-jsmath==1.0.1; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-qthelp==1.0.3; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
+sphinxcontrib-serializinghtml==1.1.5; python_full_version >= "3.6.8" and python_full_version < "4.0.0" and python_version >= "3.6"
statsmodels==0.12.2; python_version >= "3.6"
tabulate==0.8.9
tenacity==7.0.0; python_version >= "3.6"
diff --git a/terminal.py b/terminal.py
index b596d619507..f4800d05b54 100644
--- a/terminal.py
+++ b/terminal.py
@@ -162,13 +162,13 @@ Contexts:
help_text += """
clear clear a specific stock ticker from analysis
load load a specific stock ticker for analysis
- quote view the current price for a specific stock ticker
- candle view a candle chart for a specific stock ticker
- view view and load a specific stock ticker for technical analysis
"""
if self.ticker:
- help_text += """export export the currently loaded dataframe to a file or stdout
+ help_text += """quote view the current price for a specific stock ticker
+ candle view a candle chart for a specific stock ticker
+ view view and load a specific stock ticker for technical analysis
+ export export the currently loaded dataframe to a file or stdout
> dd in-depth due-diligence, \t e.g.: news, analyst, shorts, insider, sec
> ba behavioural analysis, \t from: reddit, stocktwits, twitter, google