Add Fear And Greed Index command to Economy menu (#509)

* Add CNN feargreed to economy menu

* Update README.md

* Update README.md

* Update ROADMAP.md

* Update README.md
This commit is contained in:
DidierRLopes
2021-06-23 20:56:10 +01:00
committed by GitHub
parent d1505359e5
commit d7bb5a9456
12 changed files with 463 additions and 46 deletions

View File

@@ -15,8 +15,8 @@
[![Bugs Open][bugs-open-shield]][bugs-open-url]
[![Bugs Closed][bugs-closed-shield]][bugs-closed-url]
[![Build Status](https://github.com/DidierRLopes/GamestonkTerminal/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/DidierRLopes/GamestonkTerminal/actions)
[![GitHub release](https://img.shields.io/github/release/DidierRLopes/GamestonkTerminal.svg?maxAge=3600)](https://github.com/DidierRLopes/GamestonkTerminal/releases)
[![Build Status](https://github.com/GamestonkTerminal/GamestonkTerminal/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/GamestonkTerminal/GamestonkTerminal/actions)
[![GitHub release](https://img.shields.io/github/release/GamestonkTerminal/GamestonkTerminal.svg?maxAge=3600)](https://github.com/GamestonkTerminal/GamestonkTerminal/releases)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![Discord Shield](https://discordapp.com/api/guilds/831165782750789672/widget.png?style=shield)
@@ -25,7 +25,7 @@
<!-- PROJECT LOGO -->
<br />
<p align="center">
<a href="https://github.com/DidierRLopes/GamestonkTerminal">
<a href="https://github.com/GamestonkTerminal/GamestonkTerminal">
<img src="images/gst_logo_lockup_rGreen_with_letters.png" alt="Logo" width="800" height="276">
</a>
@@ -34,16 +34,16 @@
<p align="center">
The next best thing after Bloomberg Terminal. #weliketheterminal
<br />
<a href="https://github.com/DidierRLopes/GamestonkTerminal/blob/main/ROADMAP.md"><strong>≪ ROADMAP</strong></a>
<a href="https://github.com/GamestonkTerminal/GamestonkTerminal/blob/main/ROADMAP.md"><strong>≪ ROADMAP</strong></a>
&nbsp · &nbsp
<a href="https://github.com/DidierRLopes/GamestonkTerminal/tree/main/gamestonk_terminal/README.md"><strong>FEATURES »</strong></a>
<a href="https://github.com/GamestonkTerminal/GamestonkTerminal/tree/main/gamestonk_terminal/README.md"><strong>FEATURES »</strong></a>
<br />
<br />
<a href="https://github.com/DidierRLopes/GamestonkTerminal/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBug%5D">Report Bug</a>
<a href="https://github.com/GamestonkTerminal/GamestonkTerminal/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBug%5D">Report Bug</a>
·
<a href="https://github.com/DidierRLopes/GamestonkTerminal/issues/new?assignees=&labels=enhancement&template=enhancement.md&title=%5BIMPROVE%5D">Suggest Improvement</a>
<a href="https://github.com/GamestonkTerminal/GamestonkTerminal/issues/new?assignees=&labels=enhancement&template=enhancement.md&title=%5BIMPROVE%5D">Suggest Improvement</a>
·
<a href="https://github.com/DidierRLopes/GamestonkTerminal/issues/new?assignees=&labels=new+feature&template=feature_request.md&title=%5BFR%5D">Request Feature</a>
<a href="https://github.com/GamestonkTerminal/GamestonkTerminal/issues/new?assignees=&labels=new+feature&template=feature_request.md&title=%5BFR%5D">Request Feature</a>
</p>
</p>
@@ -167,7 +167,7 @@ After you've installed Gamestonk Terminal, you'll find a file named "Gamestonk T
**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* <a href="https://github.com/DidierRLopes/GamestonkTerminal/blob/main/TROUBLESHOOT.md"><strong>troubleshoot page</strong></a>
**TROUBLESHOOT:** If you are having troubles to install, check our *newest* <a href="https://github.com/GamestonkTerminal/GamestonkTerminal/blob/main/TROUBLESHOOT.md"><strong>troubleshoot page</strong></a>
### Advanced User Install - Machine Learning
@@ -333,9 +333,9 @@ Recommended if you bought the dip, and the share price keeps dipping. You may as
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/DidierRLopes/GamestonkTerminal/issues) would make you buy even higher and selling even lower.
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/DidierRLopes/GamestonkTerminal/issues) so that the team can fix, and keep the old ways.
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**
@@ -347,7 +347,7 @@ Welcome to the club, and feel free to support the developers behind this amazing
## License
Distributed under the MIT License. See [LICENSE](https://github.com/DidierRLopes/GamestonkTerminal/blob/main/LICENSE) for more information.
Distributed under the MIT License. See [LICENSE](https://github.com/GamestonkTerminal/GamestonkTerminal/blob/main/LICENSE) for more information.
## Disclaimer
@@ -394,19 +394,19 @@ cclauss, shadycuz, lolrenx, buzzCraft, clothespin, arcutright, jperkins12, nodes
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
[contributors-shield]: https://img.shields.io/github/contributors/DidierRLopes/GamestonkTerminal.svg?style=for-the-badge
[contributors-url]: https://github.com/DidierRLopes/GamestonkTerminal/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/DidierRLopes/GamestonkTerminal.svg?style=for-the-badge
[forks-url]: https://github.com/DidierRLopes/GamestonkTerminal/network/members
[stars-shield]: https://img.shields.io/github/stars/DidierRLopes/GamestonkTerminal.svg?style=for-the-badge
[stars-url]: https://github.com/DidierRLopes/GamestonkTerminal/stargazers
[issues-shield]: https://img.shields.io/github/issues/DidierRLopes/GamestonkTerminal.svg?style=for-the-badge&color=blue
[issues-url]: https://github.com/DidierRLopes/GamestonkTerminal/issues
[bugs-open-shield]: https://img.shields.io/github/issues/DidierRLopes/GamestonkTerminal/type%3Abug.svg?style=for-the-badge&color=yellow
[bugs-open-url]: https://github.com/DidierRLopes/GamestonkTerminal/issues?q=is%3Aissue+label%3Atype%3Abug+is%3Aopen
[bugs-closed-shield]: https://img.shields.io/github/issues-closed/DidierRLopes/GamestonkTerminal/type%3Abug.svg?style=for-the-badge&color=success
[bugs-closed-url]: https://github.com/DidierRLopes/GamestonkTerminal/issues?q=is%3Aissue+label%3Atype%3Abug+is%3Aclosed
[license-shield]: https://img.shields.io/github/license/DidierRLopes/GamestonkTerminal.svg?style=for-the-badge
[license-url]: https://github.com/DidierRLopes/GamestonkTerminal/blob/master/LICENSE.txt
[contributors-shield]: https://img.shields.io/github/contributors/GamestonkTerminal/GamestonkTerminal.svg?style=for-the-badge
[contributors-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/GamestonkTerminal/GamestonkTerminal.svg?style=for-the-badge
[forks-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/network/members
[stars-shield]: https://img.shields.io/github/stars/GamestonkTerminal/GamestonkTerminal.svg?style=for-the-badge
[stars-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/stargazers
[issues-shield]: https://img.shields.io/github/issues/GamestonkTerminal/GamestonkTerminal.svg?style=for-the-badge&color=blue
[issues-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/issues
[bugs-open-shield]: https://img.shields.io/github/issues/GamestonkTerminal/GamestonkTerminal/type%3Abug.svg?style=for-the-badge&color=yellow
[bugs-open-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/issues?q=is%3Aissue+label%3Atype%3Abug+is%3Aopen
[bugs-closed-shield]: https://img.shields.io/github/issues-closed/GamestonkTerminal/GamestonkTerminal/type%3Abug.svg?style=for-the-badge&color=success
[bugs-closed-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/issues?q=is%3Aissue+label%3Atype%3Abug+is%3Aclosed
[license-shield]: https://img.shields.io/github/license/GamestonkTerminal/GamestonkTerminal.svg?style=for-the-badge
[license-url]: https://github.com/GamestonkTerminal/GamestonkTerminal/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/DidierRLopes

View File

@@ -205,6 +205,7 @@ ___
* [x] Implement Economic data (gpd, unemployment rate, ...) (@jmaslek) - [PR #167](https://github.com/DidierRLopes/GamestonkTerminal/pull/167)
* [x] Refactor FRED to ECON menu and add VIX view (@jmaslek) - [PR #405](https://github.com/DidierRLopes/GamestonkTerminal/pull/405)
* [x] Output economic impact events calendar (@didier) - [PR #430](https://github.com/DidierRLopes/GamestonkTerminal/pull/430)
* [x] Add CNN Fear and Greed Index (@didier) - [PR #509](https://github.com/DidierRLopes/GamestonkTerminal/pull/509)
**NEXT**

View File

@@ -393,6 +393,7 @@ Command|Description|Source
Command|Description|Source
------ | -------- | --------
`feargreed` | CNN Fear Greed Index | <https://money.cnn.com/data/fear-and-greed/>
`events` | economic impact events | <https://finnhub.io>
`fred` | display customized FRED data | <https://fred.stlouisfed.org>
`vixcls` | Volatility Index | <https://fred.stlouisfed.org>

View File

@@ -2,6 +2,8 @@
This menu aims to assess economy data, and the usage of the following commands along with an example will be exploited below.
* [feargreed](#feargreed)
* CNN Fear Greed Index from https://money.cnn.com/data/fear-and-greed/
* [events](#events)
* economic impact events [Finnhub]
* [fred](#fred)
@@ -30,6 +32,19 @@ This menu aims to assess economy data, and the usage of the following commands a
* Canada / U.S. Foreign Exchange Rate (CAD per 1 USD)
## feargreed <a name="feargreed"></a>
```text
usage: feargreed [-i {jbd,mv,pco,mm,sps,spb,shd,index}]
```
Display CNN Fear And Greed Index from https://money.cnn.com/data/fear-and-greed/.
* -i : 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. Default: None, shows all.
![feargreed](https://user-images.githubusercontent.com/25267873/122684285-7338d400-d1fc-11eb-8702-d409d96a2672.png)
<img width="962" alt="Captura de ecrã 2021-06-20, às 19 18 12" src="https://user-images.githubusercontent.com/25267873/122684256-4a184380-d1fc-11eb-939c-d8007310324d.png">
## events <a name="events"></a>
```text
usage: events [-c {NZ,AU,ERL,CA,EU,US,JP,CN,GB,CH}] [-i {low,medium,high,all}] [-n NUM]

View File

@@ -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

View File

@@ -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"""

View File

@@ -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(

260
poetry.lock generated
View File

@@ -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"},

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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