SDK Auto-Generation/Refactor (#3358)

* Fixes

* Update stocks_helper.py

* update git-actions set-output to new format

* Update stocks_helper.py

* Update terminal_helper.py

* removed LineAnnotateDrawer from qa_view

* lint

* few changes

* updates

* sdk auto gen modules done

* Update stocks_helper.py

* updates to changed imports, and remove first sdk_modules

* Update generate_sdk.py

* Update generate_sdk.py

* pylint

* revert stocks_helper

* Update generate_sdk.py

* Update sdk.py

* Update generate_sdk.py

* full auto generation, added sdk.py/controllers creation

* missed enable forecasting

* added running black in subprocess after sdk files generation completes

* removed deleted sdk_arg_logger

* comment out tests

* property doc fix

* clean up

* Update generate_sdk.py

* make trailmap classes useable for doc generation

* Update generate_sdk.py

* added lineon to trailmap class for linking to func in markdown

* changed lineon to dict

* added full_path to trailmap for linking in docs

* updated portfolio

* added func_def to trailmap attributes for markdown in docs, added missing type hints to covid functions

* Update generate_sdk.py

* Update generate_sdk.py

* Update generate_sdk.py

* Update generate_sdk.py

* merge

* update sdk

* updates

* Update generate_sdk.py

* Update generate_sdk.py

* dead imports

* bump

* updates

* updates

* updated missing

* added alt realestate functions to trailmap, logic to clear folders before building

* Update __init__.py

* Update generate_sdk.py

* clean __init__.py files before build

* sync website content folder

* Update generate_sdk.py

* updates + logging

* drop pandas inplace.  add docstrings

* Update trail_map.py

* Update generate_sdk.py

* Update trail_map.py

* stocks/fa PR added

* synced trailmap with develop branch

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update sdk_init.py

* fix removed keys functions

* updates

* reqs txt files

* forgot to save

* up to date with main

* made sure help(openbb.trailmap) is preserved

* ruff

* Update requirements-full.txt

---------

Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Chavithra <chavithra@gmail.com>
This commit is contained in:
teh_coderer
2023-02-15 13:37:44 -06:00
committed by GitHub
parent e57de3b453
commit 69b4d117fa
46 changed files with 15652 additions and 9520 deletions

View File

@@ -39,7 +39,7 @@ jobs:
run: poetry install --no-interaction --no-root -E doc
- name: Install packages
run: poetry install --no-interaction -E prediction -E doc -E optimization
run: poetry install --no-interaction -E forecast -E doc -E optimization
- run: |
source $VENV

36
CONTRIBUTING.md vendored
View File

@@ -309,24 +309,42 @@ In addition, note the `self.load_class` which allows to not create a new DarkPoo
In order to add a command to the SDK, follow these steps:
1. Go to the `trail_map.csv` file located in `openbb_terminal/miscellaneous/library`, which should look like this:
1. If you've created a new model or view file, add the import with an alias to `openbb_terminal/sdk_core/sdk_init.py` following this structure:
```python
# Stocks - Fundamental Analysis
from openbb_terminal.stocks.fundamental_analysis import (
finviz_model as stocks_fa_finviz_model,
finnhub_model as stocks_fa_finnhub_model,
finnhub_view as stocks_fa_finnhub_view,
)
```
2. Go to the `trail_map.csv` file located in `openbb_terminal/sdk_core`, which should look like this:
```csv
trail,model,view
stocks.fa.rot,openbb_terminal.stocks.fundamental_analysis.finnhub_model.get_rating_over_time,openbb_terminal.stocks.fundamental_analysis.finnhub_view.rating_over_time
stocks.fa.analyst,openbb_terminal.stocks.fundamental_analysis.finviz_model.get_analyst_data,
stocks.fa.analyst,stocks_fa_finviz_model.get_analyst_data,
stocks.fa.rot,stocks_fa_finnhub_model.get_rating_over_time,stocks_fa_finnhub_view.rating_over_time
```
In this file, the trail represents the path to the function to be called. The model represents the path to the model function and the view represents the path to the view function. Note that the second line does not have an associated view function, so we leave that column empty (the trailing comma is required to load).
In this file, the trail represents the path to the function to be called. The model represents the import alias we gave to the `_model` file. The view represents the import alias we gave to the `_view` file.
2. Add your new function to this structure. In our example of the `shorted` function, our trail would be `stocks.dps.shorted`.
The model is the path to the `_model` function that was written, `openbb_terminal.stocks.dark_pool_shorts.yahoofinance_model.get_most_shorted`.
The view is the path to the `_view` function that was written: `openbb_terminal.stocks.dark_pool_shorts.yahoofinance_view.display_most_shorted`.
3. Add your new function to this structure. In our example of the `shorted` function, our trail would be `stocks.dps.shorted`.
The model is the import alias to the `_model` function that was written: `stocks_dps_yahoofinance_model.get_most_shorted`.
The view is the import alias to the `_view` function that was written: `stocks_dps_yahoofinance_view.display_most_shorted`.
The added line of the file should look like this:
```csv
stocks.dps.shorted,openbb_terminal.stocks.dark_pool_shorts.yahoofinance_model.get_most_shorted,openbb_terminal.stocks.dark_pool_shorts.yahoofinance_view.display_most_shorted
stocks.dps.shorted,stocks_dps_yahoofinance_model.get_most_shorted,stocks_dps_yahoofinance_view.display_most_shorted
```
4. Generate the SDK files by running `python generate_sdk.py` from the root of the project. This will automatically generate the SDK `openbb_terminal/sdk.py`, corresponding `openbb_terminal/sdk_core/controllers/` and `openbb_terminal/sdk_core/models/` class files.
To sort the `trail_map.csv` file and generate the SDK files, run the following command
```bash
python generate_sdk.py sort
```
### Open a Pull Request

2
TROUBLESHOOT.md vendored
View File

@@ -106,7 +106,7 @@ If you run into issues installing or `Cannot convert a symbolic Tensor...` at ru
```bash
poetry install
poetry install -E prediction
poetry install -E forecast
```
_Commands that may help you in case of an error:_

View File

@@ -62,9 +62,9 @@ RUN chown python:python .openbb_terminal
# SETUP OPENBB IMAGE
FROM repository as dependencies
RUN poetry install --no-root --no-dev --extras optimization --extras prediction
RUN poetry install --no-root --no-dev --extras optimization --extras forecast
# SETUP OPENBB IMAGE
FROM dependencies as openbb
CMD ["poetry", "run", "python", "terminal.py"]
CMD ["poetry", "run", "python", "terminal.py"]

540
generate_sdk.py Normal file
View File

@@ -0,0 +1,540 @@
import os
import re
import subprocess
import sys
from pathlib import Path
from typing import Any, Dict, List, Optional, TextIO
from openbb_terminal.rich_config import console
from openbb_terminal.sdk_core.sdk_helpers import get_sdk_imports_text
from openbb_terminal.sdk_core.trailmap import Trailmap, get_trailmaps
REPO_ROOT = Path(__file__).parent.joinpath("openbb_terminal").resolve()
sub_names = {
"defi": "DeFi",
"disc": "Discovery",
"dd": "Due Diligence",
"onchain": "OnChain",
"ov": "Overview",
"keys": "Keys",
"forecast": "Forecasting",
"alt": "Alternative",
"crypto": "Cryptocurrency",
"ba": "Behavioral Analysis",
"ca": "Comparison Analysis",
"dps": "Darkpool Shorts",
"po": "Portfolio Optimization",
"qa": "Quantitative Analysis",
"screener": "Screener",
"sia": "Sector Industry Analysis",
"ta": "Technical Analysis",
"th": "Trading Hours",
"fa": "Fundamental Analysis",
"Oss": "Open Source Software",
"funds": "Mutual Funds",
"gov": "Government",
"ins": "Insiders",
"nft": "NFT",
}
sdk_openbb_var = """
class SDKLogger:
def __init__(self) -> None:
self.__check_initialize_logging()
def __check_initialize_logging(self):
if not cfg.LOGGING_SUPPRESS:
self.__initialize_logging()
@staticmethod
def __initialize_logging() -> None:
# pylint: disable=C0415
from openbb_terminal.core.log.generation.settings_logger import log_all_settings
from openbb_terminal.loggers import setup_logging
cfg.LOGGING_SUB_APP = "sdk"
setup_logging()
log_all_settings()
openbb = OpenBBSDK()\r\r
"""
disable_lines = "# flake8: noqa\r# pylint: disable=C0301,R0902,R0903\r"
class BuildCategoryModelClasses:
def __init__(self, trailmaps: List[Trailmap]) -> None:
self.trailmaps = trailmaps
self.categories: Dict[str, Any] = {}
self.import_modules: Dict[str, Any] = {}
self.root_modules: Dict[str, Any] = {}
self.import_cat_class = (
"from openbb_terminal.sdk_core.sdk_helpers import Category\r"
)
for tmap in self.trailmaps:
local = tmap.location_path
self.categories = self.add_todict(self.categories, local, tmap)
for folder in ["models", "controllers"]:
if not (REPO_ROOT / f"sdk_core/{folder}").exists():
(REPO_ROOT / f"sdk_core/{folder}").mkdir()
if not (REPO_ROOT / f"sdk_core/{folder}/__init__.py").exists():
with open(REPO_ROOT / f"sdk_core/{folder}/__init__.py", "w") as f:
f.write(
"# flake8: noqa\r# pylint: disable=unused-import,wrong-import-order\r\r"
)
if not (REPO_ROOT / "sdk_core/__init__.py").exists():
with open(REPO_ROOT / "sdk_core/__init__.py", "w") as f:
f.write("")
def add_todict(self, d: dict, location_path: list, tmap: Trailmap) -> dict:
"""Adds the trailmap to the dictionary. A trailmap is a path to a function
in the sdk. This function creates the dictionary paths to the function."""
if location_path[0] not in d:
d[location_path[0]] = {}
if len(location_path) > 1:
self.add_todict(d[location_path[0]], location_path[1:], tmap)
else:
d[location_path[0]][tmap.class_attr] = tmap
return d
def get_nested_dict(self, d: dict) -> dict:
"""Gets the nested dictionary of the category."""
nested_dict = {}
for k, v in d.items():
if isinstance(v, dict):
nested_dict[k] = self.get_nested_dict(v)
return nested_dict
def get_subcat_fullname(self, cat: str) -> str:
"""Gets the full category name from the shortened category name."""
if cat in sub_names:
return sub_names[cat]
return cat.title().replace(" ", "")
def check_submodules(self, category: str) -> bool:
"""Checks if a category has submodules."""
for d in self.categories[category].values():
if isinstance(d, dict):
return True
return False
def write_init_imports(self, importstr: str, filestr: str) -> None:
"""Checks if a category has submodules and adds the imports to the init file."""
regex = re.compile(importstr)
with open(REPO_ROOT / filestr) as init_file:
check_init = bool(regex.search(init_file.read()))
if not check_init:
with open(REPO_ROOT / filestr, "a") as init_file:
init_file.write(f"{importstr}\r")
def write_sdk_class(
self, category: str, f: TextIO, cls_type: Optional[str] = ""
) -> None:
"""Writes the sdk class to the file.
Parameters
----------
category : str
The category name.
f : TextIO
The file to write to.
cls_type : Optional[str], optional
The class type, by default ""
"""
if category in self.root_modules:
class_name = f"{category.title()}{cls_type}(model.{category.title()}Root)"
else:
class_name = f"{category.title()}{cls_type}"
f.write(
f'class {class_name}:\r """{self.get_subcat_fullname(category)} Module.\r'
)
def write_class_property(
self, category: str, f: TextIO, subcat: Optional[str] = ""
) -> None:
"""Writes the class property to the file.
Parameters
----------
category : str
The category name.
f : TextIO
The file to write to.
subcat : Optional[str], optional
The subcategory name, by default None
"""
def_name = category if not subcat else subcat
if subcat:
subcat = f" {self.get_subcat_fullname(subcat)}"
category = sub_names.get(category, category.title())
f.write(
f" @property\r def {def_name}(self):\r "
f'"""{category}{subcat} Submodule\r'
)
def write_class_attr_docs(
self,
d: dict,
f: TextIO,
module: bool = True,
sdk_root: bool = False,
trail: list = None,
) -> None:
"""Writes the class attribute docs to the category file.
Parameters
----------
d : dict
The dictionary of the category.
f : TextIO
The file to write to.
module : bool, optional
If the category is a module, by default True
sdk_root : bool, optional
If this is the sdk root file, by default False
trail : list, optional
The trail to the function, by default None
"""
add_indent = "" if module else " "
added_attributes = False
for v in d.values():
if isinstance(v, Trailmap):
if not added_attributes:
f.write(f"\r{add_indent} Attributes:\r")
added_attributes = True
for key in ["model", "view"]:
if v.func_attrs.get(key, None) and v.func_attrs[key].short_doc:
view = v.view_name if key == "view" else ""
f.write(
f"{add_indent} `{v.class_attr}{view}`: {v.func_attrs[key].short_doc}\\n\r"
)
f.write(f'{add_indent} """\r\r')
if trail:
f.write(f' _location_path = "{".".join(trail)}"\r')
if module:
f.write(" def __init__(self):\r super().__init__()\r")
elif sdk_root:
f.write(" def __init__(self):\r SDKLogger()\r")
def write_class_attributes(
self, d: dict, f: TextIO, cat: Optional[str] = None
) -> None:
"""Writes the class attributes to the category file.
Parameters
----------
d : dict
The dictionary of the category.
f : TextIO
The file to write to.
cat : Optional[str], optional
The category name, by default None
"""
add_indent = ""
missing_deps = {
"forecast": "FORECASTING_TOOLKIT",
"po": "OPTIMIZATION_TOOLKIT",
}
if cat in missing_deps:
f.write(
f"""
if not lib.{missing_deps[cat]}_ENABLED:\r
# pylint: disable=C0415
from openbb_terminal.rich_config import console
console.print(lib.{missing_deps[cat]}_WARNING)\r\r"""
)
add_indent = " "
f.write(f" if lib.{missing_deps[cat]}_ENABLED:\r")
for v in d.values():
if isinstance(v, Trailmap):
for attr, func in zip(["", v.view_name], [v.model_func, v.view_func]):
if func:
f.write(
f"{add_indent} self.{v.class_attr}{attr} = {func}\r"
)
f.write("\r\r")
def write_category(self, category: str, d: dict, f: TextIO) -> None:
"""Writes the category class to the file
Parameters
----------
category : str
The category name
d : dict
The category dictionary
f : TextIO
The file to write to
"""
subname = self.get_subcat_fullname(category)
# If this catergory has no attributes, then we don't write it to the file.
if not any(isinstance(v, Trailmap) for v in d.values()):
return
self.root_modules[category] = f"{category.title().replace(' ', '')}Root"
f.write(f"class {self.root_modules[category]}(Category):\r")
f.write(f' """{subname.title()} Module\r')
self.write_class_attr_docs(d, f, trail=[category])
self.write_class_attributes(d, f, category)
def write_nested_category(self, category: str, d: dict, f: TextIO) -> None:
"""Writes the nested category classes.
Parameters
----------
category : str
The category name
d : dict
The category dictionary
f : TextIO
The file to write to
"""
for nested_category, nested_dict in d.items():
if isinstance(nested_dict, Trailmap):
continue
subname = self.get_subcat_fullname(nested_category)
class_name = f"{category.title()}{subname.replace(' ', '')}(Category)"
f.write(f'class {class_name}:\r """{subname} Module.\r')
self.write_nested_submodule_docs(nested_dict, f)
if isinstance(nested_dict, dict):
self.write_class_attr_docs(
nested_dict, f, trail=[category, nested_category]
)
self.write_class_attributes(nested_dict, f, nested_category)
def write_submodule_doc(
self, k: str, f: TextIO, added: bool = False, indent: bool = False
) -> None:
"""Writes the submodules to the class docstring.
Parameters
----------
d : dict
The category dictionary
f : TextIO
The file to write to
added : bool, optional
Whether or not "Submodules:" have been added to the docstring, by default False
indent : bool, optional
Whether or not to add an indent to the docstring, by default False
"""
add_indent = " " if indent else ""
if not added:
f.write("\r Submodules:\r")
subcat_name = self.get_subcat_fullname(k)
f.write(f"{add_indent} `{k}`: {subcat_name} Module\r")
def write_nested_submodule_docs(
self, nested_dict: dict, f: TextIO, indent: bool = False
) -> None:
"""Writes the nested submodule docs to the class docstring.
Parameters
----------
nested_dict : dict
The nested dictionary
f : TextIO
The file to write to
indent : bool, optional
Whether or not to add an indent to the docstring, by default False
"""
added = False
nested_subcat = self.get_nested_dict(nested_dict)
if nested_subcat:
for k in nested_subcat:
if isinstance(nested_dict[k], Trailmap):
continue
self.write_submodule_doc(k, f, added, indent)
if not added:
added = True
def write_category_file(self, category: str, d: dict) -> None:
"""Writes the category file. This is the file that contains the categories
and subcategories of the sdk.
Parameters
----------
category : str
The category name
d : dict
The category dictionary
"""
with open(REPO_ROOT / f"sdk_core/models/{category}_sdk_model.py", "w") as f:
import_cat_class = self.import_cat_class
if category in self.root_modules:
import_cat_class = ""
category = self.root_modules[category]
f.write(
f"{disable_lines}{import_cat_class}import openbb_terminal.sdk_core.sdk_init as lib\r\r\r"
)
if category not in self.root_modules and any(
isinstance(v, Trailmap) for v in d.values()
):
self.write_init_imports(
f"from .{category}_sdk_model import {category.title()}Root",
"sdk_core/models/__init__.py",
)
self.write_category(category, d, f)
self.write_nested_category(category, d, f)
f.seek(f.tell() - 2, os.SEEK_SET)
f.truncate()
def write_sdk_controller_file(self, category: str, d: dict) -> None:
"""Writes the sdk controller file. This is the file that contains the
controller classes for the sdk.
Parameters
----------
category : str
The category name
d : dict
The category dictionary
"""
added_init_imports = []
with open(
REPO_ROOT / f"sdk_core/controllers/{category}_sdk_controller.py", "w"
) as f:
f.write(
f"{disable_lines}from openbb_terminal.sdk_core.models "
f"import {category}_sdk_model as model\r\r\r"
)
if category not in added_init_imports and any(
isinstance(v, dict) for v in d.values()
):
self.write_init_imports(
f"from .{category}_sdk_controller import {category.title()}Controller",
"sdk_core/controllers/__init__.py",
)
added_init_imports.append(category)
self.write_sdk_class(category, f, "Controller")
self.write_nested_submodule_docs(self.categories[category], f, True)
self.write_class_attr_docs(d, f, False)
for subcategory in self.categories[category]:
if isinstance(d[subcategory], Trailmap):
continue
self.write_class_property(category, f, subcategory)
self.write_nested_submodule_docs(d[subcategory], f, True)
self.write_class_attr_docs(d[subcategory], f, False)
f.write(
f" return model.{category.title()}"
f"{self.get_subcat_fullname(subcategory).replace(' ', '')}()\r\r"
)
f.seek(f.tell() - 1, os.SEEK_SET)
f.truncate()
def write_sdk_file(self) -> None:
"""Writes the main sdk file. This is the file that we initialize the SDK with openbb."""
with open(REPO_ROOT / "sdk.py", "w") as f:
f.write(
f'{get_sdk_imports_text()}class OpenBBSDK:\r """OpenBB SDK Class.\r'
)
root_attrs = self.categories.pop("root")
if root_attrs:
self.write_class_attr_docs(root_attrs, f, False, True)
self.write_class_attributes(root_attrs, f)
for category in self.categories:
self.write_class_property(category, f)
self.write_nested_submodule_docs(self.categories[category], f, True)
self.write_class_attr_docs(self.categories[category], f, False)
if self.check_submodules(category):
f.write(f" return ctrl.{category.title()}Controller()\r\r")
else:
f.write(f" return model.{self.root_modules[category]}()\r\r")
f.write("\r".join(sdk_openbb_var.splitlines()))
def build(self) -> None:
"""Builds the SDK."""
for path in ["sdk_core/models", "sdk_core/controllers"]:
for file in (REPO_ROOT / path).glob("*.py"):
if file.name == "__init__.py":
with open(file, "w") as f:
f.write(
"# flake8: noqa\r"
"# pylint: disable=unused-import,wrong-import-order\r\r"
)
continue
file.unlink()
for category, d in self.categories.items():
if isinstance(d, Trailmap) or category == "root":
continue
self.write_category_file(category, d)
if self.check_submodules(category):
self.write_sdk_controller_file(category, d)
self.write_sdk_file()
for path in ["sdk.py", "sdk_core", "sdk_core/models", "sdk_core/controllers"]:
for file in (REPO_ROOT / path).glob("*.py"):
with open(file, "rb") as f:
content = f.read()
with open(file, "wb") as f:
f.write(content.replace(b"\r", b"\n"))
# We run black to make sure the code is formatted correctly
subprocess.check_call(["black", "openbb_terminal"])
def generate_sdk(sort: bool = False) -> None:
"""Main function to generate the SDK.
Parameters
----------
sort : bool, optional
Whether to sort the CSVs, by default False
"""
trailmaps = get_trailmaps(sort)
console.print("[yellow]Generating SDK...[/]")
BuildCategoryModelClasses(trailmaps).build()
console.print("[green]SDK Generated Successfully.[/]")
return
if __name__ == "__main__":
sys_args = sys.argv
sort = False
if len(sys_args) > 1:
if sys_args[1] == "sort":
sort = True
console.print("\n\n[bright_magenta]Sorting CSV...[/]\n")
else:
console.print("[red]Invalid argument.\n Accepted arguments: sort[/]")
generate_sdk(sort)

View File

@@ -110,7 +110,7 @@ conda install -c conda-forge lightgbm=3.3.3 -y
And install the Forecasting Toolkit
```bash
pip install "openbbterminal[prediction]"
pip install "openbbterminal[forecast]"
```
##### 5.2 **If you would like to use both Portfolio Optimization and ML forecast features**

View File

@@ -1,26 +1,528 @@
# pylint: disable=unused-import
"""OpenBB Terminal SDK."""
# flake8: noqa
# pylint: disable=unused-import,wrong-import-order
# pylint: disable=C0302,W0611,R0902,R0903,C0412,C0301,not-callable
import logging
import openbb_terminal.config_terminal as cfg
from openbb_terminal import helper_funcs as helper # noqa: F401
from openbb_terminal.base_helpers import load_dotenv_and_reload_configs
from openbb_terminal.config_terminal import theme # noqa: F401
from openbb_terminal.core.library.breadcrumb import Breadcrumb, MetadataBuilder
from openbb_terminal.core.library.trail_map import TrailMap
from openbb_terminal.cryptocurrency.due_diligence.pycoingecko_model import (
Coin, # noqa: F401
)
from openbb_terminal.helper_classes import TerminalStyle
from openbb_terminal.config_terminal import theme
from openbb_terminal.cryptocurrency.due_diligence.pycoingecko_model import Coin
from openbb_terminal.dashboards.dashboards_controller import DashboardsController
from openbb_terminal.helper_classes import TerminalStyle # noqa: F401
from openbb_terminal.reports import widget_helpers as widgets # noqa: F401
from openbb_terminal.reports.reports_controller import ReportController
import openbb_terminal.sdk_core.sdk_init as lib
from openbb_terminal.sdk_core import (
controllers as ctrl,
models as model,
)
from openbb_terminal.session.user import User
if User.is_guest():
load_dotenv_and_reload_configs()
TerminalStyle().applyMPLstyle()
trail = ""
trail_map = TrailMap()
metadata = MetadataBuilder.build(trail=trail, trail_map=trail_map)
logger = logging.getLogger(__name__)
theme.applyMPLstyle()
openbb = Breadcrumb(
metadata=metadata,
trail=trail,
trail_map=trail_map,
)
class OpenBBSDK:
"""OpenBB SDK Class.
Attributes:
`login`: Login and load user info.\n
`logout`: Logout and clear session.\n
`news`: Get news for a given term and source. [Source: Feedparser]\n
`whoami`: Display user info.\n
"""
def __init__(self):
SDKLogger()
self.login = lib.sdk_session.login
self.logout = lib.sdk_session.logout
self.news = lib.common_feedparser_model.get_news
self.whoami = lib.sdk_session.whoami
@property
def alt(self):
"""Alternative Submodule
Submodules:
`covid`: Covid Module
`oss`: Oss Module
`realestate`: Realestate Module
Attributes:
`hn`: Get top stories from HackerNews.\n
`hn_chart`: View top stories from HackerNews.\n
"""
return ctrl.AltController()
@property
def crypto(self):
"""Cryptocurrency Submodule
Submodules:
`dd`: Due Diligence Module
`defi`: DeFi Module
`disc`: Discovery Module
`nft`: NFT Module
`onchain`: OnChain Module
`ov`: Overview Module
`tools`: Tools Module
Attributes:
`candle`: Plot candle chart from dataframe. [Source: Binance]\n
`chart`: Load data for Technical Analysis\n
`find`: Find similar coin by coin name,symbol or id.\n
`load`: Load crypto currency to get data for\n
`price`: Returns price and confidence interval from pyth live feed. [Source: Pyth]\n
"""
return ctrl.CryptoController()
@property
def econometrics(self):
"""Econometrics Submodule
Attributes:
`bgod`: Calculate test statistics for autocorrelation\n
`bgod_chart`: Show Breusch-Godfrey autocorrelation test\n
`bols`: The between estimator is an alternative, usually less efficient estimator, can can be used to\n
`bpag`: Calculate test statistics for heteroscedasticity\n
`bpag_chart`: Show Breusch-Pagan heteroscedasticity test\n
`clean`: Clean up NaNs from the dataset\n
`coint`: Calculate cointegration tests between variable number of input series\n
`coint_chart`: Estimates long-run and short-run cointegration relationship for series y and x and apply\n
`comparison`: Compare regression results between Panel Data regressions.\n
`dwat`: Calculate test statistics for Durbin Watson autocorrelation\n
`dwat_chart`: Show Durbin-Watson autocorrelation tests\n
`fdols`: First differencing is an alternative to using fixed effects when there might be correlation.\n
`fe`: When effects are correlated with the regressors the RE and BE estimators are not consistent.\n
`get_regression_data`: This function creates a DataFrame with the required regression data as\n
`granger`: Calculate granger tests\n
`granger_chart`: Show granger tests\n
`load`: Load custom file into dataframe.\n
`norm`: The distribution of returns and generate statistics on the relation to the normal curve.\n
`norm_chart`: Determine the normality of a timeseries.\n
`ols`: Performs an OLS regression on timeseries data. [Source: Statsmodels]\n
`options`: Obtain columns-dataset combinations from loaded in datasets that can be used in other commands\n
`options_chart`: Plot custom data\n
`panel`: Based on the regression type, this function decides what regression to run.\n
`panel_chart`: Based on the regression type, this function decides what regression to run.\n
`pols`: PooledOLS is just plain OLS that understands that various panel data structures.\n
`re`: The random effects model is virtually identical to the pooled OLS model except that is accounts for the\n
`root`: Calculate test statistics for unit roots\n
`root_chart`: Determine the normality of a timeseries.\n
"""
return model.EconometricsRoot()
@property
def economy(self):
"""Economy Submodule
Attributes:
`available_indices`: Get available indices\n
`bigmac`: Display Big Mac Index for given countries\n
`bigmac_chart`: Display Big Mac Index for given countries\n
`country_codes`: Get available country codes for Bigmac index\n
`currencies`: Scrape data for global currencies\n
`events`: Get economic calendar for countries between specified dates\n
`fred`: Get Series data. [Source: FRED]\n
`fred_chart`: Display (multiple) series from https://fred.stlouisfed.org. [Source: FRED]\n
`fred_ids`: Get Series IDs. [Source: FRED]\n
`fred_notes`: Get series notes. [Source: FRED]\n
`future`: Get futures data. [Source: Finviz]\n
`futures`: Get futures data.\n
`get_groups`: Get group available\n
`glbonds`: Scrape data for global bonds\n
`index`: Get data on selected indices over time [Source: Yahoo Finance]\n
`index_chart`: Load (and show) the selected indices over time [Source: Yahoo Finance]\n
`indices`: Get the top US indices\n
`macro`: This functions groups the data queried from the EconDB database [Source: EconDB]\n
`macro_chart`: Show the received macro data about a company [Source: EconDB]\n
`macro_countries`: This function returns the available countries and respective currencies.\n
`macro_parameters`: This function returns the available macro parameters with detail.\n
`overview`: Scrape data for market overview\n
`perfmap`: Opens Finviz map website in a browser. [Source: Finviz]\n
`performance`: Get group (sectors, industry or country) performance data. [Source: Finviz]\n
`rtps`: Get real-time performance sector data\n
`rtps_chart`: Display Real-Time Performance sector. [Source: AlphaVantage]\n
`search_index`: Search indices by keyword. [Source: FinanceDatabase]\n
`spectrum`: Display finviz spectrum in system viewer [Source: Finviz]\n
`treasury`: Get U.S. Treasury rates [Source: EconDB]\n
`treasury_chart`: Display U.S. Treasury rates [Source: EconDB]\n
`treasury_maturities`: Get treasury maturity options [Source: EconDB]\n
`usbonds`: Scrape data for us bonds\n
`valuation`: Get group (sectors, industry or country) valuation data. [Source: Finviz]\n
`ycrv`: Gets yield curve data from FRED\n
`ycrv_chart`: Display yield curve based on US Treasury rates for a specified date.\n
"""
return model.EconomyRoot()
@property
def etf(self):
"""Etf Submodule
Submodules:
`disc`: Discovery Module
`scr`: Scr Module
Attributes:
`candle`: Show candle plot of loaded ticker.\n
`compare`: Compare selected ETFs\n
`etf_by_category`: Return a selection of ETFs based on category filtered by total assets.\n
`etf_by_name`: Get an ETF symbol and name based on ETF string to search. [Source: StockAnalysis]\n
`holdings`: Get ETF holdings\n
`ld`: Return a selection of ETFs based on description filtered by total assets.\n
`ln`: Return a selection of ETFs based on name filtered by total assets. [Source: Finance Database]\n
`load`: Load a symbol to perform analysis using the string above as a template.\n
`news`: Get news for a given term. [Source: NewsAPI]\n
`news_chart`: Prints table showing news for a given term. [Source: NewsAPI]\n
`overview`: Get overview data for selected etf\n
`symbols`: Gets all etf names and symbols\n
`weights`: Return sector weightings allocation of ETF. [Source: FinancialModelingPrep]\n
"""
return ctrl.EtfController()
@property
def forecast(self):
"""Forecasting Submodule
Attributes:
`anom`: Get Quantile Anomaly Detection Data\n
`anom_chart`: Display Quantile Anomaly Detection\n
`atr`: Calculate the Average True Range of a variable based on a a specific stock ticker.\n
`autoarima`: Performs Automatic ARIMA forecasting\n
`autoarima_chart`: Display Automatic ARIMA model.\n
`autoces`: Performs Automatic Complex Exponential Smoothing forecasting\n
`autoces_chart`: Display Automatic Complex Exponential Smoothing Model\n
`autoets`: Performs Automatic ETS forecasting\n
`autoets_chart`: Display Automatic ETS (Error, Trend, Sesonality) Model\n
`autoselect`: Performs Automatic Statistical forecasting\n
`autoselect_chart`: Display Automatic Statistical Forecasting Model\n
`brnn`: Performs Block RNN forecasting\n
`brnn_chart`: Display BRNN forecast\n
`clean`: Clean up NaNs from the dataset\n
`combine`: Adds the given column of df2 to df1\n
`corr`: Returns correlation for a given df\n
`corr_chart`: Plot correlation coefficients for dataset features\n
`delete`: Delete a column from a dataframe\n
`delta`: Calculate the %change of a variable based on a specific column\n
`desc`: Returns statistics for a given df\n
`ema`: A moving average provides an indication of the trend of the price movement\n
`expo`: Performs Probabilistic Exponential Smoothing forecasting\n
`expo_chart`: Display Probabilistic Exponential Smoothing forecast\n
`linregr`: Perform Linear Regression Forecasting\n
`linregr_chart`: Display Linear Regression Forecasting\n
`load`: Load custom file into dataframe.\n
`mom`: A momentum oscillator, which measures the percentage change between the current\n
`mstl`: Performs MSTL forecasting\n
`mstl_chart`: Display MSTL Model\n
`nbeats`: Perform NBEATS Forecasting\n
`nbeats_chart`: Display NBEATS forecast\n
`nhits`: Performs Nhits forecasting\n
`nhits_chart`: Display Nhits forecast\n
`plot`: Plot data from a dataset\n
`plot_chart`: Plot data from a dataset\n
`regr`: Perform Regression Forecasting\n
`regr_chart`: Display Regression Forecasting\n
`rename`: Rename a column in a dataframe\n
`rnn`: Perform RNN forecasting\n
`rnn_chart`: Display RNN forecast\n
`roc`: A momentum oscillator, which measures the percentage change between the current\n
`rsi`: A momentum indicator that measures the magnitude of recent price changes to evaluate\n
`rwd`: Performs Random Walk with Drift forecasting\n
`rwd_chart`: Display Random Walk with Drift Model\n
`season_chart`: Plot seasonality from a dataset\n
`seasonalnaive`: Performs Seasonal Naive forecasting\n
`seasonalnaive_chart`: Display SeasonalNaive Model\n
`signal`: A price signal based on short/long term price.\n
`sto`: Stochastic Oscillator %K and %D : A stochastic oscillator is a momentum indicator comparing a particular closing\n
`tcn`: Perform TCN forecasting\n
`tcn_chart`: Display TCN forecast\n
`tft`: Performs Temporal Fusion Transformer forecasting\n
`tft_chart`: Display Temporal Fusion Transformer forecast\n
`theta`: Performs Theta forecasting\n
`theta_chart`: Display Theta forecast\n
`trans`: Performs Transformer forecasting\n
`trans_chart`: Display Transformer forecast\n
"""
return model.ForecastRoot()
@property
def forex(self):
"""Forex Submodule
Submodules:
`oanda`: Oanda Module
Attributes:
`candle`: Show candle plot for fx data.\n
`fwd`: Gets forward rates from fxempire\n
`get_currency_list`: Load AV currency codes from a local file.\n
`load`: Load forex for two given symbols.\n
`quote`: Get forex quote.\n
"""
return ctrl.ForexController()
@property
def futures(self):
"""Futures Submodule
Attributes:
`curve`: Get curve futures [Source: Yahoo Finance]\n
`curve_chart`: Display curve futures [Source: Yahoo Finance]\n
`historical`: Get historical futures [Source: Yahoo Finance]\n
`historical_chart`: Display historical futures [Source: Yahoo Finance]\n
`search`: Get search futures [Source: Yahoo Finance]\n
"""
return model.FuturesRoot()
@property
def keys(self):
"""Keys Submodule
Attributes:
`av`: Set Alpha Vantage key\n
`binance`: Set Binance key\n
`bitquery`: Set Bitquery key\n
`cmc`: Set Coinmarketcap key\n
`coinbase`: Set Coinbase key\n
`coinglass`: Set Coinglass key.\n
`cpanic`: Set Cpanic key.\n
`degiro`: Set Degiro key\n
`eodhd`: Set Eodhd key.\n
`ethplorer`: Set Ethplorer key.\n
`finnhub`: Set Finnhub key\n
`fmp`: Set Financial Modeling Prep key\n
`fred`: Set FRED key\n
`get_keys_info`: Get info on available APIs to use in set_keys.\n
`github`: Set GitHub key.\n
`glassnode`: Set Glassnode key.\n
`messari`: Set Messari key.\n
`mykeys`: Get currently set API keys.\n
`news`: Set News key\n
`oanda`: Set Oanda key\n
`openbb`: Set OpenBB Personal Access Token.\n
`polygon`: Set Polygon key\n
`quandl`: Set Quandl key\n
`reddit`: Set Reddit key\n
`rh`: Set Robinhood key\n
`santiment`: Set Santiment key.\n
`set_keys`: Set API keys in bundle.\n
`shroom`: Set Shroom key\n
`smartstake`: Set Smartstake key.\n
`stocksera`: Set Stocksera key.\n
`tokenterminal`: Set Token Terminal key.\n
`tradier`: Set Tradier key\n
`twitter`: Set Twitter key\n
`walert`: Set Walert key\n
"""
return model.KeysRoot()
@property
def portfolio(self):
"""Portfolio Submodule
Submodules:
`alloc`: Alloc Module
`metric`: Metric Module
`po`: Portfolio Optimization Module
Attributes:
`bench`: Load benchmark into portfolio\n
`distr`: Display daily returns\n
`distr_chart`: Display daily returns\n
`dret`: Get daily returns\n
`dret_chart`: Display daily returns\n
`es`: Get portfolio expected shortfall\n
`holdp`: Get holdings of assets (in percentage)\n
`holdp_chart`: Display holdings of assets (in percentage)\n
`holdv`: Get holdings of assets (absolute value)\n
`holdv_chart`: Display holdings of assets (absolute value)\n
`load`: Get PortfolioEngine object\n
`maxdd`: Calculate the drawdown (MDD) of historical series. Note that the calculation is done\n
`maxdd_chart`: Display maximum drawdown curve\n
`mret`: Get monthly returns\n
`mret_chart`: Display monthly returns\n
`om`: Get omega ratio\n
`om_chart`: Display omega ratio\n
`perf`: Get portfolio performance vs the benchmark\n
`rbeta`: Get rolling beta using portfolio and benchmark returns\n
`rbeta_chart`: Display rolling beta\n
`rsharpe`: Get rolling sharpe ratio\n
`rsharpe_chart`: Display rolling sharpe\n
`rsort`: Get rolling sortino\n
`rsort_chart`: Display rolling sortino\n
`rvol`: Get rolling volatility\n
`rvol_chart`: Display rolling volatility\n
`show`: Get portfolio transactions\n
`summary`: Get portfolio and benchmark returns summary\n
`var`: Get portfolio VaR\n
`yret`: Get yearly returns\n
`yret_chart`: Display yearly returns\n
"""
return ctrl.PortfolioController()
@property
def qa(self):
"""Quantitative Analysis Submodule
Attributes:
`acf`: Plots Auto and Partial Auto Correlation of returns and change in returns\n
`bw`: Plots box and whisker plots\n
`calculate_adjusted_var`: Calculates VaR, which is adjusted for skew and kurtosis (Cornish-Fischer-Expansion)\n
`cdf`: Plots Cumulative Distribution Function\n
`cusum`: Plots Cumulative sum algorithm (CUSUM) to detect abrupt changes in data\n
`decompose`: Perform seasonal decomposition\n
`es`: Gets Expected Shortfall for specified stock dataframe.\n
`es_chart`: Prints table showing expected shortfall.\n
`hist`: Plots histogram of data\n
`kurtosis`: Kurtosis Indicator\n
`kurtosis_chart`: Plots rolling kurtosis\n
`line`: Display line plot of data\n
`normality`: Look at the distribution of returns and generate statistics on the relation to the normal curve.\n
`normality_chart`: Prints table showing normality statistics\n
`omega`: Get the omega series\n
`omega_chart`: Plots the omega ratio\n
`qqplot`: Plots QQ plot for data against normal quantiles\n
`quantile`: Overlay Median & Quantile\n
`quantile_chart`: Plots rolling quantile\n
`rolling`: Return rolling mean and standard deviation\n
`rolling_chart`: Plots mean std deviation\n
`sharpe`: Calculates the sharpe ratio\n
`sharpe_chart`: Plots Calculated the sharpe ratio\n
`skew`: Skewness Indicator\n
`skew_chart`: Plots rolling skew\n
`sortino`: Calculates the sortino ratio\n
`sortino_chart`: Plots the sortino ratio\n
`spread`: Standard Deviation and Variance\n
`spread_chart`: Plots rolling spread\n
`summary`: Print summary statistics\n
`summary_chart`: Prints table showing summary statistics\n
`unitroot`: Calculate test statistics for unit roots\n
`unitroot_chart`: Prints table showing unit root test calculations\n
`var`: Gets value at risk for specified stock dataframe.\n
`var_chart`: Prints table showing VaR of dataframe.\n
"""
return model.QaRoot()
@property
def stocks(self):
"""Stocks Submodule
Submodules:
`ba`: Behavioral Analysis Module
`ca`: Comparison Analysis Module
`disc`: Discovery Module
`dps`: Darkpool Shorts Module
`fa`: Fundamental Analysis Module
`gov`: Government Module
`ins`: Insiders Module
`options`: Options Module
`qa`: Quantitative Analysis Module
`screener`: Screener Module
`sia`: Sector Industry Analysis Module
`ta`: Technical Analysis Module
`th`: Trading Hours Module
Attributes:
`candle`: Show candle plot of loaded ticker.\n
`load`: Load a symbol to perform analysis using the string above as a template.\n
`process_candle`: Process DataFrame into candle style plot.\n
`quote`: Gets ticker quote from FMP\n
`search`: Search selected query for tickers.\n
`tob`: Get top of book bid and ask for ticker on exchange [CBOE.com]\n
"""
return ctrl.StocksController()
@property
def ta(self):
"""Technical Analysis Submodule
Attributes:
`ad`: Calculate AD technical indicator\n
`ad_chart`: Plots AD technical indicator\n
`adosc`: Calculate AD oscillator technical indicator\n
`adosc_chart`: Plots AD Osc Indicator\n
`adx`: ADX technical indicator\n
`adx_chart`: Plots ADX indicator\n
`aroon`: Aroon technical indicator\n
`aroon_chart`: Plots Aroon indicator\n
`atr`: Average True Range\n
`atr_chart`: Plots ATR\n
`bbands`: Calculate Bollinger Bands\n
`bbands_chart`: Plots bollinger bands\n
`cci`: Commodity channel index\n
`cci_chart`: Plots CCI Indicator\n
`cg`: Center of gravity\n
`cg_chart`: Plots center of gravity Indicator\n
`clenow`: Gets the Clenow Volatility Adjusted Momentum. this is defined as the regression coefficient on log prices\n
`clenow_chart`: Prints table and plots clenow momentum\n
`demark`: Get the integer value for demark sequential indicator\n
`demark_chart`: Plot demark sequential indicator\n
`donchian`: Calculate Donchian Channels\n
`donchian_chart`: Plots donchian channels\n
`ema`: Gets exponential moving average (EMA) for stock\n
`fib`: Calculate Fibonacci levels\n
`fib_chart`: Plots Calculated fibonacci retracement levels\n
`fisher`: Fisher Transform\n
`fisher_chart`: Plots Fisher Indicator\n
`hma`: Gets hull moving average (HMA) for stock\n
`kc`: Keltner Channels\n
`kc_chart`: Plots Keltner Channels Indicator\n
`ma`: Plots MA technical indicator\n
`ma_chart`: Plots MA technical indicator\n
`macd`: Moving average convergence divergence\n
`macd_chart`: Plots MACD signal\n
`obv`: On Balance Volume\n
`obv_chart`: Plots OBV technical indicator\n
`rsi`: Relative strength index\n
`rsi_chart`: Plots RSI Indicator\n
`sma`: Gets simple moving average (SMA) for stock\n
`stoch`: Stochastic oscillator\n
`stoch_chart`: Plots stochastic oscillator signal\n
`vwap`: Gets volume weighted average price (VWAP)\n
`vwap_chart`: Plots VWMA technical indicator\n
`wma`: Gets weighted moving average (WMA) for stock\n
`zlma`: Gets zero-lagged exponential moving average (ZLEMA) for stock\n
"""
return model.TaRoot()
class SDKLogger:
def __init__(self) -> None:
self.__check_initialize_logging()
def __check_initialize_logging(self):
if not cfg.LOGGING_SUPPRESS:
self.__initialize_logging()
@staticmethod
def __initialize_logging() -> None:
# pylint: disable=C0415
from openbb_terminal.core.log.generation.settings_logger import log_all_settings
from openbb_terminal.loggers import setup_logging
cfg.LOGGING_SUB_APP = "sdk"
setup_logging()
log_all_settings()
openbb = OpenBBSDK()

View File

View File

@@ -0,0 +1,9 @@
# flake8: noqa
# pylint: disable=unused-import,wrong-import-order
from .alt_sdk_controller import AltController
from .crypto_sdk_controller import CryptoController
from .etf_sdk_controller import EtfController
from .forex_sdk_controller import ForexController
from .portfolio_sdk_controller import PortfolioController
from .stocks_sdk_controller import StocksController

View File

@@ -0,0 +1,67 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.models import alt_sdk_model as model
class AltController(model.AltRoot):
"""Alternative Module.
Submodules:
`covid`: Covid Module
`oss`: Oss Module
`realestate`: Realestate Module
Attributes:
`hn`: Get top stories from HackerNews.\n
`hn_chart`: View top stories from HackerNews.\n
"""
@property
def covid(self):
"""Alternative Covid Submodule
Attributes:
`global_cases`: Get historical cases for given country.\n
`global_deaths`: Get historical deaths for given country.\n
`ov`: Get historical cases and deaths by country.\n
`ov_chart`: Prints table showing historical cases and deaths by country.\n
`slopes`: Load cases and find slope over period.\n
`slopes_chart`: Prints table showing countries with the highest case slopes.\n
`stat`: Show historical cases and deaths by country.\n
`stat_chart`: Prints table showing historical cases and deaths by country.\n
"""
return model.AltCovid()
@property
def oss(self):
"""Alternative Oss Submodule
Attributes:
`_make_request`: Helper method to scrap.\n
`_retry_session`: Helper methods that retries to make request.\n
`github_data`: Get repository stats.\n
`history`: Get repository star history.\n
`history_chart`: Plots repo summary [Source: https://api.github.com].\n
`ross`: Get startups from ROSS index [Source: https://runacap.com/].\n
`ross_chart`: Plots list of startups from ross index [Source: https://runacap.com/]\n
`search`: Get repos sorted by stars or forks. Can be filtered by categories.\n
`summary`: Get repository summary.\n
`summary_chart`: Prints table showing repo summary [Source: https://api.github.com].\n
`top`: Get repos sorted by stars or forks. Can be filtered by categories.\n
`top_chart`: Plots repo summary [Source: https://api.github.com].\n
"""
return model.AltOss()
@property
def realestate(self):
"""Alternative Realestate Submodule
Attributes:
`get_estate_sales`: All sales for specified postcode.\n
`get_region_stats`: Get regional house price statistics.\n
`get_towns_sold_prices`: Get towns sold house price data.\n
"""
return model.AltRealestate()

View File

@@ -0,0 +1,333 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.models import crypto_sdk_model as model
class CryptoController(model.CryptoRoot):
"""Cryptocurrency Module.
Submodules:
`dd`: Due Diligence Module
`defi`: DeFi Module
`disc`: Discovery Module
`nft`: NFT Module
`onchain`: OnChain Module
`ov`: Overview Module
`tools`: Tools Module
Attributes:
`candle`: Plot candle chart from dataframe. [Source: Binance]\n
`chart`: Load data for Technical Analysis\n
`find`: Find similar coin by coin name,symbol or id.\n
`load`: Load crypto currency to get data for\n
`price`: Returns price and confidence interval from pyth live feed. [Source: Pyth]\n
"""
@property
def dd(self):
"""Cryptocurrency Due Diligence Submodule
Attributes:
`active`: Returns active addresses of a certain symbol\n
`active_chart`: Plots active addresses of a certain symbol over time\n
`all_binance_trading_pairs`: Returns all available pairs on Binance in DataFrame format. DataFrame has 3 columns symbol, baseAsset, quoteAsset\n
`ath`: Get all time high for a coin in a given currency\n
`atl`: Get all time low for a coin in a given currency\n
`balance`: Get account holdings for asset. [Source: Binance]\n
`balance_chart`: Prints table showing account holdings for asset. [Source: Binance]\n
`basic`: Basic coin information [Source: CoinPaprika]\n
`basic_chart`: Prints table showing basic information for coin. Like:\n
`binance_available_quotes_for_each_coin`: Helper methods that for every coin available on Binance add all quote assets. [Source: Binance]\n
`candle`: Get candles for chosen trading pair and time interval. [Source: Coinbase]\n
`change`: Returns 30d change of the supply held in exchange wallets of a certain symbol.\n
`change_chart`: Plots 30d change of the supply held in exchange wallets.\n
`check_valid_binance_str`: Check if symbol is in defined binance. [Source: Binance]\n
`close`: Returns the price of a cryptocurrency\n
`coin`: Get coin by id [Source: CoinPaprika]\n
`coin_market_chart`: Get prices for given coin. [Source: CoinGecko]\n
`dev`: Get developer stats for a coin\n
`eb`: Returns the total amount of coins held on exchange addresses in units and percentage.\n
`eb_chart`: Plots total amount of coins held on exchange addresses in units and percentage.\n
`events`: Get all events related to given coin like conferences, start date of futures trading etc.\n
`events_chart`: Prints table showing all events for given coin id. [Source: CoinPaprika]\n
`ex`: Get all exchanges for given coin id. [Source: CoinPaprika]\n
`ex_chart`: Prints table showing all exchanges for given coin id. [Source: CoinPaprika]\n
`exchanges`: Helper method to get all the exchanges supported by ccxt\n
`fr`: Returns coin fundraising\n
`fr_chart`: Display coin fundraising\n
`get_mt`: Returns available messari timeseries\n
`get_mt_chart`: Prints table showing messari timeseries list\n
`gh`: Returns a list of developer activity for a given coin and time interval.\n
`gh_chart`: Returns a list of github activity for a given coin and time interval.\n
`gov`: Returns coin governance\n
`gov_chart`: Prints table showing coin governance\n
`headlines`: Gets Sentiment analysis provided by FinBrain's API [Source: finbrain].\n
`headlines_chart`: Sentiment analysis from FinBrain for Cryptocurrencies\n
`inv`: Returns coin investors\n
`inv_chart`: Prints table showing coin investors\n
`links`: Returns asset's links\n
`links_chart`: Prints table showing coin links\n
`mcapdom`: Returns market dominance of a coin over time\n
`mcapdom_chart`: Plots market dominance of a coin over time\n
`mkt`: All markets for given coin and currency [Source: CoinPaprika]\n
`mkt_chart`: Prints table showing all markets for given coin id. [Source: CoinPaprika]\n
`mt`: Returns messari timeseries\n
`mt_chart`: Plots messari timeseries\n
`news`: Get recent posts from CryptoPanic news aggregator platform. [Source: https://cryptopanic.com/]\n
`news_chart`: Prints table showing recent posts from CryptoPanic news aggregator platform.\n
`nonzero`: Returns addresses with non-zero balance of a certain symbol\n
`nonzero_chart`: Plots addresses with non-zero balance of a certain symbol\n
`ob`: Returns orderbook for a coin in a given exchange\n
`ob_chart`: Plots order book for a coin in a given exchange\n
`oi`: Returns open interest by exchange for a certain symbol\n
`oi_chart`: Plots open interest by exchange for a certain cryptocurrency\n
`pi`: Returns coin product info\n
`pi_chart`: Prints table showing project info\n
`pr`: Fetch data to calculate potential returns of a certain coin. [Source: CoinGecko]\n
`pr_chart`: Prints table showing potential returns of a certain coin. [Source: CoinGecko]\n
`ps`: Get all most important ticker related information for given coin id [Source: CoinPaprika]\n
`ps_chart`: Prints table showing ticker information for single coin [Source: CoinPaprika]\n
`rm`: Returns coin roadmap\n
`rm_chart`: Plots coin roadmap\n
`score`: Get scores for a coin from CoinGecko\n
`show_available_pairs_for_given_symbol`: Return all available quoted assets for given symbol. [Source: Coinbase]\n
`social`: Get social media stats for a coin\n
`stats`: Get 24 hr stats for the product. Volume is in base currency units.\n
`stats_chart`: Prints table showing 24 hr stats for the product. Volume is in base currency units.\n
`team`: Returns coin team\n
`team_chart`: Prints table showing coin team\n
`tk`: Returns coin tokenomics\n
`tk_chart`: Plots coin tokenomics\n
`tokenomics`: Get tokenomics for given coin. [Source: CoinGecko]\n
`trades`: Returns trades for a coin in a given exchange\n
`trades_chart`: Prints table showing trades for a coin in a given exchange\n
`trading_pair_info`: Get information about chosen trading pair. [Source: Coinbase]\n
`trading_pairs`: Helper method that return all trading pairs on binance. Methods ause this data for input for e.g\n
`twitter`: Get twitter timeline for given coin id. Not more than last 50 tweets [Source: CoinPaprika]\n
`twitter_chart`: Prints table showing twitter timeline for given coin id. Not more than last 50 tweets [Source: CoinPaprika]\n
"""
return model.CryptoDueDiligence()
@property
def defi(self):
"""Cryptocurrency DeFi Submodule
Attributes:
`anchor_data`: Returns anchor protocol earnings data of a certain terra address\n
`anchor_data_chart`: Plots anchor protocol earnings data of a certain terra address\n
`aterra`: Returns historical data of an asset in a certain terra address\n
`aterra_chart`: Plots the 30-day history of specified asset in terra address\n
`ayr`: Displays the 30-day history of the Anchor Yield Reserve.\n
`ayr_chart`: Plots the 30-day history of the Anchor Yield Reserve.\n
`dtvl`: Returns information about historical tvl of a defi protocol.\n
`dtvl_chart`: Plots historical TVL of different dApps\n
`gacc`: Get terra blockchain account growth history [Source: https://fcd.terra.dev/swagger]\n
`gacc_chart`: Plots terra blockchain account growth history [Source: https://fcd.terra.dev/swagger]\n
`gdapps`: Display top dApps (in terms of TVL) grouped by chain.\n
`gdapps_chart`: Plots top dApps (in terms of TVL) grouped by chain.\n
`gov_proposals`: Get terra blockchain governance proposals list [Source: https://fcd.terra.dev/swagger]\n
`gov_proposals_chart`: Prints table showing terra blockchain governance proposals list [Source: https://fcd.terra.dev/swagger]\n
`ldapps`: Returns information about listed DeFi protocols, their current TVL and changes to it in the last hour/day/week.\n
`ldapps_chart`: Prints table showing information about listed DeFi protocols, their current TVL and changes to it in\n
`luna_supply`: Get supply history of the Terra ecosystem\n
`luna_supply_chart`: Plots and prints table showing Luna circulating supply stats\n
`newsletters`: Scrape all substack newsletters from url list.\n
`newsletters_chart`: Prints table showing DeFi related substack newsletters.\n
`pairs`: Get lastly added trade-able pairs on Uniswap with parameters like:\n
`pairs_chart`: Prints table showing Lastly added pairs on Uniswap DEX.\n
`pools`: Get uniswap pools by volume. [Source: https://thegraph.com/en/]\n
`pools_chart`: Prints table showing uniswap pools by volume.\n
`sinfo`: Get staking info for provided terra account [Source: https://fcd.terra.dev/swagger]\n
`sinfo_chart`: Prints table showing staking info for provided terra account address [Source: https://fcd.terra.dev/swagger]\n
`sratio`: Get terra blockchain staking ratio history [Source: https://fcd.terra.dev/swagger]\n
`sratio_chart`: Plots terra blockchain staking ratio history [Source: https://fcd.terra.dev/v1]\n
`sreturn`: Get terra blockchain staking returns history [Source: https://fcd.terra.dev/v1]\n
`sreturn_chart`: Plots terra blockchain staking returns history [Source: https://fcd.terra.dev/swagger]\n
`stats`: Get base statistics about Uniswap DEX. [Source: https://thegraph.com/en/]\n
`stats_chart`: Prints table showing base statistics about Uniswap DEX. [Source: https://thegraph.com/en/]\n
`stvl`: Returns historical values of the total sum of TVLs from all listed protocols.\n
`stvl_chart`: Plots historical values of the total sum of TVLs from all listed protocols.\n
`swaps`: Get the last 100 swaps done on Uniswap [Source: https://thegraph.com/en/]\n
`swaps_chart`: Prints table showing last swaps done on Uniswap\n
`tokens`: Get list of tokens trade-able on Uniswap DEX. [Source: https://thegraph.com/en/]\n
`tokens_chart`: Prints table showing tokens trade-able on Uniswap DEX.\n
`validators`: Get information about terra validators [Source: https://fcd.terra.dev/swagger]\n
`validators_chart`: Prints table showing information about terra validators [Source: https://fcd.terra.dev/swagger]\n
`vaults`: Get DeFi Vaults Information. DeFi Vaults are pools of funds with an assigned strategy which main goal is to\n
`vaults_chart`: Prints table showing Top DeFi Vaults - pools of funds with an assigned strategy which main goal is to\n
"""
return model.CryptoDeFi()
@property
def disc(self):
"""Cryptocurrency Discovery Submodule
Attributes:
`categories_keys`: Get list of categories keys\n
`coin_list`: Get list of coins available on CoinGecko [Source: CoinGecko]\n
`coins`: Get N coins from CoinGecko [Source: CoinGecko]\n
`coins_chart`: Prints table showing top coins [Source: CoinGecko]\n
`coins_for_given_exchange`: Helper method to get all coins available on binance exchange [Source: CoinGecko]\n
`cpsearch`: Search CoinPaprika. [Source: CoinPaprika]\n
`cpsearch_chart`: Prints table showing Search over CoinPaprika. [Source: CoinPaprika]\n
`gainers`: Shows Largest Gainers - coins which gain the most in given period. [Source: CoinGecko]\n
`gainers_chart`: Prints table showing Largest Gainers - coins which gain the most in given period. [Source: CoinGecko]\n
`losers`: Shows Largest Losers - coins which lose the most in given period. [Source: CoinGecko]\n
`losers_chart`: Prints table showing Largest Losers - coins which lost the most in given period of time. [Source: CoinGecko]\n
`top_coins`: Get top cryptp coins.\n
`top_dapps`: Get top decentralized applications by daily volume and users [Source: https://dappradar.com/]\n
`top_dapps_chart`: Prints table showing top decentralized exchanges [Source: https://dappradar.com/]\n
`top_dexes`: Get top dexes by daily volume and users [Source: https://dappradar.com/]\n
`top_dexes_chart`: Prints table showing top decentralized exchanges [Source: https://dappradar.com/]\n
`top_games`: Get top blockchain games by daily volume and users [Source: https://dappradar.com/]\n
`top_games_chart`: Prints table showing top blockchain games [Source: https://dappradar.com/]\n
`top_nfts`: Get top nft collections [Source: https://dappradar.com/]\n
`top_nfts_chart`: Prints table showing top nft collections [Source: https://dappradar.com/]\n
`trending`: Returns trending coins [Source: CoinGecko]\n
`trending_chart`: Prints table showing trending coins [Source: CoinGecko]\n
"""
return model.CryptoDiscovery()
@property
def nft(self):
"""Cryptocurrency NFT Submodule
Attributes:
`collections`: Get nft collections [Source: https://nftpricefloor.com/]\n
`collections_chart`: Display NFT collections. [Source: https://nftpricefloor.com/]\n
`fp`: Get nft collections [Source: https://nftpricefloor.com/]\n
`fp_chart`: Display NFT collection floor price over time. [Source: https://nftpricefloor.com/]\n
`stats`: Get stats of a nft collection [Source: opensea.io]\n
`stats_chart`: Prints table showing collection stats. [Source: opensea.io]\n
"""
return model.CryptoNFT()
@property
def onchain(self):
"""Cryptocurrency OnChain Submodule
Attributes:
`baas`: Get an average bid and ask prices, average spread for given crypto pair for chosen time period.\n
`baas_chart`: Prints table showing an average bid and ask prices, average spread for given crypto pair for chosen\n
`balance`: Get info about tokens on you ethereum blockchain balance. Eth balance, balance of all tokens which\n
`balance_chart`: Display info about tokens for given ethereum blockchain balance e.g. ETH balance,\n
`btc_supply`: Returns BTC circulating supply [Source: https://api.blockchain.info/]\n
`btc_supply_chart`: Returns BTC circulating supply [Source: https://api.blockchain.info/]\n
`btc_transac`: Returns BTC confirmed transactions [Source: https://api.blockchain.info/]\n
`btc_transac_chart`: Returns BTC confirmed transactions [Source: https://api.blockchain.info/]\n
`btcsingleblock`: Returns BTC block data in json format. [Source: https://blockchain.info/]\n
`btcsingleblock_chart`: Returns BTC block data. [Source: https://api.blockchain.info/]\n
`dex_trades_monthly`: Get list of trades on Decentralized Exchanges monthly aggregated.\n
`dvcp`: Get daily volume for given pair [Source: https://graphql.bitquery.io/]\n
`dvcp_chart`: Prints table showing daily volume for given pair\n
`erc20_tokens`: Helper method that loads ~1500 most traded erc20 token.\n
`gwei`: Returns the most recent Ethereum gas fees in gwei\n
`gwei_chart`: Current gwei fees\n
`hist`: Get information about balance historical transactions. [Source: Ethplorer]\n
`hist_chart`: Display information about balance historical transactions. [Source: Ethplorer]\n
`holders`: Get info about top token holders. [Source: Ethplorer]\n
`holders_chart`: Display info about top ERC20 token holders. [Source: Ethplorer]\n
`hr`: Returns dataframe with mean hashrate of btc or eth blockchain and symbol price\n
`hr_chart`: Plots dataframe with mean hashrate of btc or eth blockchain and symbol price.\n
`info`: Get info about ERC20 token. [Source: Ethplorer]\n
`info_chart`: Display info about ERC20 token. [Source: Ethplorer]\n
`lt`: Get trades on Decentralized Exchanges aggregated by DEX [Source: https://graphql.bitquery.io/]\n
`lt_chart`: Prints table showing Trades on Decentralized Exchanges aggregated by DEX or Month\n
`prices`: Get token historical prices with volume and market cap, and average price. [Source: Ethplorer]\n
`prices_chart`: Display token historical prices with volume and market cap, and average price.\n
`query_graph`: Helper methods for querying graphql api. [Source: https://bitquery.io/]\n
`th`: Get info about token historical transactions. [Source: Ethplorer]\n
`th_chart`: Display info about token history. [Source: Ethplorer]\n
`token_decimals`: Helper methods that gets token decimals number. [Source: Ethplorer]\n
`top`: Get top 50 tokens. [Source: Ethplorer]\n
`top_chart`: Display top ERC20 tokens [Source: Ethplorer]\n
`ttcp`: Get most traded crypto pairs on given decentralized exchange in chosen time period.\n
`ttcp_chart`: Prints table showing most traded crypto pairs on given decentralized exchange in chosen time period.\n
`tv`: Get token volume on different Decentralized Exchanges. [Source: https://graphql.bitquery.io/]\n
`tv_chart`: Prints table showing token volume on different Decentralized Exchanges.\n
`tx`: Get info about transaction. [Source: Ethplorer]\n
`tx_chart`: Display info about transaction. [Source: Ethplorer]\n
`ueat`: Get number of unique ethereum addresses which made a transaction in given time interval.\n
`ueat_chart`: Prints table showing number of unique ethereum addresses which made a transaction in given time interval\n
`whales`: Whale Alert's API allows you to retrieve live and historical transaction data from major blockchains.\n
`whales_chart`: Display huge value transactions from major blockchains. [Source: https://docs.whale-alert.io/]\n
"""
return model.CryptoOnChain()
@property
def ov(self):
"""Cryptocurrency Overview Submodule
Attributes:
`altindex`: Get altcoin index overtime\n
`altindex_chart`: Displays altcoin index overtime\n
`btcrb`: Get bitcoin price data\n
`btcrb_chart`: Displays bitcoin rainbow chart\n
`categories`: Returns top crypto categories [Source: CoinGecko]\n
`categories_chart`: Shows top cryptocurrency categories by market capitalization\n
`cbpairs`: Get a list of available currency pairs for trading. [Source: Coinbase]\n
`cbpairs_chart`: Displays a list of available currency pairs for trading. [Source: Coinbase]\n
`coin_list`: Get list of all available coins on CoinPaprika [Source: CoinPaprika]\n
`contracts`: Gets all contract addresses for given platform [Source: CoinPaprika]\n
`contracts_chart`: Gets all contract addresses for given platform. [Source: CoinPaprika]\n
`cr`: Returns crypto {borrow,supply} interest rates for cryptocurrencies across several platforms\n
`cr_chart`: Displays crypto {borrow,supply} interest rates for cryptocurrencies across several platforms\n
`crypto_hack`: Get crypto hack\n
`crypto_hack_slugs`: Get all crypto hack slugs\n
`crypto_hacks`: Get major crypto-related hacks\n
`crypto_hacks_chart`: Display list of major crypto-related hacks. If slug is passed\n
`defi`: Get global statistics about Decentralized Finances [Source: CoinGecko]\n
`defi_chart`: Shows global statistics about Decentralized Finances. [Source: CoinGecko]\n
`derivatives`: Get list of crypto derivatives from CoinGecko API [Source: CoinGecko]\n
`derivatives_chart`: Shows list of crypto derivatives. [Source: CoinGecko]\n
`ewf`: Scrapes exchange withdrawal fees\n
`ewf_chart`: Exchange withdrawal fees\n
`exchanges`: Show top crypto exchanges.\n
`exmarkets`: List markets by exchange ID [Source: CoinPaprika]\n
`exmarkets_chart`: Get all markets for given exchange [Source: CoinPaprika]\n
`exrates`: Get list of crypto, fiats, commodity exchange rates from CoinGecko API [Source: CoinGecko]\n
`exrates_chart`: Shows list of crypto, fiats, commodity exchange rates. [Source: CoinGecko]\n
`globe`: Get global crypto market data.\n
`hm`: Get N coins from CoinGecko [Source: CoinGecko]\n
`hm_chart`: Shows cryptocurrencies heatmap [Source: CoinGecko]\n
`hold`: Returns public companies that holds ethereum or bitcoin [Source: CoinGecko]\n
`hold_chart`: Shows overview of public companies that holds ethereum or bitcoin. [Source: CoinGecko]\n
`indexes`: Get list of crypto indexes from CoinGecko API [Source: CoinGecko]\n
`indexes_chart`: Shows list of crypto indexes. [Source: CoinGecko]\n
`info`: Returns basic coin information for all coins from CoinPaprika API [Source: CoinPaprika]\n
`info_chart`: Displays basic coin information for all coins from CoinPaprika API. [Source: CoinPaprika]\n
`markets`: Returns basic coin information for all coins from CoinPaprika API [Source: CoinPaprika]\n
`markets_chart`: Displays basic market information for all coins from CoinPaprika API. [Source: CoinPaprika]\n
`news`: Get recent posts from CryptoPanic news aggregator platform. [Source: https://cryptopanic.com/]\n
`news_chart`: Display recent posts from CryptoPanic news aggregator platform.\n
`platforms`: List all smart contract platforms like ethereum, solana, cosmos, polkadot, kusama ... [Source: CoinPaprika]\n
`platforms_chart`: List all smart contract platforms like ethereum, solana, cosmos, polkadot, kusama.\n
`products`: Get list of financial products from CoinGecko API\n
`products_chart`: Shows list of financial products. [Source: CoinGecko]\n
`stables`: Returns top stable coins [Source: CoinGecko]\n
`stables_chart`: Shows stablecoins data [Source: CoinGecko]\n
`wf`: Scrapes top coins withdrawal fees\n
`wf_chart`: Top coins withdrawal fees\n
`wfpe`: Scrapes coin withdrawal fees per exchange\n
`wfpe_chart`: Coin withdrawal fees per exchange\n
"""
return model.CryptoOverview()
@property
def tools(self):
"""Cryptocurrency Tools Submodule
Attributes:
`apy`: Converts apr into apy\n
`apy_chart`: Displays APY value converted from APR\n
`il`: Calculates Impermanent Loss in a custom liquidity pool\n
`il_chart`: Displays Impermanent Loss in a custom liquidity pool\n
"""
return model.CryptoTools()

View File

@@ -0,0 +1,48 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.models import etf_sdk_model as model
class EtfController(model.EtfRoot):
"""Etf Module.
Submodules:
`disc`: Discovery Module
`scr`: Scr Module
Attributes:
`candle`: Show candle plot of loaded ticker.\n
`compare`: Compare selected ETFs\n
`etf_by_category`: Return a selection of ETFs based on category filtered by total assets.\n
`etf_by_name`: Get an ETF symbol and name based on ETF string to search. [Source: StockAnalysis]\n
`holdings`: Get ETF holdings\n
`ld`: Return a selection of ETFs based on description filtered by total assets.\n
`ln`: Return a selection of ETFs based on name filtered by total assets. [Source: Finance Database]\n
`load`: Load a symbol to perform analysis using the string above as a template.\n
`news`: Get news for a given term. [Source: NewsAPI]\n
`news_chart`: Prints table showing news for a given term. [Source: NewsAPI]\n
`overview`: Get overview data for selected etf\n
`symbols`: Gets all etf names and symbols\n
`weights`: Return sector weightings allocation of ETF. [Source: FinancialModelingPrep]\n
"""
@property
def disc(self):
"""Etf Discovery Submodule
Attributes:
`mover`: Scrape data for top etf movers.\n
"""
return model.EtfDiscovery()
@property
def scr(self):
"""Etf Scr Submodule
Attributes:
`screen`: Screens the etfs pulled from my repo (https://github.com/jmaslek/etf_scraper),\n
`screen_chart`: Display screener output\n
"""
return model.EtfScr()

View File

@@ -0,0 +1,53 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.models import forex_sdk_model as model
class ForexController(model.ForexRoot):
"""Forex Module.
Submodules:
`oanda`: Oanda Module
Attributes:
`candle`: Show candle plot for fx data.\n
`fwd`: Gets forward rates from fxempire\n
`get_currency_list`: Load AV currency codes from a local file.\n
`load`: Load forex for two given symbols.\n
`quote`: Get forex quote.\n
"""
@property
def oanda(self):
"""Forex Oanda Submodule
Attributes:
`calendar`: Request data of significant events calendar.\n
`calendar_chart`: View calendar of significant events.\n
`cancel`: Request cancellation of a pending order.\n
`cancel_chart`: Cancel a Pending Order.\n
`candles`: Request data for candle chart.\n
`candles_chart`: Show candle chart.\n
`close`: Close a trade.\n
`close_chart`: Close a trade.\n
`listorders`: Request the orders list from Oanda.\n
`listorders_chart`: List order history.\n
`openpositions`: Request information on open positions.\n
`openpositions_chart`: Get information about open positions.\n
`opentrades`: Request open trades data.\n
`opentrades_chart`: View open trades.\n
`order`: Request creation of buy/sell trade order.\n
`order_chart`: Create a buy/sell order.\n
`orderbook`: Request order book data for plotting.\n
`orderbook_chart`: Plot the orderbook for the instrument if Oanda provides one.\n
`pending`: Request information on pending orders.\n
`pending_chart`: Get information about pending orders.\n
`positionbook`: Request position book data for plotting.\n
`positionbook_chart`: Plot a position book for an instrument if Oanda provides one.\n
`price`: Request price for a forex pair.\n
`price_chart`: View price for loaded currency pair.\n
`summary`: Request Oanda account summary.\n
`summary_chart`: Print Oanda account summary.\n
"""
return model.ForexOanda()

View File

@@ -0,0 +1,114 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.models import portfolio_sdk_model as model
class PortfolioController(model.PortfolioRoot):
"""Portfolio Module.
Submodules:
`alloc`: Alloc Module
`metric`: Metric Module
`po`: Portfolio Optimization Module
Attributes:
`bench`: Load benchmark into portfolio\n
`distr`: Display daily returns\n
`distr_chart`: Display daily returns\n
`dret`: Get daily returns\n
`dret_chart`: Display daily returns\n
`es`: Get portfolio expected shortfall\n
`holdp`: Get holdings of assets (in percentage)\n
`holdp_chart`: Display holdings of assets (in percentage)\n
`holdv`: Get holdings of assets (absolute value)\n
`holdv_chart`: Display holdings of assets (absolute value)\n
`load`: Get PortfolioEngine object\n
`maxdd`: Calculate the drawdown (MDD) of historical series. Note that the calculation is done\n
`maxdd_chart`: Display maximum drawdown curve\n
`mret`: Get monthly returns\n
`mret_chart`: Display monthly returns\n
`om`: Get omega ratio\n
`om_chart`: Display omega ratio\n
`perf`: Get portfolio performance vs the benchmark\n
`rbeta`: Get rolling beta using portfolio and benchmark returns\n
`rbeta_chart`: Display rolling beta\n
`rsharpe`: Get rolling sharpe ratio\n
`rsharpe_chart`: Display rolling sharpe\n
`rsort`: Get rolling sortino\n
`rsort_chart`: Display rolling sortino\n
`rvol`: Get rolling volatility\n
`rvol_chart`: Display rolling volatility\n
`show`: Get portfolio transactions\n
`summary`: Get portfolio and benchmark returns summary\n
`var`: Get portfolio VaR\n
`yret`: Get yearly returns\n
`yret_chart`: Display yearly returns\n
"""
@property
def alloc(self):
"""Portfolio Alloc Submodule
Attributes:
`assets`: Display portfolio asset allocation compared to the benchmark\n
`countries`: Display portfolio country allocation compared to the benchmark\n
`regions`: Display portfolio region allocation compared to the benchmark\n
`sectors`: Display portfolio sector allocation compared to the benchmark\n
"""
return model.PortfolioAlloc()
@property
def metric(self):
"""Portfolio Metric Submodule
Attributes:
`calmar`: Get calmar ratio\n
`commonsense`: Get common sense ratio\n
`gaintopain`: Get Pain-to-Gain ratio based on historical data\n
`information`: Get information ratio\n
`jensens`: Get jensen's alpha\n
`kelly`: Get kelly criterion\n
`kurtosis`: Get kurtosis for portfolio and benchmark selected\n
`maxdrawdown`: Get maximum drawdown ratio for portfolio and benchmark selected\n
`payoff`: Get payoff ratio\n
`profitfactor`: Get profit factor\n
`rsquare`: Get R2 Score for portfolio and benchmark selected\n
`sharpe`: Get sharpe ratio for portfolio and benchmark selected\n
`skew`: Get skewness for portfolio and benchmark selected\n
`sortino`: Get sortino ratio for portfolio and benchmark selected\n
`tail`: Get tail ratio\n
`trackerr`: Get tracking error\n
`volatility`: Get volatility for portfolio and benchmark selected\n
"""
return model.PortfolioMetric()
@property
def po(self):
"""Portfolio Portfolio Optimization Submodule
Attributes:
`blacklitterman`: Optimize decorrelation weights\n
`ef`: Get Efficient Frontier\n
`ef_chart`: Display efficient frontier\n
`file`: Load portfolio optimization engine from file\n
`herc`: Optimize with Hierarchical Equal Risk Contribution (HERC) method.\n
`hrp`: Optimize with Hierarchical Risk Parity\n
`load`: Load portfolio optimization engine\n
`load_bl_views`: Load a Excel file with views for Black Litterman model.\n
`maxdecorr`: Optimize decorrelation weights\n
`maxdiv`: Optimize diversification weights\n
`maxret`: Optimize maximum return weights\n
`maxsharpe`: Optimize Sharpe ratio weights\n
`maxutil`: Optimize maximum utility weights\n
`minrisk`: Optimize minimum risk weights\n
`nco`: Optimize with Non-Convex Optimization (NCO) model.\n
`plot`: Display efficient frontier\n
`plot_chart`: Display efficient frontier\n
`relriskparity`: Optimize with Relaxed Risk Parity using the least squares approach\n
`riskparity`: Optimize with Risk Parity using the risk budgeting approach\n
`show`: Show portfolio optimization results\n
"""
return model.PortfolioPortfolioOptimization()

View File

@@ -0,0 +1,381 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.models import stocks_sdk_model as model
class StocksController(model.StocksRoot):
"""Stocks Module.
Submodules:
`ba`: Behavioral Analysis Module
`ca`: Comparison Analysis Module
`disc`: Discovery Module
`dps`: Darkpool Shorts Module
`fa`: Fundamental Analysis Module
`gov`: Government Module
`ins`: Insiders Module
`options`: Options Module
`qa`: Quantitative Analysis Module
`screener`: Screener Module
`sia`: Sector Industry Analysis Module
`ta`: Technical Analysis Module
`th`: Trading Hours Module
Attributes:
`candle`: Show candle plot of loaded ticker.\n
`load`: Load a symbol to perform analysis using the string above as a template.\n
`process_candle`: Process DataFrame into candle style plot.\n
`quote`: Gets ticker quote from FMP\n
`search`: Search selected query for tickers.\n
`tob`: Get top of book bid and ask for ticker on exchange [CBOE.com]\n
"""
@property
def ba(self):
"""Stocks Behavioral Analysis Submodule
Attributes:
`bullbear`: Gets bullbear sentiment for ticker [Source: stocktwits].\n
`cnews`: Get news from a company. [Source: Finnhub]\n
`getdd`: Gets due diligence posts from list of subreddits [Source: reddit].\n
`headlines`: Gets Sentiment analysis provided by FinBrain's API [Source: finbrain].\n
`headlines_chart`: Plots Sentiment analysis from FinBrain. Prints table if raw is True. [Source: FinBrain]\n
`infer`: Load tweets from twitter API and analyzes using VADER.\n
`infer_chart`: Prints Inference sentiment from past n tweets.\n
`mentions`: Get interest over time from google api [Source: google].\n
`mentions_chart`: Plots weekly bars of stock's interest over time. other users watchlist. [Source: Google].\n
`messages`: Get last messages for a given ticker [Source: stocktwits].\n
`popular`: Get popular tickers from list of subreddits [Source: reddit].\n
`queries`: Get related queries from google api [Source: google].\n
`redditsent`: Finds posts related to a specific search term in Reddit.\n
`regions`: Get interest by region from google api [Source: google].\n
`regions_chart`: Plots bars of regions based on stock's interest. [Source: Google].\n
`rise`: Get top rising related queries with this stock's query [Source: google].\n
`sentiment`: Get sentiments from symbol.\n
`sentiment_chart`: Plots sentiments from symbol\n
`snews`: Get headlines sentiment using VADER model over time. [Source: Finnhub]\n
`snews_chart`: Display stock price and headlines sentiment using VADER model over time. [Source: Finnhub]\n
`spac`: Get posts containing SPAC from top subreddits [Source: reddit].\n
`spacc`: Get top tickers from r/SPACs [Source: reddit].\n
`stalker`: Gets messages from given user [Source: stocktwits].\n
`text_sent`: Find the sentiment of a post and related comments.\n
`trending`: Get trending tickers from stocktwits [Source: stocktwits].\n
`watchlist`: Get reddit users watchlists [Source: reddit].\n
`wsb`: Get wsb posts [Source: reddit].\n
"""
return model.StocksBehavioralAnalysis()
@property
def ca(self):
"""Stocks Comparison Analysis Submodule
Attributes:
`balance`: Get balance data. [Source: Marketwatch].\n
`cashflow`: Get cashflow data. [Source: Marketwatch]\n
`hcorr`: Get historical price correlation. [Source: Yahoo Finance]\n
`hcorr_chart`: Correlation heatmap based on historical price comparison\n
`hist`: Get historical prices for all comparison stocks\n
`hist_chart`: Display historical stock prices. [Source: Yahoo Finance]\n
`income`: Get income data. [Source: Marketwatch].\n
`income_chart`: Display income data. [Source: Marketwatch].\n
`scorr`: Get correlation sentiments across similar companies. [Source: FinBrain].\n
`scorr_chart`: Plot correlation sentiments heatmap across similar companies. [Source: FinBrain].\n
`screener`: Screener Overview.\n
`sentiment`: Gets Sentiment analysis from several symbols provided by FinBrain's API.\n
`sentiment_chart`: Display sentiment for all ticker. [Source: FinBrain].\n
`similar`: Find similar tickers to a given symbol.\n
`volume`: Get stock volume. [Source: Yahoo Finance]\n
`volume_chart`: Display stock volume. [Source: Yahoo Finance]\n
"""
return model.StocksComparisonAnalysis()
@property
def disc(self):
"""Stocks Discovery Submodule
Attributes:
`active`: Get stocks ordered in descending order by intraday trade volume. [Source: Yahoo Finance]\n
`arkord`: Returns ARK orders in a Dataframe\n
`asc`: Get Yahoo Finance small cap stocks with earnings growth rates better than 25%.\n
`dividends`: Gets dividend calendar for given date. Date represents Ex-Dividend Date\n
`filings`: Get SEC Filings RSS feed, disseminated by FMP\n
`filings_chart`: Display recent forms submitted to the SEC\n
`fipo`: Future IPOs dates. [Source: Finnhub]\n
`gainers`: Get top gainers. [Source: Yahoo Finance]\n
`gtech`: Get technology stocks with revenue and earnings growth in excess of 25%. [Source: Yahoo Finance]\n
`hotpenny`: Returns today hot penny stocks\n
`ipo`: Get IPO calendar\n
`losers`: Get top losers. [Source: Yahoo Finance]\n
`lowfloat`: Returns low float DataFrame\n
`news`: Gets news. [Source: SeekingAlpha]\n
`pipo`: Past IPOs dates. [Source: Finnhub]\n
`rtat`: Gets the top 10 retail stocks per day\n
`trending`: Returns a list of trending articles\n
`ugs`: Get stocks with earnings growth rates better than 25% and relatively low PE and PEG ratios.\n
`ulc`: Get Yahoo Finance potentially undervalued large cap stocks.\n
`upcoming`: Returns a DataFrame with upcoming earnings\n
"""
return model.StocksDiscovery()
@property
def dps(self):
"""Stocks Darkpool Shorts Submodule
Attributes:
`ctb`: Get stocks with highest cost to borrow [Source: Interactive Broker]\n
`dpotc`: Get all FINRA data associated with a ticker\n
`dpotc_chart`: Display barchart of dark pool (ATS) and OTC (Non ATS) data. [Source: FINRA]\n
`ftd`: Display fails-to-deliver data for a given ticker. [Source: SEC]\n
`ftd_chart`: Display fails-to-deliver data for a given ticker. [Source: SEC]\n
`hsi`: Returns a high short interest DataFrame\n
`pos`: Get dark pool short positions. [Source: Stockgrid]\n
`prom`: Get all FINRA ATS data, and parse most promising tickers based on linear regression\n
`prom_chart`: Display dark pool (ATS) data of tickers with growing trades activity. [Source: FINRA]\n
`psi_q`: Plots the short interest of a stock. This corresponds to the\n
`psi_q_chart`: Plot the short interest of a stock. This corresponds to the\n
`psi_sg`: Get price vs short interest volume. [Source: Stockgrid]\n
`psi_sg_chart`: Plot price vs short interest volume. [Source: Stockgrid]\n
`shorted`: Get most shorted stock screener [Source: Yahoo Finance]\n
`sidtc`: Get short interest and days to cover. [Source: Stockgrid]\n
`spos`: Get net short position. [Source: Stockgrid]\n
`spos_chart`: Plot net short position. [Source: Stockgrid]\n
"""
return model.StocksDarkpoolShorts()
@property
def fa(self):
"""Stocks Fundamental Analysis Submodule
Attributes:
`analysis`: Save time reading SEC filings with the help of machine learning. [Source: https://eclect.us]\n
`analyst`: Get analyst data. [Source: Finviz]\n
`balance`: Get balance sheet.\n
`cal`: Get calendar earnings for ticker symbol\n
`cash`: Get Cash Flow.\n
`customer`: Print customers from ticker provided\n
`data`: Get fundamental data from finviz\n
`dcf`: Get stocks dcf from FMP\n
`dcfc`: Get stocks dcf from FMP\n
`divs`: Get historical dividend for ticker\n
`divs_chart`: Display historical dividends\n
`dupont`: Get dupont ratios\n
`earnings`: Get earnings data.\n
`enterprise`: Financial Modeling Prep ticker enterprise\n
`epsfc`: Takes the ticker, asks for seekingalphaID and gets eps estimates\n
`est`: Get analysts' estimates for a given ticker. [Source: Business Insider]\n
`fama_coe`: Use Fama and French to get the cost of equity for a company\n
`fama_raw`: Get Fama French data\n
`fraud`: Get fraud ratios based on fundamentals\n
`growth`: Get financial statement growth\n
`historical_5`: Get 5 year monthly historical performance for a ticker with dividends filtered\n
`income`: Get income statement.\n
`info`: Gets ticker symbol info\n
`key`: Get key metrics from overview\n
`metrics`: Get key metrics\n
`mgmt`: Get company managers from Business Insider\n
`mktcap`: Get market cap over time for ticker. [Source: Yahoo Finance]\n
`mktcap_chart`: Display market cap over time. [Source: Yahoo Finance]\n
`news`: Get news from Finviz\n
`overview`: Get alpha vantage company overview\n
`profile`: Get ticker profile from FMP\n
`pt`: Get analysts' price targets for a given stock. [Source: Business Insider]\n
`pt_chart`: Display analysts' price targets for a given stock. [Source: Business Insider]\n
`rating`: Get ratings for a given ticker. [Source: Financial Modeling Prep]\n
`ratios`: Get key ratios\n
`revfc`: Takes the ticker, asks for seekingalphaID and gets rev estimates\n
`rot`: Get rating over time data. [Source: Finnhub]\n
`rot_chart`: Rating over time (monthly). [Source: Finnhub]\n
`score`: Gets value score from fmp\n
`sec`: Get SEC filings for a given stock ticker. [Source: Market Watch]\n
`sec_fmp`: Get SEC Filings RSS feed, disseminated by FMP\n
`sec_fmp_chart`: Display recent forms submitted to the SEC\n
`shrs`: Get shareholders from yahoo\n
`similar_dfs`: Get dataframes for similar companies\n
`splits`: Get splits and reverse splits events. [Source: Yahoo Finance]\n
`splits_chart`: Display splits and reverse splits events. [Source: Yahoo Finance]\n
`supplier`: Get suppliers from ticker provided. [Source: CSIMarket]\n
"""
return model.StocksFundamentalAnalysis()
@property
def gov(self):
"""Stocks Government Submodule
Attributes:
`contracts`: Get government contracts for ticker [Source: quiverquant.com]\n
`contracts_chart`: Show government contracts for ticker [Source: quiverquant.com]\n
`government_trading`: Returns the most recent transactions by members of government\n
`gtrades`: Government trading for specific ticker [Source: quiverquant.com]\n
`gtrades_chart`: Government trading for specific ticker [Source: quiverquant.com]\n
`histcont`: Get historical quarterly government contracts [Source: quiverquant.com]\n
`histcont_chart`: Show historical quarterly government contracts [Source: quiverquant.com]\n
`lastcontracts`: Get last government contracts [Source: quiverquant.com]\n
`lastcontracts_chart`: Last government contracts [Source: quiverquant.com]\n
`lasttrades`: Get last government trading [Source: quiverquant.com]\n
`lobbying`: Corporate lobbying details\n
`qtrcontracts`: Analyzes quarterly contracts by ticker\n
`qtrcontracts_chart`: Quarterly contracts [Source: quiverquant.com]\n
`topbuys`: Get top buy government trading [Source: quiverquant.com]\n
`topbuys_chart`: Top buy government trading [Source: quiverquant.com]\n
`toplobbying`: Corporate lobbying details\n
`toplobbying_chart`: Top lobbying tickers based on total spent\n
`topsells`: Get top sell government trading [Source: quiverquant.com]\n
`topsells_chart`: Top sell government trading [Source: quiverquant.com]\n
"""
return model.StocksGovernment()
@property
def ins(self):
"""Stocks Insiders Submodule
Attributes:
`act`: Get insider activity. [Source: Business Insider]\n
`act_chart`: Display insider activity. [Source: Business Insider]\n
`blcp`: Get latest CEO/CFO purchases > 25k\n
`blcs`: Get latest CEO/CFO sales > 100k\n
`blip`: Get latest insider purchases > 25k\n
`blis`: Get latest insider sales > 100k\n
`blop`: Get latest officer purchases > 25k\n
`blos`: Get latest officer sales > 100k\n
`filter`: GEt insider trades based on preset filter\n
`lcb`: Get latest cluster buys\n
`lins`: Get last insider activity for a given stock ticker. [Source: Finviz]\n
`lins_chart`: Display insider activity for a given stock ticker. [Source: Finviz]\n
`lip`: Get latest insider purchases\n
`lis`: Get latest insider sales\n
`lit`: Get latest insider trades\n
`lpsb`: Get latest penny stock buys\n
`print_insider_data`: Print insider data\n
`print_insider_data_chart`: Print insider data\n
`stats`: Get OpenInsider stats for ticker\n
"""
return model.StocksInsiders()
@property
def options(self):
"""Stocks Options Submodule
Submodules:
`screen`: Screen Module
Attributes:
`chains`: Get Option Chain For A Stock. No greek data is returned\n
`dte`: Gets days to expiration from yfinance option date\n
`eodchain`: Get full EOD option date across all expirations\n
`expirations`: Get Option Chain Expirations\n
`generate_data`: Gets x values, and y values before and after premiums\n
`grhist`: Get historical option greeks\n
`grhist_chart`: Plots historical greeks for a given option. [Source: Syncretism]\n
`hist`: Get historical option pricing.\n
`info`: Scrape barchart for options info\n
`info_chart`: Scrapes Barchart.com for the options information\n
`last_price`: Makes api request for last price\n
`oi`: Plot open interest\n
`pcr`: Gets put call ratio over last time window [Source: AlphaQuery.com]\n
`pcr_chart`: Display put call ratio [Source: AlphaQuery.com]\n
`price`: Get Option current price for a stock.\n
`unu`: Get unusual option activity from fdscanner.com\n
`unu_chart`: Displays the unusual options table\n
`voi`: Plot volume and open interest\n
`vol`: Plot volume\n
`vsurf`: Gets IV surface for calls and puts for ticker\n
`vsurf_chart`: Display vol surface\n
"""
return model.StocksOptions()
@property
def qa(self):
"""Stocks Quantitative Analysis Submodule
Attributes:
`beta`: Calculate beta for a ticker and a reference ticker.\n
`beta_chart`: Display the beta scatterplot + linear regression.\n
`capm`: Provides information that relates to the CAPM model\n
`fama_raw`: Gets base Fama French data to calculate risk\n
`historical_5`: Get 5 year monthly historical performance for a ticker with dividends filtered\n
"""
return model.StocksQuantitativeAnalysis()
@property
def screener(self):
"""Stocks Screener Submodule
Attributes:
`arktrades`: Gets a dataframe of ARK trades for ticker\n
`historical`: View historical price of stocks that meet preset\n
`historical_chart`: View historical price of stocks that meet preset\n
`screener_data`: Screener Overview\n
`screener_data_chart`: Screener one of the following: overview, valuation, financial, ownership, performance, technical.\n
"""
return model.StocksScreener()
@property
def sia(self):
"""Stocks Sector Industry Analysis Submodule
Attributes:
`countries`: Get all countries in Yahoo Finance data based on sector or industry. [Source: Finance Database]\n
`cpci`: Get number of companies per country in a specific industry (and specific market cap).\n
`cpci_chart`: Display number of companies per country in a specific industry. [Source: Finance Database]\n
`cpcs`: Get number of companies per country in a specific sector (and specific market cap).\n
`cpcs_chart`: Display number of companies per country in a specific sector. [Source: Finance Database]\n
`cpic`: Get number of companies per industry in a specific country (and specific market cap).\n
`cpic_chart`: Display number of companies per industry in a specific country. [Source: Finance Database]\n
`cpis`: Get number of companies per industry in a specific sector (and specific market cap).\n
`cpis_chart`: Display number of companies per industry in a specific sector. [Source: Finance Database]\n
`cps`: Get number of companies per sector in a specific country (and specific market cap). [Source: Finance Database]\n
`cps_chart`: Display number of companies per sector in a specific country (and market cap). [Source: Finance Database]\n
`filter_stocks`: Filter stocks based on country, sector, industry, market cap and exclude exchanges.\n
`industries`: Get all industries in Yahoo Finance data based on country or sector. [Source: Finance Database]\n
`maketcap`: Get all market cap division in Yahoo Finance data. [Source: Finance Database]\n
`marketcap`: Get all market cap division in Yahoo Finance data. [Source: Finance Database]\n
`sectors`: Get all sectors in Yahoo Finance data based on country or industry. [Source: Finance Database]\n
`stocks_data`: Get stocks data based on a list of stocks and the finance key. The function searches for the\n
"""
return model.StocksSectorIndustryAnalysis()
@property
def ta(self):
"""Stocks Technical Analysis Submodule
Attributes:
`recom`: Get tradingview recommendation based on technical indicators\n
`recom_chart`: Print tradingview recommendation based on technical indicators\n
`rsp`: Relative strength percentile [Source: https://github.com/skyte/relative-strength]\n
`rsp_chart`: Display Relative Strength Percentile [Source: https://github.com/skyte/relative-strength]\n
`summary`: Get technical summary report provided by FinBrain's API\n
`summary_chart`: Print technical summary report provided by FinBrain's API\n
`view`: Get finviz image for given ticker\n
`view_chart`: View finviz image for ticker\n
"""
return model.StocksTechnicalAnalysis()
@property
def th(self):
"""Stocks Trading Hours Submodule
Attributes:
`all`: Get all exchanges.\n
`all_chart`: Display all exchanges.\n
`check_if_open`: Check if market open helper function\n
`closed`: Get closed exchanges.\n
`closed_chart`: Display closed exchanges.\n
`exchange`: Get current exchange open hours.\n
`exchange_chart`: Display current exchange trading hours.\n
`open`: Get open exchanges.\n
`open_chart`: Display open exchanges.\n
"""
return model.StocksTradingHours()

View File

@@ -0,0 +1,16 @@
# flake8: noqa
# pylint: disable=unused-import,wrong-import-order
from .alt_sdk_model import AltRoot
from .crypto_sdk_model import CryptoRoot
from .econometrics_sdk_model import EconometricsRoot
from .economy_sdk_model import EconomyRoot
from .etf_sdk_model import EtfRoot
from .forecast_sdk_model import ForecastRoot
from .forex_sdk_model import ForexRoot
from .futures_sdk_model import FuturesRoot
from .keys_sdk_model import KeysRoot
from .portfolio_sdk_model import PortfolioRoot
from .qa_sdk_model import QaRoot
from .stocks_sdk_model import StocksRoot
from .ta_sdk_model import TaRoot

View File

@@ -0,0 +1,104 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class AltRoot(Category):
"""Alternative Module
Attributes:
`hn`: Get top stories from HackerNews.\n
`hn_chart`: View top stories from HackerNews.\n
"""
_location_path = "alt"
def __init__(self):
super().__init__()
self.hn = lib.alt_hackernews_model.get_stories
self.hn_chart = lib.alt_hackernews_view.display_stories
class AltCovid(Category):
"""Covid Module.
Attributes:
`global_cases`: Get historical cases for given country.\n
`global_deaths`: Get historical deaths for given country.\n
`ov`: Get historical cases and deaths by country.\n
`ov_chart`: Prints table showing historical cases and deaths by country.\n
`slopes`: Load cases and find slope over period.\n
`slopes_chart`: Prints table showing countries with the highest case slopes.\n
`stat`: Show historical cases and deaths by country.\n
`stat_chart`: Prints table showing historical cases and deaths by country.\n
"""
_location_path = "alt.covid"
def __init__(self):
super().__init__()
self.global_cases = lib.alt_covid_model.get_global_cases
self.global_deaths = lib.alt_covid_model.get_global_deaths
self.ov = lib.alt_covid_model.get_covid_ov
self.ov_chart = lib.alt_covid_view.display_covid_ov
self.slopes = lib.alt_covid_model.get_case_slopes
self.slopes_chart = lib.alt_covid_view.display_case_slopes
self.stat = lib.alt_covid_model.get_covid_stat
self.stat_chart = lib.alt_covid_view.display_covid_stat
class AltOss(Category):
"""Oss Module.
Attributes:
`_make_request`: Helper method to scrap.\n
`_retry_session`: Helper methods that retries to make request.\n
`github_data`: Get repository stats.\n
`history`: Get repository star history.\n
`history_chart`: Plots repo summary [Source: https://api.github.com].\n
`ross`: Get startups from ROSS index [Source: https://runacap.com/].\n
`ross_chart`: Plots list of startups from ross index [Source: https://runacap.com/]\n
`search`: Get repos sorted by stars or forks. Can be filtered by categories.\n
`summary`: Get repository summary.\n
`summary_chart`: Prints table showing repo summary [Source: https://api.github.com].\n
`top`: Get repos sorted by stars or forks. Can be filtered by categories.\n
`top_chart`: Plots repo summary [Source: https://api.github.com].\n
"""
_location_path = "alt.oss"
def __init__(self):
super().__init__()
self._make_request = lib.alt_oss_runa_model._make_request
self._retry_session = lib.alt_oss_runa_model._retry_session
self.github_data = lib.alt_oss_github_model.get_github_data
self.history = lib.alt_oss_github_model.get_stars_history
self.history_chart = lib.alt_oss_github_view.display_star_history
self.ross = lib.alt_oss_runa_model.get_startups
self.ross_chart = lib.alt_oss_runa_view.display_rossindex
self.search = lib.alt_oss_github_model.search_repos
self.summary = lib.alt_oss_github_model.get_repo_summary
self.summary_chart = lib.alt_oss_github_view.display_repo_summary
self.top = lib.alt_oss_github_model.get_top_repos
self.top_chart = lib.alt_oss_github_view.display_top_repos
class AltRealestate(Category):
"""Realestate Module.
Attributes:
`get_estate_sales`: All sales for specified postcode.\n
`get_region_stats`: Get regional house price statistics.\n
`get_towns_sold_prices`: Get towns sold house price data.\n
"""
_location_path = "alt.realestate"
def __init__(self):
super().__init__()
self.get_estate_sales = lib.alt_realestate_landRegistry_model.get_estate_sales
self.get_region_stats = lib.alt_realestate_landRegistry_model.get_region_stats
self.get_towns_sold_prices = (
lib.alt_realestate_landRegistry_model.get_towns_sold_prices
)

View File

@@ -0,0 +1,662 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class CryptoRoot(Category):
"""Cryptocurrency Module
Attributes:
`candle`: Plot candle chart from dataframe. [Source: Binance]\n
`chart`: Load data for Technical Analysis\n
`find`: Find similar coin by coin name,symbol or id.\n
`load`: Load crypto currency to get data for\n
`price`: Returns price and confidence interval from pyth live feed. [Source: Pyth]\n
"""
_location_path = "crypto"
def __init__(self):
super().__init__()
self.candle = lib.crypto_helpers.plot_candles
self.chart = lib.crypto_helpers.plot_chart
self.find = lib.crypto_models.find
self.load = lib.crypto_helpers.load
self.price = lib.crypto_pyth_model.get_price
class CryptoDueDiligence(Category):
"""Due Diligence Module.
Attributes:
`active`: Returns active addresses of a certain symbol\n
`active_chart`: Plots active addresses of a certain symbol over time\n
`all_binance_trading_pairs`: Returns all available pairs on Binance in DataFrame format. DataFrame has 3 columns symbol, baseAsset, quoteAsset\n
`ath`: Get all time high for a coin in a given currency\n
`atl`: Get all time low for a coin in a given currency\n
`balance`: Get account holdings for asset. [Source: Binance]\n
`balance_chart`: Prints table showing account holdings for asset. [Source: Binance]\n
`basic`: Basic coin information [Source: CoinPaprika]\n
`basic_chart`: Prints table showing basic information for coin. Like:\n
`binance_available_quotes_for_each_coin`: Helper methods that for every coin available on Binance add all quote assets. [Source: Binance]\n
`candle`: Get candles for chosen trading pair and time interval. [Source: Coinbase]\n
`change`: Returns 30d change of the supply held in exchange wallets of a certain symbol.\n
`change_chart`: Plots 30d change of the supply held in exchange wallets.\n
`check_valid_binance_str`: Check if symbol is in defined binance. [Source: Binance]\n
`close`: Returns the price of a cryptocurrency\n
`coin`: Get coin by id [Source: CoinPaprika]\n
`coin_market_chart`: Get prices for given coin. [Source: CoinGecko]\n
`dev`: Get developer stats for a coin\n
`eb`: Returns the total amount of coins held on exchange addresses in units and percentage.\n
`eb_chart`: Plots total amount of coins held on exchange addresses in units and percentage.\n
`events`: Get all events related to given coin like conferences, start date of futures trading etc.\n
`events_chart`: Prints table showing all events for given coin id. [Source: CoinPaprika]\n
`ex`: Get all exchanges for given coin id. [Source: CoinPaprika]\n
`ex_chart`: Prints table showing all exchanges for given coin id. [Source: CoinPaprika]\n
`exchanges`: Helper method to get all the exchanges supported by ccxt\n
`fr`: Returns coin fundraising\n
`fr_chart`: Display coin fundraising\n
`get_mt`: Returns available messari timeseries\n
`get_mt_chart`: Prints table showing messari timeseries list\n
`gh`: Returns a list of developer activity for a given coin and time interval.\n
`gh_chart`: Returns a list of github activity for a given coin and time interval.\n
`gov`: Returns coin governance\n
`gov_chart`: Prints table showing coin governance\n
`headlines`: Gets Sentiment analysis provided by FinBrain's API [Source: finbrain].\n
`headlines_chart`: Sentiment analysis from FinBrain for Cryptocurrencies\n
`inv`: Returns coin investors\n
`inv_chart`: Prints table showing coin investors\n
`links`: Returns asset's links\n
`links_chart`: Prints table showing coin links\n
`mcapdom`: Returns market dominance of a coin over time\n
`mcapdom_chart`: Plots market dominance of a coin over time\n
`mkt`: All markets for given coin and currency [Source: CoinPaprika]\n
`mkt_chart`: Prints table showing all markets for given coin id. [Source: CoinPaprika]\n
`mt`: Returns messari timeseries\n
`mt_chart`: Plots messari timeseries\n
`news`: Get recent posts from CryptoPanic news aggregator platform. [Source: https://cryptopanic.com/]\n
`news_chart`: Prints table showing recent posts from CryptoPanic news aggregator platform.\n
`nonzero`: Returns addresses with non-zero balance of a certain symbol\n
`nonzero_chart`: Plots addresses with non-zero balance of a certain symbol\n
`ob`: Returns orderbook for a coin in a given exchange\n
`ob_chart`: Plots order book for a coin in a given exchange\n
`oi`: Returns open interest by exchange for a certain symbol\n
`oi_chart`: Plots open interest by exchange for a certain cryptocurrency\n
`pi`: Returns coin product info\n
`pi_chart`: Prints table showing project info\n
`pr`: Fetch data to calculate potential returns of a certain coin. [Source: CoinGecko]\n
`pr_chart`: Prints table showing potential returns of a certain coin. [Source: CoinGecko]\n
`ps`: Get all most important ticker related information for given coin id [Source: CoinPaprika]\n
`ps_chart`: Prints table showing ticker information for single coin [Source: CoinPaprika]\n
`rm`: Returns coin roadmap\n
`rm_chart`: Plots coin roadmap\n
`score`: Get scores for a coin from CoinGecko\n
`show_available_pairs_for_given_symbol`: Return all available quoted assets for given symbol. [Source: Coinbase]\n
`social`: Get social media stats for a coin\n
`stats`: Get 24 hr stats for the product. Volume is in base currency units.\n
`stats_chart`: Prints table showing 24 hr stats for the product. Volume is in base currency units.\n
`team`: Returns coin team\n
`team_chart`: Prints table showing coin team\n
`tk`: Returns coin tokenomics\n
`tk_chart`: Plots coin tokenomics\n
`tokenomics`: Get tokenomics for given coin. [Source: CoinGecko]\n
`trades`: Returns trades for a coin in a given exchange\n
`trades_chart`: Prints table showing trades for a coin in a given exchange\n
`trading_pair_info`: Get information about chosen trading pair. [Source: Coinbase]\n
`trading_pairs`: Helper method that return all trading pairs on binance. Methods ause this data for input for e.g\n
`twitter`: Get twitter timeline for given coin id. Not more than last 50 tweets [Source: CoinPaprika]\n
`twitter_chart`: Prints table showing twitter timeline for given coin id. Not more than last 50 tweets [Source: CoinPaprika]\n
"""
_location_path = "crypto.dd"
def __init__(self):
super().__init__()
self.active = lib.crypto_dd_glassnode_model.get_active_addresses
self.active_chart = lib.crypto_dd_glassnode_view.display_active_addresses
self.all_binance_trading_pairs = (
lib.crypto_dd_binance_model.get_all_binance_trading_pairs
)
self.ath = lib.crypto_dd_sdk_helper.ath
self.atl = lib.crypto_dd_sdk_helper.atl
self.balance = lib.crypto_dd_binance_view.get_balance
self.balance_chart = lib.crypto_dd_binance_view.display_balance
self.basic = lib.crypto_dd_coinpaprika_model.basic_coin_info
self.basic_chart = lib.crypto_dd_coinpaprika_view.display_basic
self.binance_available_quotes_for_each_coin = (
lib.crypto_dd_binance_model.get_binance_available_quotes_for_each_coin
)
self.candle = lib.crypto_dd_coinbase_model.get_candles
self.change = lib.crypto_dd_glassnode_model.get_exchange_net_position_change
self.change_chart = (
lib.crypto_dd_glassnode_view.display_exchange_net_position_change
)
self.check_valid_binance_str = (
lib.crypto_dd_binance_model.check_valid_binance_str
)
self.close = lib.crypto_dd_glassnode_model.get_close_price
self.coin = lib.crypto_dd_coinpaprika_model.get_coin
self.coin_market_chart = lib.crypto_dd_pycoingecko_model.get_coin_market_chart
self.dev = lib.crypto_dd_sdk_helper.dev_stats
self.eb = lib.crypto_dd_glassnode_model.get_exchange_balances
self.eb_chart = lib.crypto_dd_glassnode_view.display_exchange_balances
self.events = lib.crypto_dd_coinpaprika_model.get_coin_events_by_id
self.events_chart = lib.crypto_dd_coinpaprika_view.display_events
self.ex = lib.crypto_dd_coinpaprika_model.get_coin_exchanges_by_id
self.ex_chart = lib.crypto_dd_coinpaprika_view.display_exchanges
self.exchanges = lib.crypto_dd_ccxt_model.get_exchanges
self.fr = lib.crypto_dd_messari_model.get_fundraising
self.fr_chart = lib.crypto_dd_messari_view.display_fundraising
self.get_mt = lib.crypto_dd_messari_model.get_available_timeseries
self.get_mt_chart = lib.crypto_dd_messari_view.display_messari_timeseries_list
self.gh = lib.crypto_dd_santiment_model.get_github_activity
self.gh_chart = lib.crypto_dd_santiment_view.display_github_activity
self.gov = lib.crypto_dd_messari_model.get_governance
self.gov_chart = lib.crypto_dd_messari_view.display_governance
self.headlines = lib.stocks_ba_finbrain_model.get_sentiment
self.headlines_chart = (
lib.crypto_dd_finbrain_view.display_crypto_sentiment_analysis
)
self.inv = lib.crypto_dd_messari_model.get_investors
self.inv_chart = lib.crypto_dd_messari_view.display_investors
self.links = lib.crypto_dd_messari_model.get_links
self.links_chart = lib.crypto_dd_messari_view.display_links
self.mcapdom = lib.crypto_dd_messari_model.get_marketcap_dominance
self.mcapdom_chart = lib.crypto_dd_messari_view.display_marketcap_dominance
self.mkt = lib.crypto_dd_coinpaprika_model.get_coin_markets_by_id
self.mkt_chart = lib.crypto_dd_coinpaprika_view.display_markets
self.mt = lib.crypto_dd_messari_model.get_messari_timeseries
self.mt_chart = lib.crypto_dd_messari_view.display_messari_timeseries
self.news = lib.crypto_ov_cryptopanic_model.get_news
self.news_chart = lib.crypto_dd_cryptopanic_view.display_news
self.nonzero = lib.crypto_dd_glassnode_model.get_non_zero_addresses
self.nonzero_chart = lib.crypto_dd_glassnode_view.display_non_zero_addresses
self.ob = lib.crypto_dd_ccxt_model.get_orderbook
self.ob_chart = lib.crypto_dd_ccxt_view.display_order_book
self.oi = lib.crypto_dd_coinglass_model.get_open_interest_per_exchange
self.oi_chart = lib.crypto_dd_coinglass_view.display_open_interest
self.pi = lib.crypto_dd_messari_model.get_project_product_info
self.pi_chart = lib.crypto_dd_messari_view.display_project_info
self.pr = lib.crypto_dd_pycoingecko_model.get_coin_potential_returns
self.pr_chart = lib.crypto_dd_pycoingecko_view.display_coin_potential_returns
self.ps = lib.crypto_dd_coinpaprika_model.get_tickers_info_for_coin
self.ps_chart = lib.crypto_dd_coinpaprika_view.display_price_supply
self.rm = lib.crypto_dd_messari_model.get_roadmap
self.rm_chart = lib.crypto_dd_messari_view.display_roadmap
self.score = lib.crypto_dd_sdk_helper.score
self.show_available_pairs_for_given_symbol = (
lib.crypto_dd_coinbase_model.show_available_pairs_for_given_symbol
)
self.social = lib.crypto_dd_sdk_helper.social
self.stats = lib.crypto_dd_coinbase_model.get_product_stats
self.stats_chart = lib.crypto_dd_coinbase_view.display_stats
self.team = lib.crypto_dd_messari_model.get_team
self.team_chart = lib.crypto_dd_messari_view.display_team
self.tk = lib.crypto_dd_messari_model.get_tokenomics
self.tk_chart = lib.crypto_dd_messari_view.display_tokenomics
self.tokenomics = lib.crypto_dd_pycoingecko_model.get_coin_tokenomics
self.trades = lib.crypto_dd_ccxt_model.get_trades
self.trades_chart = lib.crypto_dd_ccxt_view.display_trades
self.trading_pair_info = lib.crypto_dd_coinbase_model.get_trading_pair_info
self.trading_pairs = lib.crypto_dd_binance_model._get_trading_pairs
self.twitter = lib.crypto_dd_coinpaprika_model.get_coin_twitter_timeline
self.twitter_chart = lib.crypto_dd_coinpaprika_view.display_twitter
class CryptoDeFi(Category):
"""DeFi Module.
Attributes:
`anchor_data`: Returns anchor protocol earnings data of a certain terra address\n
`anchor_data_chart`: Plots anchor protocol earnings data of a certain terra address\n
`aterra`: Returns historical data of an asset in a certain terra address\n
`aterra_chart`: Plots the 30-day history of specified asset in terra address\n
`ayr`: Displays the 30-day history of the Anchor Yield Reserve.\n
`ayr_chart`: Plots the 30-day history of the Anchor Yield Reserve.\n
`dtvl`: Returns information about historical tvl of a defi protocol.\n
`dtvl_chart`: Plots historical TVL of different dApps\n
`gacc`: Get terra blockchain account growth history [Source: https://fcd.terra.dev/swagger]\n
`gacc_chart`: Plots terra blockchain account growth history [Source: https://fcd.terra.dev/swagger]\n
`gdapps`: Display top dApps (in terms of TVL) grouped by chain.\n
`gdapps_chart`: Plots top dApps (in terms of TVL) grouped by chain.\n
`gov_proposals`: Get terra blockchain governance proposals list [Source: https://fcd.terra.dev/swagger]\n
`gov_proposals_chart`: Prints table showing terra blockchain governance proposals list [Source: https://fcd.terra.dev/swagger]\n
`ldapps`: Returns information about listed DeFi protocols, their current TVL and changes to it in the last hour/day/week.\n
`ldapps_chart`: Prints table showing information about listed DeFi protocols, their current TVL and changes to it in\n
`luna_supply`: Get supply history of the Terra ecosystem\n
`luna_supply_chart`: Plots and prints table showing Luna circulating supply stats\n
`newsletters`: Scrape all substack newsletters from url list.\n
`newsletters_chart`: Prints table showing DeFi related substack newsletters.\n
`pairs`: Get lastly added trade-able pairs on Uniswap with parameters like:\n
`pairs_chart`: Prints table showing Lastly added pairs on Uniswap DEX.\n
`pools`: Get uniswap pools by volume. [Source: https://thegraph.com/en/]\n
`pools_chart`: Prints table showing uniswap pools by volume.\n
`sinfo`: Get staking info for provided terra account [Source: https://fcd.terra.dev/swagger]\n
`sinfo_chart`: Prints table showing staking info for provided terra account address [Source: https://fcd.terra.dev/swagger]\n
`sratio`: Get terra blockchain staking ratio history [Source: https://fcd.terra.dev/swagger]\n
`sratio_chart`: Plots terra blockchain staking ratio history [Source: https://fcd.terra.dev/v1]\n
`sreturn`: Get terra blockchain staking returns history [Source: https://fcd.terra.dev/v1]\n
`sreturn_chart`: Plots terra blockchain staking returns history [Source: https://fcd.terra.dev/swagger]\n
`stats`: Get base statistics about Uniswap DEX. [Source: https://thegraph.com/en/]\n
`stats_chart`: Prints table showing base statistics about Uniswap DEX. [Source: https://thegraph.com/en/]\n
`stvl`: Returns historical values of the total sum of TVLs from all listed protocols.\n
`stvl_chart`: Plots historical values of the total sum of TVLs from all listed protocols.\n
`swaps`: Get the last 100 swaps done on Uniswap [Source: https://thegraph.com/en/]\n
`swaps_chart`: Prints table showing last swaps done on Uniswap\n
`tokens`: Get list of tokens trade-able on Uniswap DEX. [Source: https://thegraph.com/en/]\n
`tokens_chart`: Prints table showing tokens trade-able on Uniswap DEX.\n
`validators`: Get information about terra validators [Source: https://fcd.terra.dev/swagger]\n
`validators_chart`: Prints table showing information about terra validators [Source: https://fcd.terra.dev/swagger]\n
`vaults`: Get DeFi Vaults Information. DeFi Vaults are pools of funds with an assigned strategy which main goal is to\n
`vaults_chart`: Prints table showing Top DeFi Vaults - pools of funds with an assigned strategy which main goal is to\n
"""
_location_path = "crypto.defi"
def __init__(self):
super().__init__()
self.anchor_data = lib.crypto_defi_cryptosaurio_model.get_anchor_data
self.anchor_data_chart = lib.crypto_defi_cryptosaurio_view.display_anchor_data
self.aterra = (
lib.crypto_defi_terraengineer_model.get_history_asset_from_terra_address
)
self.aterra_chart = (
lib.crypto_defi_terraengineer_view.display_terra_asset_history
)
self.ayr = lib.crypto_defi_terraengineer_model.get_anchor_yield_reserve
self.ayr_chart = lib.crypto_defi_terraengineer_view.display_anchor_yield_reserve
self.dtvl = lib.crypto_defi_llama_model.get_defi_protocol
self.dtvl_chart = lib.crypto_defi_llama_view.display_historical_tvl
self.gacc = lib.crypto_defi_terramoney_fcd_model.get_account_growth
self.gacc_chart = lib.crypto_defi_terramoney_fcd_view.display_account_growth
self.gdapps = lib.crypto_defi_llama_model.get_grouped_defi_protocols
self.gdapps_chart = lib.crypto_defi_llama_view.display_grouped_defi_protocols
self.gov_proposals = lib.crypto_defi_terramoney_fcd_model.get_proposals
self.gov_proposals_chart = (
lib.crypto_defi_terramoney_fcd_view.display_gov_proposals
)
self.ldapps = lib.crypto_defi_llama_model.get_defi_protocols
self.ldapps_chart = lib.crypto_defi_llama_view.display_defi_protocols
self.luna_supply = lib.crypto_defi_smartstake_model.get_luna_supply_stats
self.luna_supply_chart = (
lib.crypto_defi_smartstake_view.display_luna_circ_supply_change
)
self.newsletters = lib.crypto_defi_substack_model.get_newsletters
self.newsletters_chart = lib.crypto_defi_substack_view.display_newsletters
self.pairs = lib.crypto_defi_graph_model.get_uniswap_pool_recently_added
self.pairs_chart = lib.crypto_defi_graph_view.display_recently_added
self.pools = lib.crypto_defi_graph_model.get_uni_pools_by_volume
self.pools_chart = lib.crypto_defi_graph_view.display_uni_pools
self.sinfo = lib.crypto_defi_terramoney_fcd_model.get_staking_account_info
self.sinfo_chart = (
lib.crypto_defi_terramoney_fcd_view.display_account_staking_info
)
self.sratio = lib.crypto_defi_terramoney_fcd_model.get_staking_ratio_history
self.sratio_chart = (
lib.crypto_defi_terramoney_fcd_view.display_staking_ratio_history
)
self.sreturn = lib.crypto_defi_terramoney_fcd_model.get_staking_returns_history
self.sreturn_chart = (
lib.crypto_defi_terramoney_fcd_view.display_staking_returns_history
)
self.stats = lib.crypto_defi_graph_model.get_uniswap_stats
self.stats_chart = lib.crypto_defi_graph_view.display_uni_stats
self.stvl = lib.crypto_defi_llama_model.get_defi_tvl
self.stvl_chart = lib.crypto_defi_llama_view.display_defi_tvl
self.swaps = lib.crypto_defi_graph_model.get_last_uni_swaps
self.swaps_chart = lib.crypto_defi_graph_view.display_last_uni_swaps
self.tokens = lib.crypto_defi_graph_model.get_uni_tokens
self.tokens_chart = lib.crypto_defi_graph_view.display_uni_tokens
self.validators = lib.crypto_defi_terramoney_fcd_model.get_validators
self.validators_chart = lib.crypto_defi_terramoney_fcd_view.display_validators
self.vaults = lib.crypto_defi_coindix_model.get_defi_vaults
self.vaults_chart = lib.crypto_defi_coindix_view.display_defi_vaults
class CryptoDiscovery(Category):
"""Discovery Module.
Attributes:
`categories_keys`: Get list of categories keys\n
`coin_list`: Get list of coins available on CoinGecko [Source: CoinGecko]\n
`coins`: Get N coins from CoinGecko [Source: CoinGecko]\n
`coins_chart`: Prints table showing top coins [Source: CoinGecko]\n
`coins_for_given_exchange`: Helper method to get all coins available on binance exchange [Source: CoinGecko]\n
`cpsearch`: Search CoinPaprika. [Source: CoinPaprika]\n
`cpsearch_chart`: Prints table showing Search over CoinPaprika. [Source: CoinPaprika]\n
`gainers`: Shows Largest Gainers - coins which gain the most in given period. [Source: CoinGecko]\n
`gainers_chart`: Prints table showing Largest Gainers - coins which gain the most in given period. [Source: CoinGecko]\n
`losers`: Shows Largest Losers - coins which lose the most in given period. [Source: CoinGecko]\n
`losers_chart`: Prints table showing Largest Losers - coins which lost the most in given period of time. [Source: CoinGecko]\n
`top_coins`: Get top cryptp coins.\n
`top_dapps`: Get top decentralized applications by daily volume and users [Source: https://dappradar.com/]\n
`top_dapps_chart`: Prints table showing top decentralized exchanges [Source: https://dappradar.com/]\n
`top_dexes`: Get top dexes by daily volume and users [Source: https://dappradar.com/]\n
`top_dexes_chart`: Prints table showing top decentralized exchanges [Source: https://dappradar.com/]\n
`top_games`: Get top blockchain games by daily volume and users [Source: https://dappradar.com/]\n
`top_games_chart`: Prints table showing top blockchain games [Source: https://dappradar.com/]\n
`top_nfts`: Get top nft collections [Source: https://dappradar.com/]\n
`top_nfts_chart`: Prints table showing top nft collections [Source: https://dappradar.com/]\n
`trending`: Returns trending coins [Source: CoinGecko]\n
`trending_chart`: Prints table showing trending coins [Source: CoinGecko]\n
"""
_location_path = "crypto.disc"
def __init__(self):
super().__init__()
self.categories_keys = lib.crypto_disc_pycoingecko_model.get_categories_keys
self.coin_list = lib.crypto_disc_pycoingecko_model.get_coin_list
self.coins = lib.crypto_disc_pycoingecko_model.get_coins
self.coins_chart = lib.crypto_disc_pycoingecko_view.display_coins
self.coins_for_given_exchange = (
lib.crypto_disc_pycoingecko_model.get_coins_for_given_exchange
)
self.cpsearch = lib.crypto_disc_coinpaprika_model.get_search_results
self.cpsearch_chart = lib.crypto_disc_coinpaprika_view.display_search_results
self.gainers = lib.crypto_disc_pycoingecko_model.get_gainers
self.gainers_chart = lib.crypto_disc_pycoingecko_view.display_gainers
self.losers = lib.crypto_disc_pycoingecko_model.get_losers
self.losers_chart = lib.crypto_disc_pycoingecko_view.display_losers
self.top_coins = lib.crypto_disc_sdk_helpers.top_coins
self.top_dapps = lib.crypto_disc_dappradar_model.get_top_dapps
self.top_dapps_chart = lib.crypto_disc_dappradar_view.display_top_dapps
self.top_dexes = lib.crypto_disc_dappradar_model.get_top_dexes
self.top_dexes_chart = lib.crypto_disc_dappradar_view.display_top_dexes
self.top_games = lib.crypto_disc_dappradar_model.get_top_games
self.top_games_chart = lib.crypto_disc_dappradar_view.display_top_games
self.top_nfts = lib.crypto_disc_dappradar_model.get_top_nfts
self.top_nfts_chart = lib.crypto_disc_dappradar_view.display_top_nfts
self.trending = lib.crypto_disc_pycoingecko_model.get_trending_coins
self.trending_chart = lib.crypto_disc_pycoingecko_view.display_trending
class CryptoNFT(Category):
"""NFT Module.
Attributes:
`collections`: Get nft collections [Source: https://nftpricefloor.com/]\n
`collections_chart`: Display NFT collections. [Source: https://nftpricefloor.com/]\n
`fp`: Get nft collections [Source: https://nftpricefloor.com/]\n
`fp_chart`: Display NFT collection floor price over time. [Source: https://nftpricefloor.com/]\n
`stats`: Get stats of a nft collection [Source: opensea.io]\n
`stats_chart`: Prints table showing collection stats. [Source: opensea.io]\n
"""
_location_path = "crypto.nft"
def __init__(self):
super().__init__()
self.collections = lib.crypto_nft_pricefloor_model.get_collections
self.collections_chart = lib.crypto_nft_pricefloor_view.display_collections
self.fp = lib.crypto_nft_pricefloor_model.get_floor_price
self.fp_chart = lib.crypto_nft_pricefloor_view.display_floor_price
self.stats = lib.crypto_nft_opensea_model.get_collection_stats
self.stats_chart = lib.crypto_nft_opensea_view.display_collection_stats
class CryptoOnChain(Category):
"""OnChain Module.
Attributes:
`baas`: Get an average bid and ask prices, average spread for given crypto pair for chosen time period.\n
`baas_chart`: Prints table showing an average bid and ask prices, average spread for given crypto pair for chosen\n
`balance`: Get info about tokens on you ethereum blockchain balance. Eth balance, balance of all tokens which\n
`balance_chart`: Display info about tokens for given ethereum blockchain balance e.g. ETH balance,\n
`btc_supply`: Returns BTC circulating supply [Source: https://api.blockchain.info/]\n
`btc_supply_chart`: Returns BTC circulating supply [Source: https://api.blockchain.info/]\n
`btc_transac`: Returns BTC confirmed transactions [Source: https://api.blockchain.info/]\n
`btc_transac_chart`: Returns BTC confirmed transactions [Source: https://api.blockchain.info/]\n
`btcsingleblock`: Returns BTC block data in json format. [Source: https://blockchain.info/]\n
`btcsingleblock_chart`: Returns BTC block data. [Source: https://api.blockchain.info/]\n
`dex_trades_monthly`: Get list of trades on Decentralized Exchanges monthly aggregated.\n
`dvcp`: Get daily volume for given pair [Source: https://graphql.bitquery.io/]\n
`dvcp_chart`: Prints table showing daily volume for given pair\n
`erc20_tokens`: Helper method that loads ~1500 most traded erc20 token.\n
`gwei`: Returns the most recent Ethereum gas fees in gwei\n
`gwei_chart`: Current gwei fees\n
`hist`: Get information about balance historical transactions. [Source: Ethplorer]\n
`hist_chart`: Display information about balance historical transactions. [Source: Ethplorer]\n
`holders`: Get info about top token holders. [Source: Ethplorer]\n
`holders_chart`: Display info about top ERC20 token holders. [Source: Ethplorer]\n
`hr`: Returns dataframe with mean hashrate of btc or eth blockchain and symbol price\n
`hr_chart`: Plots dataframe with mean hashrate of btc or eth blockchain and symbol price.\n
`info`: Get info about ERC20 token. [Source: Ethplorer]\n
`info_chart`: Display info about ERC20 token. [Source: Ethplorer]\n
`lt`: Get trades on Decentralized Exchanges aggregated by DEX [Source: https://graphql.bitquery.io/]\n
`lt_chart`: Prints table showing Trades on Decentralized Exchanges aggregated by DEX or Month\n
`prices`: Get token historical prices with volume and market cap, and average price. [Source: Ethplorer]\n
`prices_chart`: Display token historical prices with volume and market cap, and average price.\n
`query_graph`: Helper methods for querying graphql api. [Source: https://bitquery.io/]\n
`th`: Get info about token historical transactions. [Source: Ethplorer]\n
`th_chart`: Display info about token history. [Source: Ethplorer]\n
`token_decimals`: Helper methods that gets token decimals number. [Source: Ethplorer]\n
`top`: Get top 50 tokens. [Source: Ethplorer]\n
`top_chart`: Display top ERC20 tokens [Source: Ethplorer]\n
`ttcp`: Get most traded crypto pairs on given decentralized exchange in chosen time period.\n
`ttcp_chart`: Prints table showing most traded crypto pairs on given decentralized exchange in chosen time period.\n
`tv`: Get token volume on different Decentralized Exchanges. [Source: https://graphql.bitquery.io/]\n
`tv_chart`: Prints table showing token volume on different Decentralized Exchanges.\n
`tx`: Get info about transaction. [Source: Ethplorer]\n
`tx_chart`: Display info about transaction. [Source: Ethplorer]\n
`ueat`: Get number of unique ethereum addresses which made a transaction in given time interval.\n
`ueat_chart`: Prints table showing number of unique ethereum addresses which made a transaction in given time interval\n
`whales`: Whale Alert's API allows you to retrieve live and historical transaction data from major blockchains.\n
`whales_chart`: Display huge value transactions from major blockchains. [Source: https://docs.whale-alert.io/]\n
"""
_location_path = "crypto.onchain"
def __init__(self):
super().__init__()
self.baas = lib.crypto_onchain_bitquery_model.get_spread_for_crypto_pair
self.baas_chart = (
lib.crypto_onchain_bitquery_view.display_spread_for_crypto_pair
)
self.balance = lib.crypto_onchain_ethplorer_model.get_address_info
self.balance_chart = lib.crypto_onchain_ethplorer_view.display_address_info
self.btc_supply = lib.crypto_onchain_blockchain_model.get_btc_circulating_supply
self.btc_supply_chart = (
lib.crypto_onchain_blockchain_view.display_btc_circulating_supply
)
self.btc_transac = (
lib.crypto_onchain_blockchain_model.get_btc_confirmed_transactions
)
self.btc_transac_chart = (
lib.crypto_onchain_blockchain_view.display_btc_confirmed_transactions
)
self.btcsingleblock = lib.crypto_onchain_blockchain_model.get_btc_single_block
self.btcsingleblock_chart = (
lib.crypto_onchain_blockchain_view.display_btc_single_block
)
self.dex_trades_monthly = (
lib.crypto_onchain_bitquery_model.get_dex_trades_monthly
)
self.dvcp = (
lib.crypto_onchain_bitquery_model.get_daily_dex_volume_for_given_pair
)
self.dvcp_chart = (
lib.crypto_onchain_bitquery_view.display_daily_volume_for_given_pair
)
self.erc20_tokens = lib.crypto_onchain_bitquery_model.get_erc20_tokens
self.gwei = lib.crypto_onchain_ethgasstation_model.get_gwei_fees
self.gwei_chart = lib.crypto_onchain_ethgasstation_view.display_gwei_fees
self.hist = lib.crypto_onchain_ethplorer_model.get_address_history
self.hist_chart = lib.crypto_onchain_ethplorer_view.display_address_history
self.holders = lib.crypto_onchain_ethplorer_model.get_top_token_holders
self.holders_chart = lib.crypto_onchain_ethplorer_view.display_top_token_holders
self.hr = lib.crypto_dd_glassnode_model.get_hashrate
self.hr_chart = lib.crypto_dd_glassnode_view.display_hashrate
self.info = lib.crypto_onchain_ethplorer_model.get_token_info
self.info_chart = lib.crypto_onchain_ethplorer_view.display_token_info
self.lt = lib.crypto_onchain_bitquery_model.get_dex_trades_by_exchange
self.lt_chart = lib.crypto_onchain_bitquery_view.display_dex_trades
self.prices = lib.crypto_onchain_ethplorer_model.get_token_historical_price
self.prices_chart = (
lib.crypto_onchain_ethplorer_view.display_token_historical_prices
)
self.query_graph = lib.crypto_onchain_bitquery_model.query_graph
self.th = lib.crypto_onchain_ethplorer_model.get_token_history
self.th_chart = lib.crypto_onchain_ethplorer_view.display_token_history
self.token_decimals = lib.crypto_onchain_ethplorer_model.get_token_decimals
self.top = lib.crypto_onchain_ethplorer_model.get_top_tokens
self.top_chart = lib.crypto_onchain_ethplorer_view.display_top_tokens
self.ttcp = lib.crypto_onchain_bitquery_model.get_most_traded_pairs
self.ttcp_chart = lib.crypto_onchain_bitquery_view.display_most_traded_pairs
self.tv = lib.crypto_onchain_bitquery_model.get_token_volume_on_dexes
self.tv_chart = lib.crypto_onchain_bitquery_view.display_dex_volume_for_token
self.tx = lib.crypto_onchain_ethplorer_model.get_tx_info
self.tx_chart = lib.crypto_onchain_ethplorer_view.display_tx_info
self.ueat = lib.crypto_onchain_bitquery_model.get_ethereum_unique_senders
self.ueat_chart = (
lib.crypto_onchain_bitquery_view.display_ethereum_unique_senders
)
self.whales = lib.crypto_onchain_whale_alert_model.get_whales_transactions
self.whales_chart = (
lib.crypto_onchain_whale_alert_view.display_whales_transactions
)
class CryptoOverview(Category):
"""Overview Module.
Attributes:
`altindex`: Get altcoin index overtime\n
`altindex_chart`: Displays altcoin index overtime\n
`btcrb`: Get bitcoin price data\n
`btcrb_chart`: Displays bitcoin rainbow chart\n
`categories`: Returns top crypto categories [Source: CoinGecko]\n
`categories_chart`: Shows top cryptocurrency categories by market capitalization\n
`cbpairs`: Get a list of available currency pairs for trading. [Source: Coinbase]\n
`cbpairs_chart`: Displays a list of available currency pairs for trading. [Source: Coinbase]\n
`coin_list`: Get list of all available coins on CoinPaprika [Source: CoinPaprika]\n
`contracts`: Gets all contract addresses for given platform [Source: CoinPaprika]\n
`contracts_chart`: Gets all contract addresses for given platform. [Source: CoinPaprika]\n
`cr`: Returns crypto {borrow,supply} interest rates for cryptocurrencies across several platforms\n
`cr_chart`: Displays crypto {borrow,supply} interest rates for cryptocurrencies across several platforms\n
`crypto_hack`: Get crypto hack\n
`crypto_hack_slugs`: Get all crypto hack slugs\n
`crypto_hacks`: Get major crypto-related hacks\n
`crypto_hacks_chart`: Display list of major crypto-related hacks. If slug is passed\n
`defi`: Get global statistics about Decentralized Finances [Source: CoinGecko]\n
`defi_chart`: Shows global statistics about Decentralized Finances. [Source: CoinGecko]\n
`derivatives`: Get list of crypto derivatives from CoinGecko API [Source: CoinGecko]\n
`derivatives_chart`: Shows list of crypto derivatives. [Source: CoinGecko]\n
`ewf`: Scrapes exchange withdrawal fees\n
`ewf_chart`: Exchange withdrawal fees\n
`exchanges`: Show top crypto exchanges.\n
`exmarkets`: List markets by exchange ID [Source: CoinPaprika]\n
`exmarkets_chart`: Get all markets for given exchange [Source: CoinPaprika]\n
`exrates`: Get list of crypto, fiats, commodity exchange rates from CoinGecko API [Source: CoinGecko]\n
`exrates_chart`: Shows list of crypto, fiats, commodity exchange rates. [Source: CoinGecko]\n
`globe`: Get global crypto market data.\n
`hm`: Get N coins from CoinGecko [Source: CoinGecko]\n
`hm_chart`: Shows cryptocurrencies heatmap [Source: CoinGecko]\n
`hold`: Returns public companies that holds ethereum or bitcoin [Source: CoinGecko]\n
`hold_chart`: Shows overview of public companies that holds ethereum or bitcoin. [Source: CoinGecko]\n
`indexes`: Get list of crypto indexes from CoinGecko API [Source: CoinGecko]\n
`indexes_chart`: Shows list of crypto indexes. [Source: CoinGecko]\n
`info`: Returns basic coin information for all coins from CoinPaprika API [Source: CoinPaprika]\n
`info_chart`: Displays basic coin information for all coins from CoinPaprika API. [Source: CoinPaprika]\n
`markets`: Returns basic coin information for all coins from CoinPaprika API [Source: CoinPaprika]\n
`markets_chart`: Displays basic market information for all coins from CoinPaprika API. [Source: CoinPaprika]\n
`news`: Get recent posts from CryptoPanic news aggregator platform. [Source: https://cryptopanic.com/]\n
`news_chart`: Display recent posts from CryptoPanic news aggregator platform.\n
`platforms`: List all smart contract platforms like ethereum, solana, cosmos, polkadot, kusama ... [Source: CoinPaprika]\n
`platforms_chart`: List all smart contract platforms like ethereum, solana, cosmos, polkadot, kusama.\n
`products`: Get list of financial products from CoinGecko API\n
`products_chart`: Shows list of financial products. [Source: CoinGecko]\n
`stables`: Returns top stable coins [Source: CoinGecko]\n
`stables_chart`: Shows stablecoins data [Source: CoinGecko]\n
`wf`: Scrapes top coins withdrawal fees\n
`wf_chart`: Top coins withdrawal fees\n
`wfpe`: Scrapes coin withdrawal fees per exchange\n
`wfpe_chart`: Coin withdrawal fees per exchange\n
"""
_location_path = "crypto.ov"
def __init__(self):
super().__init__()
self.altindex = lib.crypto_ov_blockchaincenter_model.get_altcoin_index
self.altindex_chart = lib.crypto_ov_blockchaincenter_view.display_altcoin_index
self.btcrb = lib.crypto_ov_glassnode_model.get_btc_rainbow
self.btcrb_chart = lib.crypto_ov_glassnode_view.display_btc_rainbow
self.categories = lib.crypto_ov_pycoingecko_model.get_top_crypto_categories
self.categories_chart = lib.crypto_ov_pycoingecko_view.display_categories
self.cbpairs = lib.crypto_ov_coinbase_model.get_trading_pairs
self.cbpairs_chart = lib.crypto_ov_coinbase_view.display_trading_pairs
self.coin_list = lib.crypto_dd_coinpaprika_model.get_coin_list
self.contracts = lib.crypto_ov_coinpaprika_model.get_contract_platform
self.contracts_chart = lib.crypto_ov_coinpaprika_view.display_contracts
self.cr = lib.crypto_ov_loanscan_model.get_rates
self.cr_chart = lib.crypto_ov_loanscan_view.display_crypto_rates
self.crypto_hack = lib.crypto_ov_rekt_model.get_crypto_hack
self.crypto_hack_slugs = lib.crypto_ov_rekt_model.get_crypto_hack_slugs
self.crypto_hacks = lib.crypto_ov_rekt_model.get_crypto_hacks
self.crypto_hacks_chart = lib.crypto_ov_rekt_view.display_crypto_hacks
self.defi = lib.crypto_ov_pycoingecko_model.get_global_defi_info
self.defi_chart = lib.crypto_ov_pycoingecko_view.display_global_defi_info
self.derivatives = lib.crypto_ov_pycoingecko_model.get_derivatives
self.derivatives_chart = lib.crypto_ov_pycoingecko_view.display_derivatives
self.ewf = (
lib.crypto_ov_withdrawalfees_model.get_overall_exchange_withdrawal_fees
)
self.ewf_chart = (
lib.crypto_ov_withdrawalfees_view.display_overall_exchange_withdrawal_fees
)
self.exchanges = lib.crypto_ov_sdk_helpers.exchanges
self.exmarkets = lib.crypto_ov_coinpaprika_model.get_exchanges_market
self.exmarkets_chart = lib.crypto_ov_coinpaprika_view.display_exchange_markets
self.exrates = lib.crypto_ov_pycoingecko_model.get_exchange_rates
self.exrates_chart = lib.crypto_ov_pycoingecko_view.display_exchange_rates
self.globe = lib.crypto_ov_sdk_helpers.globe
self.hm = lib.crypto_disc_pycoingecko_model.get_coins
self.hm_chart = lib.crypto_ov_pycoingecko_view.display_crypto_heatmap
self.hold = lib.crypto_ov_pycoingecko_model.get_holdings_overview
self.hold_chart = lib.crypto_ov_pycoingecko_view.display_holdings_overview
self.indexes = lib.crypto_ov_pycoingecko_model.get_indexes
self.indexes_chart = lib.crypto_ov_pycoingecko_view.display_indexes
self.info = lib.crypto_ov_coinpaprika_model.get_coins_info
self.info_chart = lib.crypto_ov_coinpaprika_view.display_all_coins_info
self.markets = lib.crypto_ov_coinpaprika_model.get_coins_market_info
self.markets_chart = (
lib.crypto_ov_coinpaprika_view.display_all_coins_market_info
)
self.news = lib.crypto_ov_cryptopanic_model.get_news
self.news_chart = lib.crypto_ov_cryptopanic_view.display_news
self.platforms = lib.crypto_ov_coinpaprika_model.get_all_contract_platforms
self.platforms_chart = lib.crypto_ov_coinpaprika_view.display_all_platforms
self.products = lib.crypto_ov_pycoingecko_model.get_finance_products
self.products_chart = lib.crypto_ov_pycoingecko_view.display_products
self.stables = lib.crypto_ov_pycoingecko_model.get_stable_coins
self.stables_chart = lib.crypto_ov_pycoingecko_view.display_stablecoins
self.wf = lib.crypto_ov_withdrawalfees_model.get_overall_withdrawal_fees
self.wf_chart = (
lib.crypto_ov_withdrawalfees_view.display_overall_withdrawal_fees
)
self.wfpe = lib.crypto_ov_withdrawalfees_model.get_crypto_withdrawal_fees
self.wfpe_chart = (
lib.crypto_ov_withdrawalfees_view.display_crypto_withdrawal_fees
)
class CryptoTools(Category):
"""Tools Module.
Attributes:
`apy`: Converts apr into apy\n
`apy_chart`: Displays APY value converted from APR\n
`il`: Calculates Impermanent Loss in a custom liquidity pool\n
`il_chart`: Displays Impermanent Loss in a custom liquidity pool\n
"""
_location_path = "crypto.tools"
def __init__(self):
super().__init__()
self.apy = lib.crypto_tools_model.calculate_apy
self.apy_chart = lib.crypto_tools_view.display_apy
self.il = lib.crypto_tools_model.calculate_il
self.il_chart = lib.crypto_tools_view.display_il

View File

@@ -0,0 +1,72 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class EconometricsRoot(Category):
"""Econometrics Module
Attributes:
`bgod`: Calculate test statistics for autocorrelation\n
`bgod_chart`: Show Breusch-Godfrey autocorrelation test\n
`bols`: The between estimator is an alternative, usually less efficient estimator, can can be used to\n
`bpag`: Calculate test statistics for heteroscedasticity\n
`bpag_chart`: Show Breusch-Pagan heteroscedasticity test\n
`clean`: Clean up NaNs from the dataset\n
`coint`: Calculate cointegration tests between variable number of input series\n
`coint_chart`: Estimates long-run and short-run cointegration relationship for series y and x and apply\n
`comparison`: Compare regression results between Panel Data regressions.\n
`dwat`: Calculate test statistics for Durbin Watson autocorrelation\n
`dwat_chart`: Show Durbin-Watson autocorrelation tests\n
`fdols`: First differencing is an alternative to using fixed effects when there might be correlation.\n
`fe`: When effects are correlated with the regressors the RE and BE estimators are not consistent.\n
`get_regression_data`: This function creates a DataFrame with the required regression data as\n
`granger`: Calculate granger tests\n
`granger_chart`: Show granger tests\n
`load`: Load custom file into dataframe.\n
`norm`: The distribution of returns and generate statistics on the relation to the normal curve.\n
`norm_chart`: Determine the normality of a timeseries.\n
`ols`: Performs an OLS regression on timeseries data. [Source: Statsmodels]\n
`options`: Obtain columns-dataset combinations from loaded in datasets that can be used in other commands\n
`options_chart`: Plot custom data\n
`panel`: Based on the regression type, this function decides what regression to run.\n
`panel_chart`: Based on the regression type, this function decides what regression to run.\n
`pols`: PooledOLS is just plain OLS that understands that various panel data structures.\n
`re`: The random effects model is virtually identical to the pooled OLS model except that is accounts for the\n
`root`: Calculate test statistics for unit roots\n
`root_chart`: Determine the normality of a timeseries.\n
"""
_location_path = "econometrics"
def __init__(self):
super().__init__()
self.bgod = lib.econometrics_regression_model.get_bgod
self.bgod_chart = lib.econometrics_regression_view.display_bgod
self.bols = lib.econometrics_regression_model.get_bols
self.bpag = lib.econometrics_regression_model.get_bpag
self.bpag_chart = lib.econometrics_regression_view.display_bpag
self.clean = lib.econometrics_model.clean
self.coint = lib.econometrics_model.get_coint_df
self.coint_chart = lib.econometrics_view.display_cointegration_test
self.comparison = lib.econometrics_regression_model.get_comparison
self.dwat = lib.econometrics_regression_model.get_dwat
self.dwat_chart = lib.econometrics_regression_view.display_dwat
self.fdols = lib.econometrics_regression_model.get_fdols
self.fe = lib.econometrics_regression_model.get_fe
self.get_regression_data = lib.econometrics_regression_model.get_regression_data
self.granger = lib.econometrics_model.get_granger_causality
self.granger_chart = lib.econometrics_view.display_granger
self.load = lib.common_model.load
self.norm = lib.econometrics_model.get_normality
self.norm_chart = lib.econometrics_view.display_norm
self.ols = lib.econometrics_regression_model.get_ols
self.options = lib.econometrics_model.get_options
self.options_chart = lib.econometrics_view.show_options
self.panel = lib.econometrics_regression_model.get_regressions_results
self.panel_chart = lib.econometrics_regression_view.display_panel
self.pols = lib.econometrics_regression_model.get_pols
self.re = lib.econometrics_regression_model.get_re
self.root = lib.econometrics_model.get_root
self.root_chart = lib.econometrics_view.display_root

View File

@@ -0,0 +1,86 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class EconomyRoot(Category):
"""Economy Module
Attributes:
`available_indices`: Get available indices\n
`bigmac`: Display Big Mac Index for given countries\n
`bigmac_chart`: Display Big Mac Index for given countries\n
`country_codes`: Get available country codes for Bigmac index\n
`currencies`: Scrape data for global currencies\n
`events`: Get economic calendar for countries between specified dates\n
`fred`: Get Series data. [Source: FRED]\n
`fred_chart`: Display (multiple) series from https://fred.stlouisfed.org. [Source: FRED]\n
`fred_ids`: Get Series IDs. [Source: FRED]\n
`fred_notes`: Get series notes. [Source: FRED]\n
`future`: Get futures data. [Source: Finviz]\n
`futures`: Get futures data.\n
`get_groups`: Get group available\n
`glbonds`: Scrape data for global bonds\n
`index`: Get data on selected indices over time [Source: Yahoo Finance]\n
`index_chart`: Load (and show) the selected indices over time [Source: Yahoo Finance]\n
`indices`: Get the top US indices\n
`macro`: This functions groups the data queried from the EconDB database [Source: EconDB]\n
`macro_chart`: Show the received macro data about a company [Source: EconDB]\n
`macro_countries`: This function returns the available countries and respective currencies.\n
`macro_parameters`: This function returns the available macro parameters with detail.\n
`overview`: Scrape data for market overview\n
`perfmap`: Opens Finviz map website in a browser. [Source: Finviz]\n
`performance`: Get group (sectors, industry or country) performance data. [Source: Finviz]\n
`rtps`: Get real-time performance sector data\n
`rtps_chart`: Display Real-Time Performance sector. [Source: AlphaVantage]\n
`search_index`: Search indices by keyword. [Source: FinanceDatabase]\n
`spectrum`: Display finviz spectrum in system viewer [Source: Finviz]\n
`treasury`: Get U.S. Treasury rates [Source: EconDB]\n
`treasury_chart`: Display U.S. Treasury rates [Source: EconDB]\n
`treasury_maturities`: Get treasury maturity options [Source: EconDB]\n
`usbonds`: Scrape data for us bonds\n
`valuation`: Get group (sectors, industry or country) valuation data. [Source: Finviz]\n
`ycrv`: Gets yield curve data from FRED\n
`ycrv_chart`: Display yield curve based on US Treasury rates for a specified date.\n
"""
_location_path = "economy"
def __init__(self):
super().__init__()
self.available_indices = lib.economy_yfinance_model.get_available_indices
self.bigmac = lib.economy_nasdaq_model.get_big_mac_indices
self.bigmac_chart = lib.economy_nasdaq_view.display_big_mac_index
self.country_codes = lib.economy_nasdaq_model.get_country_codes
self.currencies = lib.economy_wsj_model.global_currencies
self.events = lib.economy_nasdaq_model.get_economic_calendar
self.fred = lib.economy_fred_model.get_aggregated_series_data
self.fred_chart = lib.economy_fred_view.display_fred_series
self.fred_ids = lib.economy_fred_model.get_series_ids
self.fred_notes = lib.economy_fred_model.get_series_notes
self.future = lib.economy_finviz_model.get_futures
self.futures = lib.economy_sdk_helpers.futures
self.get_groups = lib.economy_finviz_model.get_groups
self.glbonds = lib.economy_wsj_model.global_bonds
self.index = lib.economy_yfinance_model.get_indices
self.index_chart = lib.economy_yfinance_view.show_indices
self.indices = lib.economy_wsj_model.us_indices
self.macro = lib.economy_econdb_model.get_aggregated_macro_data
self.macro_chart = lib.economy_econdb_view.show_macro_data
self.macro_countries = lib.economy_econdb_model.get_macro_countries
self.macro_parameters = lib.economy_econdb_model.get_macro_parameters
self.overview = lib.economy_wsj_model.market_overview
self.perfmap = lib.economy_finviz_model.get_performance_map
self.performance = lib.economy_finviz_model.get_performance_data
self.rtps = lib.economy_alphavantage_model.get_sector_data
self.rtps_chart = lib.economy_alphavantage_view.realtime_performance_sector
self.search_index = lib.economy_yfinance_model.get_search_indices
self.spectrum = lib.economy_finviz_view.display_spectrum
self.treasury = lib.economy_econdb_model.get_treasuries
self.treasury_chart = lib.economy_econdb_view.show_treasuries
self.treasury_maturities = lib.economy_econdb_model.get_treasury_maturities
self.usbonds = lib.economy_wsj_model.us_bonds
self.valuation = lib.economy_finviz_model.get_valuation_data
self.ycrv = lib.economy_fred_model.get_yield_curve
self.ycrv_chart = lib.economy_fred_view.display_yield_curve

View File

@@ -0,0 +1,72 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class EtfRoot(Category):
"""Etf Module
Attributes:
`candle`: Show candle plot of loaded ticker.\n
`compare`: Compare selected ETFs\n
`etf_by_category`: Return a selection of ETFs based on category filtered by total assets.\n
`etf_by_name`: Get an ETF symbol and name based on ETF string to search. [Source: StockAnalysis]\n
`holdings`: Get ETF holdings\n
`ld`: Return a selection of ETFs based on description filtered by total assets.\n
`ln`: Return a selection of ETFs based on name filtered by total assets. [Source: Finance Database]\n
`load`: Load a symbol to perform analysis using the string above as a template.\n
`news`: Get news for a given term. [Source: NewsAPI]\n
`news_chart`: Prints table showing news for a given term. [Source: NewsAPI]\n
`overview`: Get overview data for selected etf\n
`symbols`: Gets all etf names and symbols\n
`weights`: Return sector weightings allocation of ETF. [Source: FinancialModelingPrep]\n
"""
_location_path = "etf"
def __init__(self):
super().__init__()
self.candle = lib.stocks_helper.display_candle
self.compare = lib.etf_stockanalysis_model.compare_etfs
self.etf_by_category = lib.etf_financedatabase_model.get_etfs_by_category
self.etf_by_name = lib.etf_stockanalysis_model.get_etfs_by_name
self.holdings = lib.etf_stockanalysis_model.get_etf_holdings
self.ld = lib.etf_financedatabase_model.get_etfs_by_description
self.ln = lib.etf_financedatabase_model.get_etfs_by_name
self.load = lib.stocks_helper.load
self.news = lib.common_newsapi_model.get_news
self.news_chart = lib.common_newsapi_view.display_news
self.overview = lib.etf_stockanalysis_model.get_etf_overview
self.symbols = lib.etf_stockanalysis_model.get_all_names_symbols
self.weights = lib.etf_fmp_model.get_etf_sector_weightings
class EtfDiscovery(Category):
"""Discovery Module.
Attributes:
`mover`: Scrape data for top etf movers.\n
"""
_location_path = "etf.disc"
def __init__(self):
super().__init__()
self.mover = lib.etf_disc_wsj_model.etf_movers
class EtfScr(Category):
"""Scr Module.
Attributes:
`screen`: Screens the etfs pulled from my repo (https://github.com/jmaslek/etf_scraper),\n
`screen_chart`: Display screener output\n
"""
_location_path = "etf.scr"
def __init__(self):
super().__init__()
self.screen = lib.etf_scr_model.etf_screener
self.screen_chart = lib.etf_scr_view.view_screener

View File

@@ -0,0 +1,149 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class ForecastRoot(Category):
"""Forecasting Module
Attributes:
`anom`: Get Quantile Anomaly Detection Data\n
`anom_chart`: Display Quantile Anomaly Detection\n
`atr`: Calculate the Average True Range of a variable based on a a specific stock ticker.\n
`autoarima`: Performs Automatic ARIMA forecasting\n
`autoarima_chart`: Display Automatic ARIMA model.\n
`autoces`: Performs Automatic Complex Exponential Smoothing forecasting\n
`autoces_chart`: Display Automatic Complex Exponential Smoothing Model\n
`autoets`: Performs Automatic ETS forecasting\n
`autoets_chart`: Display Automatic ETS (Error, Trend, Sesonality) Model\n
`autoselect`: Performs Automatic Statistical forecasting\n
`autoselect_chart`: Display Automatic Statistical Forecasting Model\n
`brnn`: Performs Block RNN forecasting\n
`brnn_chart`: Display BRNN forecast\n
`clean`: Clean up NaNs from the dataset\n
`combine`: Adds the given column of df2 to df1\n
`corr`: Returns correlation for a given df\n
`corr_chart`: Plot correlation coefficients for dataset features\n
`delete`: Delete a column from a dataframe\n
`delta`: Calculate the %change of a variable based on a specific column\n
`desc`: Returns statistics for a given df\n
`ema`: A moving average provides an indication of the trend of the price movement\n
`expo`: Performs Probabilistic Exponential Smoothing forecasting\n
`expo_chart`: Display Probabilistic Exponential Smoothing forecast\n
`linregr`: Perform Linear Regression Forecasting\n
`linregr_chart`: Display Linear Regression Forecasting\n
`load`: Load custom file into dataframe.\n
`mom`: A momentum oscillator, which measures the percentage change between the current\n
`mstl`: Performs MSTL forecasting\n
`mstl_chart`: Display MSTL Model\n
`nbeats`: Perform NBEATS Forecasting\n
`nbeats_chart`: Display NBEATS forecast\n
`nhits`: Performs Nhits forecasting\n
`nhits_chart`: Display Nhits forecast\n
`plot`: Plot data from a dataset\n
`plot_chart`: Plot data from a dataset\n
`regr`: Perform Regression Forecasting\n
`regr_chart`: Display Regression Forecasting\n
`rename`: Rename a column in a dataframe\n
`rnn`: Perform RNN forecasting\n
`rnn_chart`: Display RNN forecast\n
`roc`: A momentum oscillator, which measures the percentage change between the current\n
`rsi`: A momentum indicator that measures the magnitude of recent price changes to evaluate\n
`rwd`: Performs Random Walk with Drift forecasting\n
`rwd_chart`: Display Random Walk with Drift Model\n
`season_chart`: Plot seasonality from a dataset\n
`seasonalnaive`: Performs Seasonal Naive forecasting\n
`seasonalnaive_chart`: Display SeasonalNaive Model\n
`signal`: A price signal based on short/long term price.\n
`sto`: Stochastic Oscillator %K and %D : A stochastic oscillator is a momentum indicator comparing a particular closing\n
`tcn`: Perform TCN forecasting\n
`tcn_chart`: Display TCN forecast\n
`tft`: Performs Temporal Fusion Transformer forecasting\n
`tft_chart`: Display Temporal Fusion Transformer forecast\n
`theta`: Performs Theta forecasting\n
`theta_chart`: Display Theta forecast\n
`trans`: Performs Transformer forecasting\n
`trans_chart`: Display Transformer forecast\n
"""
_location_path = "forecast"
def __init__(self):
super().__init__()
if not lib.FORECASTING_TOOLKIT_ENABLED:
# pylint: disable=C0415
from openbb_terminal.rich_config import console
console.print(lib.FORECASTING_TOOLKIT_WARNING)
if lib.FORECASTING_TOOLKIT_ENABLED:
self.anom = lib.forecast_anom_model.get_anomaly_detection_data
self.anom_chart = lib.forecast_anom_view.display_anomaly_detection
self.atr = lib.forecast_model.add_atr
self.autoarima = lib.forecast_autoarima_model.get_autoarima_data
self.autoarima_chart = (
lib.forecast_autoarima_view.display_autoarima_forecast
)
self.autoces = lib.forecast_autoces_model.get_autoces_data
self.autoces_chart = lib.forecast_autoces_view.display_autoces_forecast
self.autoets = lib.forecast_autoets_model.get_autoets_data
self.autoets_chart = lib.forecast_autoets_view.display_autoets_forecast
self.autoselect = lib.forecast_autoselect_model.get_autoselect_data
self.autoselect_chart = (
lib.forecast_autoselect_view.display_autoselect_forecast
)
self.brnn = lib.forecast_brnn_model.get_brnn_data
self.brnn_chart = lib.forecast_brnn_view.display_brnn_forecast
self.clean = lib.forecast_model.clean
self.combine = lib.forecast_model.combine_dfs
self.corr = lib.forecast_model.corr_df
self.corr_chart = lib.forecast_view.display_corr
self.delete = lib.forecast_model.delete_column
self.delta = lib.forecast_model.add_delta
self.desc = lib.forecast_model.describe_df
self.desc_chart = lib.forecast_view.describe_df
self.ema = lib.forecast_model.add_ema
self.expo = lib.forecast_expo_model.get_expo_data
self.expo_chart = lib.forecast_expo_view.display_expo_forecast
self.export = lib.forecast_view.export_df
self.linregr = lib.forecast_linregr_model.get_linear_regression_data
self.linregr_chart = lib.forecast_linregr_view.display_linear_regression
self.load = lib.common_model.load
self.mom = lib.forecast_model.add_momentum
self.mstl = lib.forecast_mstl_model.get_mstl_data
self.mstl_chart = lib.forecast_mstl_view.display_mstl_forecast
self.nbeats = lib.forecast_nbeats_model.get_NBEATS_data
self.nbeats_chart = lib.forecast_nbeats_view.display_nbeats_forecast
self.nhits = lib.forecast_nhits_model.get_nhits_data
self.nhits_chart = lib.forecast_nhits_view.display_nhits_forecast
self.plot = lib.forecast_view.display_plot
self.plot_chart = lib.forecast_view.display_plot
self.regr = lib.forecast_regr_model.get_regression_data
self.regr_chart = lib.forecast_regr_view.display_regression
self.rename = lib.forecast_model.rename_column
self.rnn = lib.forecast_rnn_model.get_rnn_data
self.rnn_chart = lib.forecast_rnn_view.display_rnn_forecast
self.roc = lib.forecast_model.add_roc
self.rsi = lib.forecast_model.add_rsi
self.rwd = lib.forecast_rwd_model.get_rwd_data
self.rwd_chart = lib.forecast_rwd_view.display_rwd_forecast
self.season_chart = lib.forecast_view.display_seasonality
self.seasonalnaive = lib.forecast_seasonalnaive_model.get_seasonalnaive_data
self.seasonalnaive_chart = (
lib.forecast_seasonalnaive_view.display_seasonalnaive_forecast
)
self.show = lib.forecast_view.show_df
self.show_chart = lib.forecast_view.show_df
self.signal = lib.forecast_model.add_signal
self.sto = lib.forecast_model.add_sto
self.tcn = lib.forecast_tcn_model.get_tcn_data
self.tcn_chart = lib.forecast_tcn_view.display_tcn_forecast
self.tft = lib.forecast_tft_model.get_tft_data
self.tft_chart = lib.forecast_tft_view.display_tft_forecast
self.theta = lib.forecast_theta_model.get_theta_data
self.theta_chart = lib.forecast_theta_view.display_theta_forecast
self.trans = lib.forecast_trans_model.get_trans_data
self.trans_chart = lib.forecast_trans_view.display_trans_forecast

View File

@@ -0,0 +1,90 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class ForexRoot(Category):
"""Forex Module
Attributes:
`candle`: Show candle plot for fx data.\n
`fwd`: Gets forward rates from fxempire\n
`get_currency_list`: Load AV currency codes from a local file.\n
`load`: Load forex for two given symbols.\n
`quote`: Get forex quote.\n
"""
_location_path = "forex"
def __init__(self):
super().__init__()
self.candle = lib.forex_helper.display_candle
self.fwd = lib.forex_fxempire_model.get_forward_rates
self.get_currency_list = lib.forex_av_model.get_currency_list
self.load = lib.forex_helper.load
self.quote = lib.forex_sdk_helpers.quote
class ForexOanda(Category):
"""Oanda Module.
Attributes:
`calendar`: Request data of significant events calendar.\n
`calendar_chart`: View calendar of significant events.\n
`cancel`: Request cancellation of a pending order.\n
`cancel_chart`: Cancel a Pending Order.\n
`candles`: Request data for candle chart.\n
`candles_chart`: Show candle chart.\n
`close`: Close a trade.\n
`close_chart`: Close a trade.\n
`listorders`: Request the orders list from Oanda.\n
`listorders_chart`: List order history.\n
`openpositions`: Request information on open positions.\n
`openpositions_chart`: Get information about open positions.\n
`opentrades`: Request open trades data.\n
`opentrades_chart`: View open trades.\n
`order`: Request creation of buy/sell trade order.\n
`order_chart`: Create a buy/sell order.\n
`orderbook`: Request order book data for plotting.\n
`orderbook_chart`: Plot the orderbook for the instrument if Oanda provides one.\n
`pending`: Request information on pending orders.\n
`pending_chart`: Get information about pending orders.\n
`positionbook`: Request position book data for plotting.\n
`positionbook_chart`: Plot a position book for an instrument if Oanda provides one.\n
`price`: Request price for a forex pair.\n
`price_chart`: View price for loaded currency pair.\n
`summary`: Request Oanda account summary.\n
`summary_chart`: Print Oanda account summary.\n
"""
_location_path = "forex.oanda"
def __init__(self):
super().__init__()
self.calendar = lib.forex_oanda_model.get_calendar_request
self.calendar_chart = lib.forex_oanda_view.calendar
self.cancel = lib.forex_oanda_model.cancel_pending_order_request
self.cancel_chart = lib.forex_oanda_view.cancel_pending_order
self.candles = lib.forex_oanda_model.get_candles_dataframe
self.candles_chart = lib.forex_oanda_view.show_candles
self.close = lib.forex_oanda_model.close_trades_request
self.close_chart = lib.forex_oanda_view.close_trade
self.listorders = lib.forex_oanda_model.order_history_request
self.listorders_chart = lib.forex_oanda_view.list_orders
self.openpositions = lib.forex_oanda_model.open_positions_request
self.openpositions_chart = lib.forex_oanda_view.get_open_positions
self.opentrades = lib.forex_oanda_model.open_trades_request
self.opentrades_chart = lib.forex_oanda_view.get_open_trades
self.order = lib.forex_oanda_model.create_order_request
self.order_chart = lib.forex_oanda_view.create_order
self.orderbook = lib.forex_oanda_model.orderbook_plot_data_request
self.orderbook_chart = lib.forex_oanda_view.get_order_book
self.pending = lib.forex_oanda_model.pending_orders_request
self.pending_chart = lib.forex_oanda_view.get_pending_orders
self.positionbook = lib.forex_oanda_model.positionbook_plot_data_request
self.positionbook_chart = lib.forex_oanda_view.get_position_book
self.price = lib.forex_oanda_model.fx_price_request
self.price_chart = lib.forex_oanda_view.get_fx_price
self.summary = lib.forex_oanda_model.account_summary_request
self.summary_chart = lib.forex_oanda_view.get_account_summary

View File

@@ -0,0 +1,26 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class FuturesRoot(Category):
"""Futures Module
Attributes:
`curve`: Get curve futures [Source: Yahoo Finance]\n
`curve_chart`: Display curve futures [Source: Yahoo Finance]\n
`historical`: Get historical futures [Source: Yahoo Finance]\n
`historical_chart`: Display historical futures [Source: Yahoo Finance]\n
`search`: Get search futures [Source: Yahoo Finance]\n
"""
_location_path = "futures"
def __init__(self):
super().__init__()
self.curve = lib.futures_yfinance_model.get_curve_futures
self.curve_chart = lib.futures_yfinance_view.display_curve
self.historical = lib.futures_yfinance_model.get_historical_futures
self.historical_chart = lib.futures_yfinance_view.display_historical
self.search = lib.futures_yfinance_model.get_search_futures

View File

@@ -0,0 +1,84 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class KeysRoot(Category):
"""Keys Module
Attributes:
`av`: Set Alpha Vantage key\n
`binance`: Set Binance key\n
`bitquery`: Set Bitquery key\n
`cmc`: Set Coinmarketcap key\n
`coinbase`: Set Coinbase key\n
`coinglass`: Set Coinglass key.\n
`cpanic`: Set Cpanic key.\n
`degiro`: Set Degiro key\n
`eodhd`: Set Eodhd key.\n
`ethplorer`: Set Ethplorer key.\n
`finnhub`: Set Finnhub key\n
`fmp`: Set Financial Modeling Prep key\n
`fred`: Set FRED key\n
`get_keys_info`: Get info on available APIs to use in set_keys.\n
`github`: Set GitHub key.\n
`glassnode`: Set Glassnode key.\n
`messari`: Set Messari key.\n
`mykeys`: Get currently set API keys.\n
`news`: Set News key\n
`oanda`: Set Oanda key\n
`openbb`: Set OpenBB Personal Access Token.\n
`polygon`: Set Polygon key\n
`quandl`: Set Quandl key\n
`reddit`: Set Reddit key\n
`rh`: Set Robinhood key\n
`santiment`: Set Santiment key.\n
`set_keys`: Set API keys in bundle.\n
`shroom`: Set Shroom key\n
`smartstake`: Set Smartstake key.\n
`stocksera`: Set Stocksera key.\n
`tokenterminal`: Set Token Terminal key.\n
`tradier`: Set Tradier key\n
`twitter`: Set Twitter key\n
`walert`: Set Walert key\n
"""
_location_path = "keys"
def __init__(self):
super().__init__()
self.av = lib.keys_model.set_av_key
self.binance = lib.keys_model.set_binance_key
self.bitquery = lib.keys_model.set_bitquery_key
self.cmc = lib.keys_model.set_cmc_key
self.coinbase = lib.keys_model.set_coinbase_key
self.coinglass = lib.keys_model.set_coinglass_key
self.cpanic = lib.keys_model.set_cpanic_key
self.degiro = lib.keys_model.set_degiro_key
self.eodhd = lib.keys_model.set_eodhd_key
self.ethplorer = lib.keys_model.set_ethplorer_key
self.finnhub = lib.keys_model.set_finnhub_key
self.fmp = lib.keys_model.set_fmp_key
self.fred = lib.keys_model.set_fred_key
self.get_keys_info = lib.keys_model.get_keys_info
self.github = lib.keys_model.set_github_key
self.glassnode = lib.keys_model.set_glassnode_key
self.messari = lib.keys_model.set_messari_key
self.mykeys = lib.keys_model.get_keys
self.news = lib.keys_model.set_news_key
self.oanda = lib.keys_model.set_oanda_key
self.openbb = lib.keys_model.set_openbb_personal_access_token
self.polygon = lib.keys_model.set_polygon_key
self.quandl = lib.keys_model.set_quandl_key
self.reddit = lib.keys_model.set_reddit_key
self.rh = lib.keys_model.set_rh_key
self.santiment = lib.keys_model.set_santiment_key
self.set_keys = lib.keys_model.set_keys
self.shroom = lib.keys_model.set_shroom_key
self.smartstake = lib.keys_model.set_smartstake_key
self.stocksera = lib.keys_model.set_stocksera_key
self.tokenterminal = lib.keys_model.set_tokenterminal_key
self.tradier = lib.keys_model.set_tradier_key
self.twitter = lib.keys_model.set_twitter_key
self.walert = lib.keys_model.set_walert_key

View File

@@ -0,0 +1,205 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class PortfolioRoot(Category):
"""Portfolio Module
Attributes:
`bench`: Load benchmark into portfolio\n
`distr`: Display daily returns\n
`distr_chart`: Display daily returns\n
`dret`: Get daily returns\n
`dret_chart`: Display daily returns\n
`es`: Get portfolio expected shortfall\n
`holdp`: Get holdings of assets (in percentage)\n
`holdp_chart`: Display holdings of assets (in percentage)\n
`holdv`: Get holdings of assets (absolute value)\n
`holdv_chart`: Display holdings of assets (absolute value)\n
`load`: Get PortfolioEngine object\n
`maxdd`: Calculate the drawdown (MDD) of historical series. Note that the calculation is done\n
`maxdd_chart`: Display maximum drawdown curve\n
`mret`: Get monthly returns\n
`mret_chart`: Display monthly returns\n
`om`: Get omega ratio\n
`om_chart`: Display omega ratio\n
`perf`: Get portfolio performance vs the benchmark\n
`rbeta`: Get rolling beta using portfolio and benchmark returns\n
`rbeta_chart`: Display rolling beta\n
`rsharpe`: Get rolling sharpe ratio\n
`rsharpe_chart`: Display rolling sharpe\n
`rsort`: Get rolling sortino\n
`rsort_chart`: Display rolling sortino\n
`rvol`: Get rolling volatility\n
`rvol_chart`: Display rolling volatility\n
`show`: Get portfolio transactions\n
`summary`: Get portfolio and benchmark returns summary\n
`var`: Get portfolio VaR\n
`yret`: Get yearly returns\n
`yret_chart`: Display yearly returns\n
"""
_location_path = "portfolio"
def __init__(self):
super().__init__()
self.bench = lib.portfolio_model.set_benchmark
self.distr = lib.portfolio_model.get_distribution_returns
self.distr_chart = lib.portfolio_view.display_distribution_returns
self.dret = lib.portfolio_model.get_daily_returns
self.dret_chart = lib.portfolio_view.display_daily_returns
self.es = lib.portfolio_model.get_es
self.holdp = lib.portfolio_model.get_holdings_percentage
self.holdp_chart = lib.portfolio_view.display_holdings_percentage
self.holdv = lib.portfolio_model.get_holdings_value
self.holdv_chart = lib.portfolio_view.display_holdings_value
self.load = lib.portfolio_model.generate_portfolio
self.maxdd = lib.portfolio_model.get_maximum_drawdown
self.maxdd_chart = lib.portfolio_view.display_maximum_drawdown
self.mret = lib.portfolio_model.get_monthly_returns
self.mret_chart = lib.portfolio_view.display_monthly_returns
self.om = lib.portfolio_model.get_omega
self.om_chart = lib.portfolio_view.display_omega
self.perf = lib.portfolio_model.get_performance_vs_benchmark
self.rbeta = lib.portfolio_model.get_rolling_beta
self.rbeta_chart = lib.portfolio_view.display_rolling_beta
self.rsharpe = lib.portfolio_model.get_rolling_sharpe
self.rsharpe_chart = lib.portfolio_view.display_rolling_sharpe
self.rsort = lib.portfolio_model.get_rolling_sortino
self.rsort_chart = lib.portfolio_view.display_rolling_sortino
self.rvol = lib.portfolio_model.get_rolling_volatility
self.rvol_chart = lib.portfolio_view.display_rolling_volatility
self.show = lib.portfolio_model.get_transactions
self.summary = lib.portfolio_model.get_summary
self.var = lib.portfolio_model.get_var
self.yret = lib.portfolio_model.get_yearly_returns
self.yret_chart = lib.portfolio_view.display_yearly_returns
class PortfolioAlloc(Category):
"""Alloc Module.
Attributes:
`assets`: Display portfolio asset allocation compared to the benchmark\n
`countries`: Display portfolio country allocation compared to the benchmark\n
`regions`: Display portfolio region allocation compared to the benchmark\n
`sectors`: Display portfolio sector allocation compared to the benchmark\n
"""
_location_path = "portfolio.alloc"
def __init__(self):
super().__init__()
self.assets = lib.portfolio_model.get_assets_allocation
self.countries = lib.portfolio_model.get_countries_allocation
self.regions = lib.portfolio_model.get_regions_allocation
self.sectors = lib.portfolio_model.get_sectors_allocation
class PortfolioMetric(Category):
"""Metric Module.
Attributes:
`calmar`: Get calmar ratio\n
`commonsense`: Get common sense ratio\n
`gaintopain`: Get Pain-to-Gain ratio based on historical data\n
`information`: Get information ratio\n
`jensens`: Get jensen's alpha\n
`kelly`: Get kelly criterion\n
`kurtosis`: Get kurtosis for portfolio and benchmark selected\n
`maxdrawdown`: Get maximum drawdown ratio for portfolio and benchmark selected\n
`payoff`: Get payoff ratio\n
`profitfactor`: Get profit factor\n
`rsquare`: Get R2 Score for portfolio and benchmark selected\n
`sharpe`: Get sharpe ratio for portfolio and benchmark selected\n
`skew`: Get skewness for portfolio and benchmark selected\n
`sortino`: Get sortino ratio for portfolio and benchmark selected\n
`tail`: Get tail ratio\n
`trackerr`: Get tracking error\n
`volatility`: Get volatility for portfolio and benchmark selected\n
"""
_location_path = "portfolio.metric"
def __init__(self):
super().__init__()
self.calmar = lib.portfolio_model.get_calmar_ratio
self.commonsense = lib.portfolio_model.get_common_sense_ratio
self.gaintopain = lib.portfolio_model.get_gaintopain_ratio
self.information = lib.portfolio_model.get_information_ratio
self.jensens = lib.portfolio_model.get_jensens_alpha
self.kelly = lib.portfolio_model.get_kelly_criterion
self.kurtosis = lib.portfolio_model.get_kurtosis
self.maxdrawdown = lib.portfolio_model.get_maximum_drawdown_ratio
self.payoff = lib.portfolio_model.get_payoff_ratio
self.profitfactor = lib.portfolio_model.get_profit_factor
self.rsquare = lib.portfolio_model.get_r2_score
self.sharpe = lib.portfolio_model.get_sharpe_ratio
self.skew = lib.portfolio_model.get_skewness
self.sortino = lib.portfolio_model.get_sortino_ratio
self.tail = lib.portfolio_model.get_tail_ratio
self.trackerr = lib.portfolio_model.get_tracking_error
self.volatility = lib.portfolio_model.get_volatility
class PortfolioPortfolioOptimization(Category):
"""Portfolio Optimization Module.
Attributes:
`blacklitterman`: Optimize decorrelation weights\n
`ef`: Get Efficient Frontier\n
`ef_chart`: Display efficient frontier\n
`file`: Load portfolio optimization engine from file\n
`herc`: Optimize with Hierarchical Equal Risk Contribution (HERC) method.\n
`hrp`: Optimize with Hierarchical Risk Parity\n
`load`: Load portfolio optimization engine\n
`load_bl_views`: Load a Excel file with views for Black Litterman model.\n
`maxdecorr`: Optimize decorrelation weights\n
`maxdiv`: Optimize diversification weights\n
`maxret`: Optimize maximum return weights\n
`maxsharpe`: Optimize Sharpe ratio weights\n
`maxutil`: Optimize maximum utility weights\n
`minrisk`: Optimize minimum risk weights\n
`nco`: Optimize with Non-Convex Optimization (NCO) model.\n
`plot`: Display efficient frontier\n
`plot_chart`: Display efficient frontier\n
`relriskparity`: Optimize with Relaxed Risk Parity using the least squares approach\n
`riskparity`: Optimize with Risk Parity using the risk budgeting approach\n
`show`: Show portfolio optimization results\n
"""
_location_path = "portfolio.po"
def __init__(self):
super().__init__()
if not lib.OPTIMIZATION_TOOLKIT_ENABLED:
# pylint: disable=C0415
from openbb_terminal.rich_config import console
console.print(lib.OPTIMIZATION_TOOLKIT_WARNING)
if lib.OPTIMIZATION_TOOLKIT_ENABLED:
self.blacklitterman = lib.portfolio_optimization_po_model.get_blacklitterman
self.ef = lib.portfolio_optimization_po_model.get_ef
self.ef_chart = lib.portfolio_optimization_po_view.display_ef
self.file = lib.portfolio_optimization_po_model.load_parameters_file
self.herc = lib.portfolio_optimization_po_model.get_herc
self.hrp = lib.portfolio_optimization_po_model.get_hrp
self.load = lib.portfolio_optimization_po_model.generate_portfolio
self.load_bl_views = lib.portfolio_optimization_excel_model.load_bl_views
self.maxdecorr = lib.portfolio_optimization_po_model.get_maxdecorr
self.maxdiv = lib.portfolio_optimization_po_model.get_maxdiv
self.maxret = lib.portfolio_optimization_po_model.get_maxret
self.maxsharpe = lib.portfolio_optimization_po_model.get_maxsharpe
self.maxutil = lib.portfolio_optimization_po_model.get_maxutil
self.minrisk = lib.portfolio_optimization_po_model.get_minrisk
self.nco = lib.portfolio_optimization_po_model.get_nco
self.plot = lib.portfolio_optimization_po_view.display_plot
self.plot_chart = lib.portfolio_optimization_po_view.display_plot
self.relriskparity = lib.portfolio_optimization_po_model.get_relriskparity
self.riskparity = lib.portfolio_optimization_po_model.get_riskparity
self.show = lib.portfolio_optimization_po_model.show

View File

@@ -0,0 +1,86 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class QaRoot(Category):
"""Quantitative Analysis Module
Attributes:
`acf`: Plots Auto and Partial Auto Correlation of returns and change in returns\n
`bw`: Plots box and whisker plots\n
`calculate_adjusted_var`: Calculates VaR, which is adjusted for skew and kurtosis (Cornish-Fischer-Expansion)\n
`cdf`: Plots Cumulative Distribution Function\n
`cusum`: Plots Cumulative sum algorithm (CUSUM) to detect abrupt changes in data\n
`decompose`: Perform seasonal decomposition\n
`es`: Gets Expected Shortfall for specified stock dataframe.\n
`es_chart`: Prints table showing expected shortfall.\n
`hist`: Plots histogram of data\n
`kurtosis`: Kurtosis Indicator\n
`kurtosis_chart`: Plots rolling kurtosis\n
`line`: Display line plot of data\n
`normality`: Look at the distribution of returns and generate statistics on the relation to the normal curve.\n
`normality_chart`: Prints table showing normality statistics\n
`omega`: Get the omega series\n
`omega_chart`: Plots the omega ratio\n
`qqplot`: Plots QQ plot for data against normal quantiles\n
`quantile`: Overlay Median & Quantile\n
`quantile_chart`: Plots rolling quantile\n
`rolling`: Return rolling mean and standard deviation\n
`rolling_chart`: Plots mean std deviation\n
`sharpe`: Calculates the sharpe ratio\n
`sharpe_chart`: Plots Calculated the sharpe ratio\n
`skew`: Skewness Indicator\n
`skew_chart`: Plots rolling skew\n
`sortino`: Calculates the sortino ratio\n
`sortino_chart`: Plots the sortino ratio\n
`spread`: Standard Deviation and Variance\n
`spread_chart`: Plots rolling spread\n
`summary`: Print summary statistics\n
`summary_chart`: Prints table showing summary statistics\n
`unitroot`: Calculate test statistics for unit roots\n
`unitroot_chart`: Prints table showing unit root test calculations\n
`var`: Gets value at risk for specified stock dataframe.\n
`var_chart`: Prints table showing VaR of dataframe.\n
"""
_location_path = "qa"
def __init__(self):
super().__init__()
self.acf = lib.common_qa_view.display_acf
self.bw = lib.common_qa_view.display_bw
self.calculate_adjusted_var = lib.common_qa_model.calculate_adjusted_var
self.cdf = lib.common_qa_view.display_cdf
self.cusum = lib.common_qa_view.display_cusum
self.decompose = lib.common_qa_model.get_seasonal_decomposition
self.es = lib.common_qa_model.get_es
self.es_chart = lib.common_qa_view.display_es
self.hist = lib.common_qa_view.display_hist
self.kurtosis = lib.common_qa_rolling_model.get_kurtosis
self.kurtosis_chart = lib.common_qa_rolling_view.display_kurtosis
self.line = lib.common_qa_view.display_line
self.normality = lib.common_qa_model.get_normality
self.normality_chart = lib.common_qa_view.display_normality
self.omega = lib.common_qa_model.get_omega
self.omega_chart = lib.common_qa_view.display_omega
self.qqplot = lib.common_qa_view.display_qqplot
self.quantile = lib.common_qa_rolling_model.get_quantile
self.quantile_chart = lib.common_qa_rolling_view.display_quantile
self.rolling = lib.common_qa_rolling_model.get_rolling_avg
self.rolling_chart = lib.common_qa_rolling_view.display_mean_std
self.sharpe = lib.common_qa_model.get_sharpe
self.sharpe_chart = lib.common_qa_view.display_sharpe
self.skew = lib.common_qa_rolling_model.get_skew
self.skew_chart = lib.common_qa_rolling_view.display_skew
self.sortino = lib.common_qa_model.get_sortino
self.sortino_chart = lib.common_qa_view.display_sortino
self.spread = lib.common_qa_rolling_model.get_spread
self.spread_chart = lib.common_qa_rolling_view.display_spread
self.summary = lib.common_qa_model.get_summary
self.summary_chart = lib.common_qa_view.display_summary
self.unitroot = lib.common_qa_model.get_unitroot
self.unitroot_chart = lib.common_qa_view.display_unitroot
self.var = lib.common_qa_model.get_var
self.var_chart = lib.common_qa_view.display_var

View File

@@ -0,0 +1,679 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class StocksRoot(Category):
"""Stocks Module
Attributes:
`candle`: Show candle plot of loaded ticker.\n
`load`: Load a symbol to perform analysis using the string above as a template.\n
`process_candle`: Process DataFrame into candle style plot.\n
`quote`: Gets ticker quote from FMP\n
`search`: Search selected query for tickers.\n
`tob`: Get top of book bid and ask for ticker on exchange [CBOE.com]\n
"""
_location_path = "stocks"
def __init__(self):
super().__init__()
self.candle = lib.stocks_helper.display_candle
self.load = lib.stocks_helper.load
self.process_candle = lib.stocks_helper.process_candle
self.quote = lib.stocks_model.get_quote
self.search = lib.stocks_helper.search
self.tob = lib.stocks_cboe_model.get_top_of_book
class StocksBehavioralAnalysis(Category):
"""Behavioral Analysis Module.
Attributes:
`bullbear`: Gets bullbear sentiment for ticker [Source: stocktwits].\n
`cnews`: Get news from a company. [Source: Finnhub]\n
`getdd`: Gets due diligence posts from list of subreddits [Source: reddit].\n
`headlines`: Gets Sentiment analysis provided by FinBrain's API [Source: finbrain].\n
`headlines_chart`: Plots Sentiment analysis from FinBrain. Prints table if raw is True. [Source: FinBrain]\n
`infer`: Load tweets from twitter API and analyzes using VADER.\n
`infer_chart`: Prints Inference sentiment from past n tweets.\n
`mentions`: Get interest over time from google api [Source: google].\n
`mentions_chart`: Plots weekly bars of stock's interest over time. other users watchlist. [Source: Google].\n
`messages`: Get last messages for a given ticker [Source: stocktwits].\n
`popular`: Get popular tickers from list of subreddits [Source: reddit].\n
`queries`: Get related queries from google api [Source: google].\n
`redditsent`: Finds posts related to a specific search term in Reddit.\n
`regions`: Get interest by region from google api [Source: google].\n
`regions_chart`: Plots bars of regions based on stock's interest. [Source: Google].\n
`rise`: Get top rising related queries with this stock's query [Source: google].\n
`sentiment`: Get sentiments from symbol.\n
`sentiment_chart`: Plots sentiments from symbol\n
`snews`: Get headlines sentiment using VADER model over time. [Source: Finnhub]\n
`snews_chart`: Display stock price and headlines sentiment using VADER model over time. [Source: Finnhub]\n
`spac`: Get posts containing SPAC from top subreddits [Source: reddit].\n
`spacc`: Get top tickers from r/SPACs [Source: reddit].\n
`stalker`: Gets messages from given user [Source: stocktwits].\n
`text_sent`: Find the sentiment of a post and related comments.\n
`trending`: Get trending tickers from stocktwits [Source: stocktwits].\n
`watchlist`: Get reddit users watchlists [Source: reddit].\n
`wsb`: Get wsb posts [Source: reddit].\n
"""
_location_path = "stocks.ba"
def __init__(self):
super().__init__()
self.bullbear = lib.stocks_ba_stocktwits_model.get_bullbear
self.cnews = lib.stocks_ba_finnhub_model.get_company_news
self.getdd = lib.stocks_ba_reddit_model.get_due_dilligence
self.headlines = lib.stocks_ba_finbrain_model.get_sentiment
self.headlines_chart = lib.stocks_ba_finbrain_view.display_sentiment_analysis
self.infer = lib.stocks_ba_twitter_model.load_analyze_tweets
self.infer_chart = lib.stocks_ba_twitter_view.display_inference
self.mentions = lib.stocks_ba_google_model.get_mentions
self.mentions_chart = lib.stocks_ba_google_view.display_mentions
self.messages = lib.stocks_ba_stocktwits_model.get_messages
self.popular = lib.stocks_ba_reddit_model.get_popular_tickers
self.queries = lib.stocks_ba_google_model.get_queries
self.redditsent = lib.stocks_ba_reddit_model.get_posts_about
self.regions = lib.stocks_ba_google_model.get_regions
self.regions_chart = lib.stocks_ba_google_view.display_regions
self.rise = lib.stocks_ba_google_model.get_rise
self.sentiment = lib.stocks_ba_twitter_model.get_sentiment
self.sentiment_chart = lib.stocks_ba_twitter_view.display_sentiment
self.snews = lib.stocks_ba_finnhub_model.get_headlines_sentiment
self.snews_chart = (
lib.stocks_ba_finnhub_view.display_stock_price_headlines_sentiment
)
self.spac = lib.stocks_ba_reddit_model.get_spac
self.spacc = lib.stocks_ba_reddit_model.get_spac_community
self.stalker = lib.stocks_ba_stocktwits_model.get_stalker
self.text_sent = lib.stocks_ba_reddit_model.get_sentiment
self.trending = lib.stocks_ba_stocktwits_model.get_trending
self.watchlist = lib.stocks_ba_reddit_model.get_watchlists
self.wsb = lib.stocks_ba_reddit_model.get_wsb_community
class StocksComparisonAnalysis(Category):
"""Comparison Analysis Module.
Attributes:
`balance`: Get balance data. [Source: Marketwatch].\n
`cashflow`: Get cashflow data. [Source: Marketwatch]\n
`hcorr`: Get historical price correlation. [Source: Yahoo Finance]\n
`hcorr_chart`: Correlation heatmap based on historical price comparison\n
`hist`: Get historical prices for all comparison stocks\n
`hist_chart`: Display historical stock prices. [Source: Yahoo Finance]\n
`income`: Get income data. [Source: Marketwatch].\n
`income_chart`: Display income data. [Source: Marketwatch].\n
`scorr`: Get correlation sentiments across similar companies. [Source: FinBrain].\n
`scorr_chart`: Plot correlation sentiments heatmap across similar companies. [Source: FinBrain].\n
`screener`: Screener Overview.\n
`sentiment`: Gets Sentiment analysis from several symbols provided by FinBrain's API.\n
`sentiment_chart`: Display sentiment for all ticker. [Source: FinBrain].\n
`similar`: Find similar tickers to a given symbol.\n
`volume`: Get stock volume. [Source: Yahoo Finance]\n
`volume_chart`: Display stock volume. [Source: Yahoo Finance]\n
"""
_location_path = "stocks.ca"
def __init__(self):
super().__init__()
self.balance = lib.stocks_ca_marketwatch_model.get_balance_comparison
self.cashflow = lib.stocks_ca_marketwatch_model.get_cashflow_comparison
self.hcorr = lib.stocks_ca_yahoo_finance_model.get_correlation
self.hcorr_chart = lib.stocks_ca_yahoo_finance_view.display_correlation
self.hist = lib.stocks_ca_yahoo_finance_model.get_historical
self.hist_chart = lib.stocks_ca_yahoo_finance_view.display_historical
self.income = lib.stocks_ca_marketwatch_model.get_income_comparison
self.income_chart = lib.stocks_ca_marketwatch_view.display_income_comparison
self.scorr = lib.stocks_ca_finbrain_model.get_sentiment_correlation
self.scorr_chart = lib.stocks_ca_finbrain_view.display_sentiment_correlation
self.screener = lib.stocks_ca_finviz_compare_model.get_comparison_data
self.sentiment = lib.stocks_ca_finbrain_model.get_sentiments
self.sentiment_chart = lib.stocks_ca_finbrain_view.display_sentiment_compare
self.similar = lib.stocks_ca_sdk_helpers.get_similar
self.volume = lib.stocks_ca_yahoo_finance_model.get_volume
self.volume_chart = lib.stocks_ca_yahoo_finance_view.display_volume
class StocksDiscovery(Category):
"""Discovery Module.
Attributes:
`active`: Get stocks ordered in descending order by intraday trade volume. [Source: Yahoo Finance]\n
`arkord`: Returns ARK orders in a Dataframe\n
`asc`: Get Yahoo Finance small cap stocks with earnings growth rates better than 25%.\n
`dividends`: Gets dividend calendar for given date. Date represents Ex-Dividend Date\n
`filings`: Get SEC Filings RSS feed, disseminated by FMP\n
`filings_chart`: Display recent forms submitted to the SEC\n
`fipo`: Future IPOs dates. [Source: Finnhub]\n
`gainers`: Get top gainers. [Source: Yahoo Finance]\n
`gtech`: Get technology stocks with revenue and earnings growth in excess of 25%. [Source: Yahoo Finance]\n
`hotpenny`: Returns today hot penny stocks\n
`ipo`: Get IPO calendar\n
`losers`: Get top losers. [Source: Yahoo Finance]\n
`lowfloat`: Returns low float DataFrame\n
`news`: Gets news. [Source: SeekingAlpha]\n
`pipo`: Past IPOs dates. [Source: Finnhub]\n
`rtat`: Gets the top 10 retail stocks per day\n
`trending`: Returns a list of trending articles\n
`ugs`: Get stocks with earnings growth rates better than 25% and relatively low PE and PEG ratios.\n
`ulc`: Get Yahoo Finance potentially undervalued large cap stocks.\n
`upcoming`: Returns a DataFrame with upcoming earnings\n
"""
_location_path = "stocks.disc"
def __init__(self):
super().__init__()
self.active = lib.stocks_disc_yahoofinance_model.get_active
self.arkord = lib.stocks_disc_ark_model.get_ark_orders
self.asc = lib.stocks_disc_yahoofinance_model.get_asc
self.dividends = lib.stocks_disc_nasdaq_model.get_dividend_cal
self.filings = lib.stocks_fa_fmp_model.get_filings
self.filings_chart = lib.stocks_disc_fmp_view.display_filings
self.fipo = lib.stocks_disc_finnhub_model.get_future_ipo
self.gainers = lib.stocks_disc_yahoofinance_model.get_gainers
self.gtech = lib.stocks_disc_yahoofinance_model.get_gtech
self.hotpenny = lib.stocks_disc_shortinterest_model.get_today_hot_penny_stocks
self.ipo = lib.stocks_disc_finnhub_model.get_ipo_calendar
self.losers = lib.stocks_disc_yahoofinance_model.get_losers
self.lowfloat = lib.stocks_disc_shortinterest_model.get_low_float
self.news = lib.stocks_disc_seeking_alpha_model.get_news
self.pipo = lib.stocks_disc_finnhub_model.get_past_ipo
self.rtat = lib.stocks_disc_nasdaq_model.get_retail_tickers
self.trending = lib.stocks_disc_seeking_alpha_model.get_trending_list
self.ugs = lib.stocks_disc_yahoofinance_model.get_ugs
self.ulc = lib.stocks_disc_yahoofinance_model.get_ulc
self.upcoming = lib.stocks_disc_seeking_alpha_model.get_next_earnings
class StocksDarkpoolShorts(Category):
"""Darkpool Shorts Module.
Attributes:
`ctb`: Get stocks with highest cost to borrow [Source: Interactive Broker]\n
`dpotc`: Get all FINRA data associated with a ticker\n
`dpotc_chart`: Display barchart of dark pool (ATS) and OTC (Non ATS) data. [Source: FINRA]\n
`ftd`: Display fails-to-deliver data for a given ticker. [Source: SEC]\n
`ftd_chart`: Display fails-to-deliver data for a given ticker. [Source: SEC]\n
`hsi`: Returns a high short interest DataFrame\n
`pos`: Get dark pool short positions. [Source: Stockgrid]\n
`prom`: Get all FINRA ATS data, and parse most promising tickers based on linear regression\n
`prom_chart`: Display dark pool (ATS) data of tickers with growing trades activity. [Source: FINRA]\n
`psi_q`: Plots the short interest of a stock. This corresponds to the\n
`psi_q_chart`: Plot the short interest of a stock. This corresponds to the\n
`psi_sg`: Get price vs short interest volume. [Source: Stockgrid]\n
`psi_sg_chart`: Plot price vs short interest volume. [Source: Stockgrid]\n
`shorted`: Get most shorted stock screener [Source: Yahoo Finance]\n
`sidtc`: Get short interest and days to cover. [Source: Stockgrid]\n
`spos`: Get net short position. [Source: Stockgrid]\n
`spos_chart`: Plot net short position. [Source: Stockgrid]\n
"""
_location_path = "stocks.dps"
def __init__(self):
super().__init__()
self.ctb = lib.stocks_dps_ibkr_model.get_cost_to_borrow
self.dpotc = lib.stocks_dps_finra_model.getTickerFINRAdata
self.dpotc_chart = lib.stocks_dps_finra_view.darkpool_ats_otc
self.ftd = lib.stocks_dps_sec_model.get_fails_to_deliver
self.ftd_chart = lib.stocks_dps_sec_view.fails_to_deliver
self.hsi = lib.stocks_dps_shortinterest_model.get_high_short_interest
self.pos = lib.stocks_dps_stockgrid_model.get_dark_pool_short_positions
self.prom = lib.stocks_dps_finra_model.getATSdata
self.prom_chart = lib.stocks_dps_finra_view.darkpool_otc
self.psi_q = lib.stocks_dps_quandl_model.get_short_interest
self.psi_q_chart = lib.stocks_dps_quandl_view.short_interest
self.psi_sg = lib.stocks_dps_stockgrid_model.get_short_interest_volume
self.psi_sg_chart = lib.stocks_dps_stockgrid_view.short_interest_volume
self.shorted = lib.stocks_dps_yahoofinance_model.get_most_shorted
self.sidtc = lib.stocks_dps_stockgrid_model.get_short_interest_days_to_cover
self.spos = lib.stocks_dps_stockgrid_model.get_net_short_position
self.spos_chart = lib.stocks_dps_stockgrid_view.net_short_position
class StocksFundamentalAnalysis(Category):
"""Fundamental Analysis Module.
Attributes:
`analysis`: Save time reading SEC filings with the help of machine learning. [Source: https://eclect.us]\n
`analyst`: Get analyst data. [Source: Finviz]\n
`balance`: Get balance sheet.\n
`cal`: Get calendar earnings for ticker symbol\n
`cash`: Get Cash Flow.\n
`customer`: Print customers from ticker provided\n
`data`: Get fundamental data from finviz\n
`dcf`: Get stocks dcf from FMP\n
`dcfc`: Get stocks dcf from FMP\n
`divs`: Get historical dividend for ticker\n
`divs_chart`: Display historical dividends\n
`dupont`: Get dupont ratios\n
`earnings`: Get earnings data.\n
`enterprise`: Financial Modeling Prep ticker enterprise\n
`epsfc`: Takes the ticker, asks for seekingalphaID and gets eps estimates\n
`est`: Get analysts' estimates for a given ticker. [Source: Business Insider]\n
`fama_coe`: Use Fama and French to get the cost of equity for a company\n
`fama_raw`: Get Fama French data\n
`fraud`: Get fraud ratios based on fundamentals\n
`growth`: Get financial statement growth\n
`historical_5`: Get 5 year monthly historical performance for a ticker with dividends filtered\n
`income`: Get income statement.\n
`info`: Gets ticker symbol info\n
`key`: Get key metrics from overview\n
`metrics`: Get key metrics\n
`mgmt`: Get company managers from Business Insider\n
`mktcap`: Get market cap over time for ticker. [Source: Yahoo Finance]\n
`mktcap_chart`: Display market cap over time. [Source: Yahoo Finance]\n
`news`: Get news from Finviz\n
`overview`: Get alpha vantage company overview\n
`profile`: Get ticker profile from FMP\n
`pt`: Get analysts' price targets for a given stock. [Source: Business Insider]\n
`pt_chart`: Display analysts' price targets for a given stock. [Source: Business Insider]\n
`rating`: Get ratings for a given ticker. [Source: Financial Modeling Prep]\n
`ratios`: Get key ratios\n
`revfc`: Takes the ticker, asks for seekingalphaID and gets rev estimates\n
`rot`: Get rating over time data. [Source: Finnhub]\n
`rot_chart`: Rating over time (monthly). [Source: Finnhub]\n
`score`: Gets value score from fmp\n
`sec`: Get SEC filings for a given stock ticker. [Source: Market Watch]\n
`sec_fmp`: Get SEC Filings RSS feed, disseminated by FMP\n
`sec_fmp_chart`: Display recent forms submitted to the SEC\n
`shrs`: Get shareholders from yahoo\n
`similar_dfs`: Get dataframes for similar companies\n
`splits`: Get splits and reverse splits events. [Source: Yahoo Finance]\n
`splits_chart`: Display splits and reverse splits events. [Source: Yahoo Finance]\n
`supplier`: Get suppliers from ticker provided. [Source: CSIMarket]\n
"""
_location_path = "stocks.fa"
def __init__(self):
super().__init__()
self.analysis = lib.stocks_fa_eclect_us_model.get_filings_analysis
self.analyst = lib.stocks_fa_finviz_model.get_analyst_data
self.balance = lib.stocks_fa_sdk_helpers.get_balance_sheet
self.cal = lib.stocks_fa_yahoo_finance_model.get_calendar_earnings
self.cash = lib.stocks_fa_sdk_helpers.get_cash_flow
self.customer = lib.stocks_fa_csimarket_model.get_customers
self.data = lib.stocks_fa_finviz_model.get_data
self.dcf = lib.stocks_fa_fmp_model.get_dcf
self.dcfc = lib.stocks_fa_fmp_model.get_dcf
self.divs = lib.stocks_fa_yahoo_finance_model.get_dividends
self.divs_chart = lib.stocks_fa_yahoo_finance_view.display_dividends
self.dupont = lib.stocks_fa_av_model.get_dupont
self.earnings = lib.stocks_fa_sdk_helpers.earnings
self.enterprise = lib.stocks_fa_fmp_model.get_enterprise
self.epsfc = lib.stocks_fa_seeking_alpha_model.get_estimates_eps
self.est = lib.stocks_fa_business_insider_model.get_estimates
self.fama_coe = lib.stocks_fa_dcf_model.get_fama_coe
self.fama_raw = lib.stocks_fa_dcf_model.get_fama_raw
self.fraud = lib.stocks_fa_av_model.get_fraud_ratios
self.growth = lib.stocks_fa_fmp_model.get_financial_growth
self.historical_5 = lib.stocks_fa_dcf_model.get_historical_5
self.income = lib.stocks_fa_sdk_helpers.get_income_statement
self.info = lib.stocks_fa_yahoo_finance_model.get_info
self.key = lib.stocks_fa_av_model.get_key_metrics
self.metrics = lib.stocks_fa_fmp_model.get_key_metrics
self.mgmt = lib.stocks_fa_business_insider_model.get_management
self.mktcap = lib.stocks_fa_yahoo_finance_model.get_mktcap
self.mktcap_chart = lib.stocks_fa_yahoo_finance_view.display_mktcap
self.news = lib.stocks_fa_finviz_model.get_news
self.overview = lib.stocks_fa_av_model.get_overview
self.profile = lib.stocks_fa_fmp_model.get_profile
self.pt = lib.stocks_fa_business_insider_model.get_price_target_from_analysts
self.pt_chart = lib.stocks_fa_business_insider_view.price_target_from_analysts
self.rating = lib.stocks_fa_fmp_model.get_rating
self.ratios = lib.stocks_fa_fmp_model.get_key_ratios
self.revfc = lib.stocks_fa_seeking_alpha_model.get_estimates_rev
self.rot = lib.stocks_fa_finnhub_model.get_rating_over_time
self.rot_chart = lib.stocks_fa_finnhub_view.rating_over_time
self.score = lib.stocks_fa_fmp_model.get_score
self.sec = lib.stocks_fa_marketwatch_model.get_sec_filings
self.sec_fmp = lib.stocks_fa_fmp_model.get_filings
self.sec_fmp_chart = lib.stocks_fa_fmp_view.display_filings
self.shrs = lib.stocks_fa_yahoo_finance_model.get_shareholders
self.similar_dfs = lib.stocks_fa_dcf_model.get_similar_dfs
self.splits = lib.stocks_fa_yahoo_finance_model.get_splits
self.splits_chart = lib.stocks_fa_yahoo_finance_view.display_splits
self.supplier = lib.stocks_fa_csimarket_model.get_suppliers
class StocksGovernment(Category):
"""Government Module.
Attributes:
`contracts`: Get government contracts for ticker [Source: quiverquant.com]\n
`contracts_chart`: Show government contracts for ticker [Source: quiverquant.com]\n
`government_trading`: Returns the most recent transactions by members of government\n
`gtrades`: Government trading for specific ticker [Source: quiverquant.com]\n
`gtrades_chart`: Government trading for specific ticker [Source: quiverquant.com]\n
`histcont`: Get historical quarterly government contracts [Source: quiverquant.com]\n
`histcont_chart`: Show historical quarterly government contracts [Source: quiverquant.com]\n
`lastcontracts`: Get last government contracts [Source: quiverquant.com]\n
`lastcontracts_chart`: Last government contracts [Source: quiverquant.com]\n
`lasttrades`: Get last government trading [Source: quiverquant.com]\n
`lobbying`: Corporate lobbying details\n
`qtrcontracts`: Analyzes quarterly contracts by ticker\n
`qtrcontracts_chart`: Quarterly contracts [Source: quiverquant.com]\n
`topbuys`: Get top buy government trading [Source: quiverquant.com]\n
`topbuys_chart`: Top buy government trading [Source: quiverquant.com]\n
`toplobbying`: Corporate lobbying details\n
`toplobbying_chart`: Top lobbying tickers based on total spent\n
`topsells`: Get top sell government trading [Source: quiverquant.com]\n
`topsells_chart`: Top sell government trading [Source: quiverquant.com]\n
"""
_location_path = "stocks.gov"
def __init__(self):
super().__init__()
self.contracts = lib.stocks_gov_quiverquant_model.get_contracts
self.contracts_chart = lib.stocks_gov_quiverquant_view.display_contracts
self.government_trading = (
lib.stocks_gov_quiverquant_model.get_government_trading
)
self.gtrades = lib.stocks_gov_quiverquant_model.get_cleaned_government_trading
self.gtrades_chart = lib.stocks_gov_quiverquant_view.display_government_trading
self.histcont = lib.stocks_gov_quiverquant_model.get_hist_contracts
self.histcont_chart = lib.stocks_gov_quiverquant_view.display_hist_contracts
self.lastcontracts = lib.stocks_gov_quiverquant_model.get_last_contracts
self.lastcontracts_chart = (
lib.stocks_gov_quiverquant_view.display_last_contracts
)
self.lasttrades = lib.stocks_gov_quiverquant_model.get_last_government
self.lobbying = lib.stocks_gov_quiverquant_model.get_lobbying
self.qtrcontracts = lib.stocks_gov_quiverquant_model.get_qtr_contracts
self.qtrcontracts_chart = lib.stocks_gov_quiverquant_view.display_qtr_contracts
self.topbuys = lib.stocks_gov_quiverquant_model.get_government_buys
self.topbuys_chart = lib.stocks_gov_quiverquant_view.display_government_buys
self.toplobbying = lib.stocks_gov_quiverquant_model.get_top_lobbying
self.toplobbying_chart = lib.stocks_gov_quiverquant_view.display_top_lobbying
self.topsells = lib.stocks_gov_quiverquant_model.get_government_sells
self.topsells_chart = lib.stocks_gov_quiverquant_view.display_government_sells
class StocksInsiders(Category):
"""Insiders Module.
Attributes:
`act`: Get insider activity. [Source: Business Insider]\n
`act_chart`: Display insider activity. [Source: Business Insider]\n
`blcp`: Get latest CEO/CFO purchases > 25k\n
`blcs`: Get latest CEO/CFO sales > 100k\n
`blip`: Get latest insider purchases > 25k\n
`blis`: Get latest insider sales > 100k\n
`blop`: Get latest officer purchases > 25k\n
`blos`: Get latest officer sales > 100k\n
`filter`: GEt insider trades based on preset filter\n
`lcb`: Get latest cluster buys\n
`lins`: Get last insider activity for a given stock ticker. [Source: Finviz]\n
`lins_chart`: Display insider activity for a given stock ticker. [Source: Finviz]\n
`lip`: Get latest insider purchases\n
`lis`: Get latest insider sales\n
`lit`: Get latest insider trades\n
`lpsb`: Get latest penny stock buys\n
`print_insider_data`: Print insider data\n
`print_insider_data_chart`: Print insider data\n
`stats`: Get OpenInsider stats for ticker\n
"""
_location_path = "stocks.ins"
def __init__(self):
super().__init__()
self.act = lib.stocks_insider_businessinsider_model.get_insider_activity
self.act_chart = lib.stocks_insider_businessinsider_view.insider_activity
self.blcp = lib.stocks_insider_sdk_helper.blcp
self.blcs = lib.stocks_insider_sdk_helper.blcs
self.blip = lib.stocks_insider_sdk_helper.blip
self.blis = lib.stocks_insider_sdk_helper.blis
self.blop = lib.stocks_insider_sdk_helper.blop
self.blos = lib.stocks_insider_sdk_helper.blos
self.filter = lib.stocks_insider_sdk_helper.insider_filter
self.lcb = lib.stocks_insider_sdk_helper.lcb
self.lins = lib.stocks_insider_finviz_model.get_last_insider_activity
self.lins_chart = lib.stocks_insider_finviz_view.last_insider_activity
self.lip = lib.stocks_insider_sdk_helper.lip
self.lis = lib.stocks_insider_sdk_helper.lis
self.lit = lib.stocks_insider_sdk_helper.lit
self.lpsb = lib.stocks_insider_sdk_helper.lpsb
self.print_insider_data = (
lib.stocks_insider_openinsider_model.get_print_insider_data
)
self.print_insider_data_chart = (
lib.stocks_insider_openinsider_view.print_insider_data
)
self.stats = lib.stocks_insider_sdk_helper.stats
class StocksOptions(Category):
"""Options Module.
Submodules:
`screen`: Screen Module
Attributes:
`chains`: Get Option Chain For A Stock. No greek data is returned\n
`dte`: Gets days to expiration from yfinance option date\n
`eodchain`: Get full EOD option date across all expirations\n
`expirations`: Get Option Chain Expirations\n
`generate_data`: Gets x values, and y values before and after premiums\n
`grhist`: Get historical option greeks\n
`grhist_chart`: Plots historical greeks for a given option. [Source: Syncretism]\n
`hist`: Get historical option pricing.\n
`info`: Scrape barchart for options info\n
`info_chart`: Scrapes Barchart.com for the options information\n
`last_price`: Makes api request for last price\n
`oi`: Plot open interest\n
`pcr`: Gets put call ratio over last time window [Source: AlphaQuery.com]\n
`pcr_chart`: Display put call ratio [Source: AlphaQuery.com]\n
`price`: Get Option current price for a stock.\n
`unu`: Get unusual option activity from fdscanner.com\n
`unu_chart`: Displays the unusual options table\n
`voi`: Plot volume and open interest\n
`vol`: Plot volume\n
`vsurf`: Gets IV surface for calls and puts for ticker\n
`vsurf_chart`: Display vol surface\n
"""
_location_path = "stocks.options"
def __init__(self):
super().__init__()
self.chains = lib.stocks_options_sdk_helper.get_full_option_chain
self.dte = lib.stocks_options_yfinance_model.get_dte
self.eodchain = lib.stocks_options_intrinio_model.get_full_chain_eod
self.expirations = lib.stocks_options_sdk_helper.get_option_expirations
self.generate_data = lib.stocks_options_yfinance_model.generate_data
self.grhist = lib.stocks_options_screen_syncretism_model.get_historical_greeks
self.grhist_chart = (
lib.stocks_options_screen_syncretism_view.view_historical_greeks
)
self.hist = lib.stocks_options_sdk_helper.hist
self.info = lib.stocks_options_barchart_model.get_options_info
self.info_chart = lib.stocks_options_barchart_view.print_options_data
self.last_price = lib.stocks_options_tradier_model.get_last_price
self.oi = lib.stocks_options_view.plot_oi
self.pcr = lib.stocks_options_alphaquery_model.get_put_call_ratio
self.pcr_chart = lib.stocks_options_alphaquery_view.display_put_call_ratio
self.price = lib.stocks_options_sdk_helper.get_option_current_price
self.unu = lib.stocks_options_fdscanner_model.unusual_options
self.unu_chart = lib.stocks_options_fdscanner_view.display_options
self.voi = lib.stocks_options_view.plot_voi
self.vol = lib.stocks_options_view.plot_vol
self.vsurf = lib.stocks_options_yfinance_model.get_iv_surface
self.vsurf_chart = lib.stocks_options_yfinance_view.display_vol_surface
class StocksQuantitativeAnalysis(Category):
"""Quantitative Analysis Module.
Attributes:
`beta`: Calculate beta for a ticker and a reference ticker.\n
`beta_chart`: Display the beta scatterplot + linear regression.\n
`capm`: Provides information that relates to the CAPM model\n
`fama_raw`: Gets base Fama French data to calculate risk\n
`historical_5`: Get 5 year monthly historical performance for a ticker with dividends filtered\n
"""
_location_path = "stocks.qa"
def __init__(self):
super().__init__()
self.beta = lib.stocks_qa_beta_model.beta_model
self.beta_chart = lib.stocks_qa_beta_view.beta_view
self.capm = lib.stocks_qa_factors_model.capm_information
self.fama_raw = lib.stocks_qa_factors_model.get_fama_raw
self.historical_5 = lib.stocks_qa_factors_model.get_historical_5
class StocksScreener(Category):
"""Screener Module.
Attributes:
`arktrades`: Gets a dataframe of ARK trades for ticker\n
`historical`: View historical price of stocks that meet preset\n
`historical_chart`: View historical price of stocks that meet preset\n
`screener_data`: Screener Overview\n
`screener_data_chart`: Screener one of the following: overview, valuation, financial, ownership, performance, technical.\n
"""
_location_path = "stocks.screener"
def __init__(self):
super().__init__()
self.arktrades = lib.stocks_screener_ark_model.get_ark_trades_by_ticker
self.historical = lib.stocks_screener_yahoofinance_model.historical
self.historical_chart = lib.stocks_screener_yahoofinance_view.historical
self.screener_data = lib.stocks_screener_finviz_model.get_screener_data
self.screener_data_chart = lib.stocks_screener_finviz_view.screener
class StocksSectorIndustryAnalysis(Category):
"""Sector Industry Analysis Module.
Attributes:
`countries`: Get all countries in Yahoo Finance data based on sector or industry. [Source: Finance Database]\n
`cpci`: Get number of companies per country in a specific industry (and specific market cap).\n
`cpci_chart`: Display number of companies per country in a specific industry. [Source: Finance Database]\n
`cpcs`: Get number of companies per country in a specific sector (and specific market cap).\n
`cpcs_chart`: Display number of companies per country in a specific sector. [Source: Finance Database]\n
`cpic`: Get number of companies per industry in a specific country (and specific market cap).\n
`cpic_chart`: Display number of companies per industry in a specific country. [Source: Finance Database]\n
`cpis`: Get number of companies per industry in a specific sector (and specific market cap).\n
`cpis_chart`: Display number of companies per industry in a specific sector. [Source: Finance Database]\n
`cps`: Get number of companies per sector in a specific country (and specific market cap). [Source: Finance Database]\n
`cps_chart`: Display number of companies per sector in a specific country (and market cap). [Source: Finance Database]\n
`filter_stocks`: Filter stocks based on country, sector, industry, market cap and exclude exchanges.\n
`industries`: Get all industries in Yahoo Finance data based on country or sector. [Source: Finance Database]\n
`maketcap`: Get all market cap division in Yahoo Finance data. [Source: Finance Database]\n
`marketcap`: Get all market cap division in Yahoo Finance data. [Source: Finance Database]\n
`sectors`: Get all sectors in Yahoo Finance data based on country or industry. [Source: Finance Database]\n
`stocks_data`: Get stocks data based on a list of stocks and the finance key. The function searches for the\n
"""
_location_path = "stocks.sia"
def __init__(self):
super().__init__()
self.countries = lib.stocks_sia_financedatabase_model.get_countries
self.cpci = (
lib.stocks_sia_financedatabase_model.get_companies_per_country_in_industry
)
self.cpci_chart = (
lib.stocks_sia_financedatabase_view.display_companies_per_country_in_industry
)
self.cpcs = (
lib.stocks_sia_financedatabase_model.get_companies_per_country_in_sector
)
self.cpcs_chart = (
lib.stocks_sia_financedatabase_view.display_companies_per_country_in_sector
)
self.cpic = (
lib.stocks_sia_financedatabase_model.get_companies_per_industry_in_country
)
self.cpic_chart = (
lib.stocks_sia_financedatabase_view.display_companies_per_industry_in_country
)
self.cpis = (
lib.stocks_sia_financedatabase_model.get_companies_per_industry_in_sector
)
self.cpis_chart = (
lib.stocks_sia_financedatabase_view.display_companies_per_industry_in_sector
)
self.cps = (
lib.stocks_sia_financedatabase_model.get_companies_per_sector_in_country
)
self.cps_chart = (
lib.stocks_sia_financedatabase_view.display_companies_per_sector_in_country
)
self.filter_stocks = lib.stocks_sia_financedatabase_model.filter_stocks
self.industries = lib.stocks_sia_financedatabase_model.get_industries
self.maketcap = lib.stocks_sia_financedatabase_model.get_marketcap
self.marketcap = lib.stocks_sia_financedatabase_model.get_marketcap
self.sectors = lib.stocks_sia_financedatabase_model.get_sectors
self.stocks_data = lib.stocks_sia_stockanalysis_model.get_stocks_data
class StocksTechnicalAnalysis(Category):
"""Technical Analysis Module.
Attributes:
`recom`: Get tradingview recommendation based on technical indicators\n
`recom_chart`: Print tradingview recommendation based on technical indicators\n
`rsp`: Relative strength percentile [Source: https://github.com/skyte/relative-strength]\n
`rsp_chart`: Display Relative Strength Percentile [Source: https://github.com/skyte/relative-strength]\n
`summary`: Get technical summary report provided by FinBrain's API\n
`summary_chart`: Print technical summary report provided by FinBrain's API\n
`view`: Get finviz image for given ticker\n
`view_chart`: View finviz image for ticker\n
"""
_location_path = "stocks.ta"
def __init__(self):
super().__init__()
self.recom = lib.stocks_ta_tradingview_model.get_tradingview_recommendation
self.recom_chart = lib.stocks_ta_tradingview_view.print_recommendation
self.rsp = lib.stocks_ta_rsp_model.get_rsp
self.rsp_chart = lib.stocks_ta_rsp_view.display_rsp
self.summary = lib.stocks_ta_finbrain_model.get_technical_summary_report
self.summary_chart = lib.stocks_ta_finbrain_view.technical_summary_report
self.view = lib.stocks_ta_finviz_model.get_finviz_image
self.view_chart = lib.stocks_ta_finviz_view.view
class StocksTradingHours(Category):
"""Trading Hours Module.
Attributes:
`all`: Get all exchanges.\n
`all_chart`: Display all exchanges.\n
`check_if_open`: Check if market open helper function\n
`closed`: Get closed exchanges.\n
`closed_chart`: Display closed exchanges.\n
`exchange`: Get current exchange open hours.\n
`exchange_chart`: Display current exchange trading hours.\n
`open`: Get open exchanges.\n
`open_chart`: Display open exchanges.\n
"""
_location_path = "stocks.th"
def __init__(self):
super().__init__()
self.all = lib.stocks_th_bursa_model.get_all
self.all_chart = lib.stocks_th_bursa_view.display_all
self.check_if_open = lib.stocks_th_bursa_model.check_if_open
self.closed = lib.stocks_th_bursa_model.get_closed
self.closed_chart = lib.stocks_th_bursa_view.display_closed
self.exchange = lib.stocks_th_bursa_model.get_bursa
self.exchange_chart = lib.stocks_th_bursa_view.display_exchange
self.open = lib.stocks_th_bursa_model.get_open
self.open_chart = lib.stocks_th_bursa_view.display_open

View File

@@ -0,0 +1,106 @@
# flake8: noqa
# pylint: disable=C0301,R0902,R0903
from openbb_terminal.sdk_core.sdk_helpers import Category
import openbb_terminal.sdk_core.sdk_init as lib
class TaRoot(Category):
"""Technical Analysis Module
Attributes:
`ad`: Calculate AD technical indicator\n
`ad_chart`: Plots AD technical indicator\n
`adosc`: Calculate AD oscillator technical indicator\n
`adosc_chart`: Plots AD Osc Indicator\n
`adx`: ADX technical indicator\n
`adx_chart`: Plots ADX indicator\n
`aroon`: Aroon technical indicator\n
`aroon_chart`: Plots Aroon indicator\n
`atr`: Average True Range\n
`atr_chart`: Plots ATR\n
`bbands`: Calculate Bollinger Bands\n
`bbands_chart`: Plots bollinger bands\n
`cci`: Commodity channel index\n
`cci_chart`: Plots CCI Indicator\n
`cg`: Center of gravity\n
`cg_chart`: Plots center of gravity Indicator\n
`clenow`: Gets the Clenow Volatility Adjusted Momentum. this is defined as the regression coefficient on log prices\n
`clenow_chart`: Prints table and plots clenow momentum\n
`demark`: Get the integer value for demark sequential indicator\n
`demark_chart`: Plot demark sequential indicator\n
`donchian`: Calculate Donchian Channels\n
`donchian_chart`: Plots donchian channels\n
`ema`: Gets exponential moving average (EMA) for stock\n
`fib`: Calculate Fibonacci levels\n
`fib_chart`: Plots Calculated fibonacci retracement levels\n
`fisher`: Fisher Transform\n
`fisher_chart`: Plots Fisher Indicator\n
`hma`: Gets hull moving average (HMA) for stock\n
`kc`: Keltner Channels\n
`kc_chart`: Plots Keltner Channels Indicator\n
`ma`: Plots MA technical indicator\n
`ma_chart`: Plots MA technical indicator\n
`macd`: Moving average convergence divergence\n
`macd_chart`: Plots MACD signal\n
`obv`: On Balance Volume\n
`obv_chart`: Plots OBV technical indicator\n
`rsi`: Relative strength index\n
`rsi_chart`: Plots RSI Indicator\n
`sma`: Gets simple moving average (SMA) for stock\n
`stoch`: Stochastic oscillator\n
`stoch_chart`: Plots stochastic oscillator signal\n
`vwap`: Gets volume weighted average price (VWAP)\n
`vwap_chart`: Plots VWMA technical indicator\n
`wma`: Gets weighted moving average (WMA) for stock\n
`zlma`: Gets zero-lagged exponential moving average (ZLEMA) for stock\n
"""
_location_path = "ta"
def __init__(self):
super().__init__()
self.ad = lib.common_ta_volume_model.ad
self.ad_chart = lib.common_ta_volume_view.display_ad
self.adosc = lib.common_ta_volume_model.adosc
self.adosc_chart = lib.common_ta_volume_view.display_adosc
self.adx = lib.common_ta_trend_indicators_model.adx
self.adx_chart = lib.common_ta_trend_indicators_view.display_adx
self.aroon = lib.common_ta_trend_indicators_model.aroon
self.aroon_chart = lib.common_ta_trend_indicators_view.display_aroon
self.atr = lib.common_ta_volatility_model.atr
self.atr_chart = lib.common_ta_volatility_view.display_atr
self.bbands = lib.common_ta_volatility_model.bbands
self.bbands_chart = lib.common_ta_volatility_view.display_bbands
self.cci = lib.common_ta_momentum_model.cci
self.cci_chart = lib.common_ta_momentum_view.display_cci
self.cg = lib.common_ta_momentum_model.cg
self.cg_chart = lib.common_ta_momentum_view.display_cg
self.clenow = lib.common_ta_momentum_model.clenow_momentum
self.clenow_chart = lib.common_ta_momentum_view.display_clenow_momentum
self.demark = lib.common_ta_momentum_model.demark_seq
self.demark_chart = lib.common_ta_momentum_view.display_demark
self.donchian = lib.common_ta_volatility_model.donchian
self.donchian_chart = lib.common_ta_volatility_view.display_donchian
self.ema = lib.common_ta_overlap_model.ema
self.fib = lib.common_ta_custom_indicators_model.calculate_fib_levels
self.fib_chart = lib.common_ta_custom_indicators_view.fibonacci_retracement
self.fisher = lib.common_ta_momentum_model.fisher
self.fisher_chart = lib.common_ta_momentum_view.display_fisher
self.hma = lib.common_ta_overlap_model.hma
self.kc = lib.common_ta_volatility_model.kc
self.kc_chart = lib.common_ta_volatility_view.view_kc
self.ma = lib.common_ta_overlap_view.view_ma
self.ma_chart = lib.common_ta_overlap_view.view_ma
self.macd = lib.common_ta_momentum_model.macd
self.macd_chart = lib.common_ta_momentum_view.display_macd
self.obv = lib.common_ta_volume_model.obv
self.obv_chart = lib.common_ta_volume_view.display_obv
self.rsi = lib.common_ta_momentum_model.rsi
self.rsi_chart = lib.common_ta_momentum_view.display_rsi
self.sma = lib.common_ta_overlap_model.sma
self.stoch = lib.common_ta_momentum_model.stoch
self.stoch_chart = lib.common_ta_momentum_view.display_stoch
self.vwap = lib.common_ta_overlap_model.vwap
self.vwap_chart = lib.common_ta_overlap_view.view_vwap
self.wma = lib.common_ta_overlap_model.wma
self.zlma = lib.common_ta_overlap_model.zlma

View File

@@ -0,0 +1,336 @@
"""OpenBB Terminal SDK Helpers."""
import json
from logging import Logger, getLogger
from typing import Any, Callable, Dict, Optional
import dotenv
import openbb_terminal.config_terminal as cfg
from openbb_terminal.base_helpers import load_env_vars, strtobool
from openbb_terminal.core.config.paths import USER_ENV_FILE
from openbb_terminal.rich_config import console
from openbb_terminal.sdk_core.sdk_init import (
FORECASTING_TOOLKIT_ENABLED,
FORECASTING_TOOLKIT_WARNING,
OPTIMIZATION_TOOLKIT_ENABLED,
OPTIMIZATION_TOOLKIT_WARNING,
)
if not FORECASTING_TOOLKIT_ENABLED and not load_env_vars(
"OPENBB_DISABLE_FORECASTING_WARNING", strtobool, False
):
dotenv.set_key(str(USER_ENV_FILE), "OPENBB_DISABLE_FORECASTING_WARNING", "True")
console.print(FORECASTING_TOOLKIT_WARNING)
if not OPTIMIZATION_TOOLKIT_ENABLED and not load_env_vars(
"OPENBB_DISABLE_OPTIMIZATION_WARNING", strtobool, False
):
dotenv.set_key(str(USER_ENV_FILE), "OPENBB_DISABLE_OPTIMIZATION_WARNING", "True")
console.print(OPTIMIZATION_TOOLKIT_WARNING)
def clean_attr_desc(attr: Optional[Any] = None) -> Optional[str]:
"""Clean the attribute description."""
if attr.__doc__ is None:
return None
return (
attr.__doc__.splitlines()[1].lstrip()
if not attr.__doc__.splitlines()[0]
else attr.__doc__.splitlines()[0].lstrip()
if attr.__doc__
else ""
)
def class_repr(cls_dict: Dict[str, Any]) -> list:
"""Return the representation of the class."""
return [
f" {k}: {clean_attr_desc(v)}\n"
for k, v in cls_dict.items()
if v.__doc__ and not k.startswith("_")
]
def helptext(func: Callable) -> Callable:
"""Wrapper to preserve the help text of the function."""
def decorator(f: Callable) -> Callable:
for attr in [
"__doc__",
"__name__",
"__annotations__",
"__module__",
"__defaults__",
"__kwdefaults__",
"__dict__",
]:
setattr(f, attr, getattr(func, attr))
return f
return decorator
class Category:
"""The base class that all categories must inherit from."""
_location_path: str = ""
def __init__(self, *args, **kwargs):
"""Initialize the class"""
super().__init__(*args, **kwargs)
def __repr__(self):
"""Return the representation of the class."""
repr_docs = []
if submodules := class_repr(self.__class__.__dict__):
repr_docs += ["\nSubmodules:\n"] + submodules
if attributes := class_repr(self.__dict__):
repr_docs += ["\nAttributes:\n"] + attributes
return f"{self.__class__.__name__}(\n{''.join(repr_docs)}\n)"
def __getattribute__(self, name: str):
"""We override the __getattribute__ method and wrap all callable
attributes with a wrapper that logs the call and the result.
"""
if name.startswith("_"):
return super().__getattribute__(name)
attr = super().__getattribute__(name)
trail = f"{self.__class__._location_path}.{name}"
if callable(attr):
@helptext(attr)
def wrapper(*args, **kwargs):
method = attr
# We make a copy of the kwargs to avoid modifying the original
log_kwargs = kwargs.copy()
log_kwargs["chart"] = "chart" in name
operation_logger = OperationLogger(
trail=trail, method_chosen=method, args=args, kwargs=log_kwargs
)
operation_logger.log_before_call()
method_result = method(*args, **kwargs)
operation_logger.log_after_call(method_result=method_result)
return method_result
return wrapper
return attr
class OperationLogger:
last_method: Dict[Any, Any] = {}
def __init__(
self,
trail: str,
method_chosen: Callable,
args: Any,
kwargs: Any,
logger: Optional[Logger] = None,
) -> None:
self.__trail = trail
self.__method_chosen = method_chosen
self.__logger = logger or getLogger(self.__method_chosen.__module__)
self.__args = args
self.__kwargs = kwargs
def log_before_call(
self,
):
if self.__check_logging_conditions():
logger = self.__logger
self.__log_start(logger=logger, method_chosen=self.__method_chosen)
self.__log_method_info(
logger=logger,
trail=self.__trail,
method_chosen=self.__method_chosen,
args=self.__args,
kwargs=self.__kwargs,
)
@staticmethod
def __log_start(logger: Logger, method_chosen: Callable):
logger.info(
"START",
extra={"func_name_override": method_chosen.__name__},
)
def __log_method_info(
self,
logger: Logger,
trail: str,
method_chosen: Callable,
args: Any,
kwargs: Any,
):
merged_args = self.__merge_function_args(method_chosen, args, kwargs)
merged_args = self.__remove_key_and_log_state(
method_chosen.__module__, merged_args
)
logging_info: Dict[str, Any] = {}
logging_info["INPUT"] = {
key: str(value)[:100] for key, value in merged_args.items()
}
logging_info["VIRTUAL_PATH"] = trail
logging_info["CHART"] = kwargs.get("chart", False)
logger.info(
f"{json.dumps(logging_info)}",
extra={"func_name_override": method_chosen.__name__},
)
@staticmethod
def __merge_function_args(func: Callable, args: tuple, kwargs: dict) -> dict:
"""
Merge user input args and kwargs with signature defaults into a dictionary.
Parameters
----------
func : Callable
Function to get the args from
args : tuple
Positional args
kwargs : dict
Keyword args
Returns
----------
dict
Merged user args and signature defaults
"""
import inspect # pylint: disable=C0415
sig = inspect.signature(func)
sig_args = {
param.name: param.default
for param in sig.parameters.values()
if param.default is not inspect.Parameter.empty
}
# merge args with sig_args
sig_args.update(dict(zip(sig.parameters, args)))
# add kwargs elements to sig_args
sig_args.update(kwargs)
return sig_args
@staticmethod
def __remove_key_and_log_state(func_module: str, function_args: dict) -> dict:
"""
Remove API key from the function args and log state of keys.
Parameters
----------
func_module : str
Module of the function
function_args : dict
Function args
Returns
----------
dict
Function args with API key removed
"""
if func_module == "openbb_terminal.keys_model":
# pylint: disable=C0415
from openbb_terminal.core.log.generation.settings_logger import log_keys
# remove key if defined
function_args.pop("key", None)
log_keys()
return function_args
def log_after_call(
self,
method_result: Any,
):
if self.__check_logging_conditions():
logger = self.__logger
self.__log_exception_if_any(
logger=logger,
method_result=method_result,
method_chosen=self.__method_chosen,
)
self.__log_end(
logger=logger,
method_chosen=self.__method_chosen,
)
OperationLogger.last_method = {
f"{self.__method_chosen.__module__}.{self.__method_chosen.__name__}": {
"args": str(self.__args)[:100],
"kwargs": str(self.__kwargs)[:100],
}
}
@staticmethod
def __log_exception_if_any(
logger: Logger,
method_chosen: Callable,
method_result: Any,
):
if isinstance(method_result, Exception):
logger.exception(
f"Exception: {method_result}",
extra={"func_name_override": method_chosen.__name__},
)
@staticmethod
def __log_end(logger: Logger, method_chosen: Callable):
logger.info(
"END",
extra={"func_name_override": method_chosen.__name__},
)
def __check_logging_conditions(self) -> bool:
return not cfg.LOGGING_SUPPRESS and not self.__check_last_method()
def __check_last_method(self) -> bool:
current_method = {
f"{self.__method_chosen.__module__}.{self.__method_chosen.__name__}": {
"args": str(self.__args)[:100],
"kwargs": str(self.__kwargs)[:100],
}
}
return OperationLogger.last_method == current_method
def get_sdk_imports_text() -> str:
"""Return the text for the SDK imports."""
sdk_imports = """\"\"\"OpenBB Terminal SDK.\"\"\"
# flake8: noqa
# pylint: disable=unused-import,wrong-import-order
# pylint: disable=C0302,W0611,R0902,R0903,C0412,C0301,not-callable
import logging
import openbb_terminal.config_terminal as cfg
from openbb_terminal import helper_funcs as helper # noqa: F401
from openbb_terminal.base_helpers import load_dotenv_and_reload_configs
from openbb_terminal.config_terminal import theme
from openbb_terminal.cryptocurrency.due_diligence.pycoingecko_model import Coin
from openbb_terminal.dashboards.dashboards_controller import DashboardsController
from openbb_terminal.helper_classes import TerminalStyle # noqa: F401
from openbb_terminal.reports import widget_helpers as widgets # noqa: F401
from openbb_terminal.reports.reports_controller import ReportController
import openbb_terminal.sdk_core.sdk_init as lib
from openbb_terminal.sdk_core import (
controllers as ctrl,
models as model,
)
from openbb_terminal.session.user import User
if User.is_guest():
load_dotenv_and_reload_configs()
logger = logging.getLogger(__name__)
theme.applyMPLstyle()
\r\r\r
"""
return "\r".join(sdk_imports.splitlines())

View File

@@ -0,0 +1,506 @@
# flake8: noqa pylint: disable=R0402,C0412,unused-import
# noqa: F401
# Session
from openbb_terminal.session import sdk_session
# Alternative
import openbb_terminal.alternative.hackernews_model as alt_hackernews_model
import openbb_terminal.alternative.hackernews_view as alt_hackernews_view
import openbb_terminal.alternative.oss.github_model as alt_oss_github_model
import openbb_terminal.alternative.oss.github_view as alt_oss_github_view
import openbb_terminal.alternative.oss.runa_model as alt_oss_runa_model
import openbb_terminal.alternative.oss.runa_view as alt_oss_runa_view
import openbb_terminal.alternative.realestate.landRegistry_model as alt_realestate_landRegistry_model
# Crypto Helpers
import openbb_terminal.cryptocurrency.cryptocurrency_helpers as crypto_helpers
# ETF
import openbb_terminal.etf.discovery.wsj_model as etf_disc_wsj_model
import openbb_terminal.etf.discovery.wsj_view as etf_disc_wsj_view
import openbb_terminal.etf.screener.screener_model as etf_scr_model
import openbb_terminal.etf.screener.screener_view as etf_scr_view
# Forex Helpers
import openbb_terminal.forex.forex_helper as forex_helper
import openbb_terminal.forex.oanda.oanda_model as forex_oanda_model
import openbb_terminal.forex.oanda.oanda_view as forex_oanda_view
# Keys
import openbb_terminal.keys_model as keys_model
import openbb_terminal.stocks.options.hedge.hedge_model as stocks_options_hedge_model
import openbb_terminal.stocks.options.hedge.hedge_view as stocks_options_hedge_view
import openbb_terminal.stocks.quantitative_analysis.beta_model as stocks_qa_beta_model
import openbb_terminal.stocks.quantitative_analysis.beta_view as stocks_qa_beta_view
# Stocks - Quantitative Analysis
import openbb_terminal.stocks.quantitative_analysis.factors_model as stocks_qa_factors_model
import openbb_terminal.stocks.quantitative_analysis.factors_view as stocks_qa_factors_view
from openbb_terminal.alternative.covid import (
covid_model as alt_covid_model,
covid_view as alt_covid_view,
)
# Common
from openbb_terminal.common import (
common_model,
feedparser_model as common_feedparser_model,
feedparser_view as common_feedparser_view,
newsapi_model as common_newsapi_model,
newsapi_view as common_newsapi_view,
)
# Common Behavioural Analysis
from openbb_terminal.common.behavioural_analysis import (
finbrain_model as stocks_ba_finbrain_model,
finbrain_view as stocks_ba_finbrain_view,
google_model as stocks_ba_google_model,
google_view as stocks_ba_google_view,
reddit_model as stocks_ba_reddit_model,
reddit_view as stocks_ba_reddit_view,
stocktwits_model as stocks_ba_stocktwits_model,
stocktwits_view as stocks_ba_stocktwits_view,
twitter_model as stocks_ba_twitter_model,
twitter_view as stocks_ba_twitter_view,
)
# Common Quantitative Analysis
from openbb_terminal.common.quantitative_analysis import (
qa_model as common_qa_model,
qa_view as common_qa_view,
rolling_model as common_qa_rolling_model,
rolling_view as common_qa_rolling_view,
)
# Common Technical Analysis
from openbb_terminal.common.technical_analysis import (
custom_indicators_model as common_ta_custom_indicators_model,
custom_indicators_view as common_ta_custom_indicators_view,
momentum_model as common_ta_momentum_model,
momentum_view as common_ta_momentum_view,
overlap_model as common_ta_overlap_model,
overlap_view as common_ta_overlap_view,
trend_indicators_model as common_ta_trend_indicators_model,
trend_indicators_view as common_ta_trend_indicators_view,
volatility_model as common_ta_volatility_model,
volatility_view as common_ta_volatility_view,
volume_model as common_ta_volume_model,
volume_view as common_ta_volume_view,
)
from openbb_terminal.cryptocurrency import (
crypto_models,
pyth_model as crypto_pyth_model,
)
# Cryptocurrency Defi
from openbb_terminal.cryptocurrency.defi import (
coindix_model as crypto_defi_coindix_model,
coindix_view as crypto_defi_coindix_view,
cryptosaurio_model as crypto_defi_cryptosaurio_model,
cryptosaurio_view as crypto_defi_cryptosaurio_view,
graph_model as crypto_defi_graph_model,
graph_view as crypto_defi_graph_view,
llama_model as crypto_defi_llama_model,
llama_view as crypto_defi_llama_view,
smartstake_model as crypto_defi_smartstake_model,
smartstake_view as crypto_defi_smartstake_view,
substack_model as crypto_defi_substack_model,
substack_view as crypto_defi_substack_view,
terraengineer_model as crypto_defi_terraengineer_model,
terraengineer_view as crypto_defi_terraengineer_view,
terramoney_fcd_model as crypto_defi_terramoney_fcd_model,
terramoney_fcd_view as crypto_defi_terramoney_fcd_view,
)
# Cryptocurrency Discovery
from openbb_terminal.cryptocurrency.discovery import (
coinmarketcap_model as crypto_disc_coinmarketcap_model,
coinmarketcap_view as crypto_disc_coinmarketcap_view,
coinpaprika_model as crypto_disc_coinpaprika_model,
coinpaprika_view as crypto_disc_coinpaprika_view,
dappradar_model as crypto_disc_dappradar_model,
dappradar_view as crypto_disc_dappradar_view,
pycoingecko_model as crypto_disc_pycoingecko_model,
pycoingecko_view as crypto_disc_pycoingecko_view,
sdk_helpers as crypto_disc_sdk_helpers,
)
# Cryptocurrency Due Diligence
from openbb_terminal.cryptocurrency.due_diligence import (
binance_model as crypto_dd_binance_model,
binance_view as crypto_dd_binance_view,
ccxt_model as crypto_dd_ccxt_model,
ccxt_view as crypto_dd_ccxt_view,
coinbase_model as crypto_dd_coinbase_model,
coinbase_view as crypto_dd_coinbase_view,
coinglass_model as crypto_dd_coinglass_model,
coinglass_view as crypto_dd_coinglass_view,
coinpaprika_model as crypto_dd_coinpaprika_model,
coinpaprika_view as crypto_dd_coinpaprika_view,
cryptopanic_view as crypto_dd_cryptopanic_view,
finbrain_crypto_view as crypto_dd_finbrain_view,
glassnode_model as crypto_dd_glassnode_model,
glassnode_view as crypto_dd_glassnode_view,
messari_model as crypto_dd_messari_model,
messari_view as crypto_dd_messari_view,
pycoingecko_model as crypto_dd_pycoingecko_model,
pycoingecko_view as crypto_dd_pycoingecko_view,
santiment_model as crypto_dd_santiment_model,
santiment_view as crypto_dd_santiment_view,
sdk_helper as crypto_dd_sdk_helper,
)
# Cryptocurrency NFT
from openbb_terminal.cryptocurrency.nft import (
nftpricefloor_model as crypto_nft_pricefloor_model,
nftpricefloor_view as crypto_nft_pricefloor_view,
opensea_model as crypto_nft_opensea_model,
opensea_view as crypto_nft_opensea_view,
)
# Cryptocurrency Onchain
from openbb_terminal.cryptocurrency.onchain import (
bitquery_model as crypto_onchain_bitquery_model,
bitquery_view as crypto_onchain_bitquery_view,
blockchain_model as crypto_onchain_blockchain_model,
blockchain_view as crypto_onchain_blockchain_view,
ethgasstation_model as crypto_onchain_ethgasstation_model,
ethgasstation_view as crypto_onchain_ethgasstation_view,
ethplorer_model as crypto_onchain_ethplorer_model,
ethplorer_view as crypto_onchain_ethplorer_view,
whale_alert_model as crypto_onchain_whale_alert_model,
whale_alert_view as crypto_onchain_whale_alert_view,
)
# Cryptocurrency Overview
from openbb_terminal.cryptocurrency.overview import (
blockchaincenter_model as crypto_ov_blockchaincenter_model,
blockchaincenter_view as crypto_ov_blockchaincenter_view,
coinbase_model as crypto_ov_coinbase_model,
coinbase_view as crypto_ov_coinbase_view,
coinpaprika_model as crypto_ov_coinpaprika_model,
coinpaprika_view as crypto_ov_coinpaprika_view,
cryptopanic_model as crypto_ov_cryptopanic_model,
cryptopanic_view as crypto_ov_cryptopanic_view,
glassnode_model as crypto_ov_glassnode_model,
glassnode_view as crypto_ov_glassnode_view,
loanscan_model as crypto_ov_loanscan_model,
loanscan_view as crypto_ov_loanscan_view,
pycoingecko_model as crypto_ov_pycoingecko_model,
pycoingecko_view as crypto_ov_pycoingecko_view,
rekt_model as crypto_ov_rekt_model,
rekt_view as crypto_ov_rekt_view,
sdk_helpers as crypto_ov_sdk_helpers,
withdrawalfees_model as crypto_ov_withdrawalfees_model,
withdrawalfees_view as crypto_ov_withdrawalfees_view,
)
# Cryptocurrency Tools
from openbb_terminal.cryptocurrency.tools import (
tools_model as crypto_tools_model,
tools_view as crypto_tools_view,
)
# Econometrics
from openbb_terminal.econometrics import (
econometrics_model,
econometrics_view,
regression_model as econometrics_regression_model,
regression_view as econometrics_regression_view,
)
# Economy
from openbb_terminal.economy import (
alphavantage_model as economy_alphavantage_model,
alphavantage_view as economy_alphavantage_view,
econdb_model as economy_econdb_model,
econdb_view as economy_econdb_view,
finviz_model as economy_finviz_model,
finviz_view as economy_finviz_view,
fred_model as economy_fred_model,
fred_view as economy_fred_view,
nasdaq_model as economy_nasdaq_model,
nasdaq_view as economy_nasdaq_view,
sdk_helpers as economy_sdk_helpers,
wsj_model as economy_wsj_model,
yfinance_model as economy_yfinance_model,
yfinance_view as economy_yfinance_view,
)
# ETF's
from openbb_terminal.etf import (
financedatabase_model as etf_financedatabase_model,
financedatabase_view as etf_financedatabase_view,
stockanalysis_model as etf_stockanalysis_model,
stockanalysis_view as etf_stockanalysis_view,
fmp_model as etf_fmp_model,
fmp_view as etf_fmp_view,
)
# Forex
from openbb_terminal.forex import (
av_model as forex_av_model,
av_view as forex_av_view,
fxempire_model as forex_fxempire_model,
fxempire_view as forex_fxempire_view,
sdk_helpers as forex_sdk_helpers,
)
# Futures
from openbb_terminal.futures import (
yfinance_model as futures_yfinance_model,
yfinance_view as futures_yfinance_view,
)
# Stocks Helpers
from openbb_terminal.stocks import (
cboe_model as stocks_cboe_model,
cboe_view as stocks_cboe_view,
stocks_helper,
stocks_model,
stocks_view,
)
# Stocks -Behavioral Analysis
from openbb_terminal.stocks.behavioural_analysis import (
finnhub_model as stocks_ba_finnhub_model,
finnhub_view as stocks_ba_finnhub_view,
)
# Stocks - Comparison Analysis
from openbb_terminal.stocks.comparison_analysis import (
finbrain_model as stocks_ca_finbrain_model,
finbrain_view as stocks_ca_finbrain_view,
finnhub_model as stocks_ca_finnhub_model,
finviz_compare_model as stocks_ca_finviz_compare_model,
marketwatch_model as stocks_ca_marketwatch_model,
marketwatch_view as stocks_ca_marketwatch_view,
polygon_model as stocks_ca_polygon_model,
sdk_helpers as stocks_ca_sdk_helpers,
yahoo_finance_model as stocks_ca_yahoo_finance_model,
yahoo_finance_view as stocks_ca_yahoo_finance_view,
)
# Stocks - Dark Pool Shorts
from openbb_terminal.stocks.dark_pool_shorts import (
finra_model as stocks_dps_finra_model,
finra_view as stocks_dps_finra_view,
ibkr_model as stocks_dps_ibkr_model,
quandl_model as stocks_dps_quandl_model,
quandl_view as stocks_dps_quandl_view,
sec_model as stocks_dps_sec_model,
sec_view as stocks_dps_sec_view,
shortinterest_model as stocks_dps_shortinterest_model,
stockgrid_model as stocks_dps_stockgrid_model,
stockgrid_view as stocks_dps_stockgrid_view,
stocksera_model as stocks_dps_stocksera_model,
stocksera_view as stocks_dps_stocksera_view,
yahoofinance_model as stocks_dps_yahoofinance_model,
)
# Stocks - Fundamental Discovery
from openbb_terminal.stocks.discovery import (
ark_model as stocks_disc_ark_model,
finnhub_model as stocks_disc_finnhub_model,
fmp_view as stocks_disc_fmp_view,
nasdaq_model as stocks_disc_nasdaq_model,
seeking_alpha_model as stocks_disc_seeking_alpha_model,
shortinterest_model as stocks_disc_shortinterest_model,
yahoofinance_model as stocks_disc_yahoofinance_model,
)
# Stocks - Fundamental Analysis
from openbb_terminal.stocks.fundamental_analysis import (
av_model as stocks_fa_av_model,
av_view as stocks_fa_av_view,
business_insider_model as stocks_fa_business_insider_model,
business_insider_view as stocks_fa_business_insider_view,
csimarket_model as stocks_fa_csimarket_model,
csimarket_view as stocks_fa_csimarket_view,
dcf_model as stocks_fa_dcf_model,
eclect_us_model as stocks_fa_eclect_us_model,
finnhub_model as stocks_fa_finnhub_model,
finnhub_view as stocks_fa_finnhub_view,
finviz_model as stocks_fa_finviz_model,
fmp_model as stocks_fa_fmp_model,
fmp_view as stocks_fa_fmp_view,
marketwatch_model as stocks_fa_marketwatch_model,
marketwatch_view as stocks_fa_marketwatch_view,
polygon_model as stocks_fa_polygon_model,
polygon_view as stocks_fa_polygon_view,
sdk_helpers as stocks_fa_sdk_helpers,
seeking_alpha_model as stocks_fa_seeking_alpha_model,
seeking_alpha_view as stocks_fa_seeking_alpha_view,
yahoo_finance_model as stocks_fa_yahoo_finance_model,
yahoo_finance_view as stocks_fa_yahoo_finance_view,
)
# Government
from openbb_terminal.stocks.government import (
quiverquant_model as stocks_gov_quiverquant_model,
quiverquant_view as stocks_gov_quiverquant_view,
)
# Stocks - Insider Trading
from openbb_terminal.stocks.insider import (
businessinsider_model as stocks_insider_businessinsider_model,
businessinsider_view as stocks_insider_businessinsider_view,
finviz_model as stocks_insider_finviz_model,
finviz_view as stocks_insider_finviz_view,
openinsider_model as stocks_insider_openinsider_model,
openinsider_view as stocks_insider_openinsider_view,
sdk_helper as stocks_insider_sdk_helper,
)
# Stocks - Options
from openbb_terminal.stocks.options import (
alphaquery_model as stocks_options_alphaquery_model,
alphaquery_view as stocks_options_alphaquery_view,
barchart_model as stocks_options_barchart_model,
barchart_view as stocks_options_barchart_view,
chartexchange_model as stocks_options_chartexchange_model,
chartexchange_view as stocks_options_chartexchange_view,
fdscanner_model as stocks_options_fdscanner_model,
fdscanner_view as stocks_options_fdscanner_view,
intrinio_model as stocks_options_intrinio_model,
intrinio_view as stocks_options_intrinio_view,
nasdaq_model as stocks_options_nasdaq_model,
options_sdk_helper as stocks_options_sdk_helper,
options_view as stocks_options_view,
tradier_model as stocks_options_tradier_model,
tradier_view as stocks_options_tradier_view,
yfinance_model as stocks_options_yfinance_model,
yfinance_view as stocks_options_yfinance_view,
)
from openbb_terminal.stocks.options.screen import (
syncretism_model as stocks_options_screen_syncretism_model,
syncretism_view as stocks_options_screen_syncretism_view,
)
# Stocks - Screener
from openbb_terminal.stocks.screener import (
finviz_model as stocks_screener_finviz_model,
finviz_view as stocks_screener_finviz_view,
yahoofinance_model as stocks_screener_yahoofinance_model,
yahoofinance_view as stocks_screener_yahoofinance_view,
ark_model as stocks_screener_ark_model,
ark_view as stocks_screener_ark_view,
)
# Stocks - Sector Industry Analysis
from openbb_terminal.stocks.sector_industry_analysis import (
financedatabase_model as stocks_sia_financedatabase_model,
financedatabase_view as stocks_sia_financedatabase_view,
stockanalysis_model as stocks_sia_stockanalysis_model,
stockanalysis_view as stocks_sia_stockanalysis_view,
)
# Stocks - Technical Analysis
from openbb_terminal.stocks.technical_analysis import (
finbrain_model as stocks_ta_finbrain_model,
finbrain_view as stocks_ta_finbrain_view,
finviz_model as stocks_ta_finviz_model,
finviz_view as stocks_ta_finviz_view,
rsp_model as stocks_ta_rsp_model,
rsp_view as stocks_ta_rsp_view,
tradingview_model as stocks_ta_tradingview_model,
tradingview_view as stocks_ta_tradingview_view,
)
# Stocks - Trading Hours
from openbb_terminal.stocks.tradinghours import (
bursa_model as stocks_th_bursa_model,
bursa_view as stocks_th_bursa_view,
)
# Forecast Extras
try:
import darts # pyright: reportMissingImports=false
# If you just import darts this will pass during pip install, this creates
# Failures later on, also importing utils ensures that darts is installed correctly
from darts import utils
FORECASTING_TOOLKIT_ENABLED = True
from openbb_terminal.forecast import (
anom_model as forecast_anom_model,
anom_view as forecast_anom_view,
autoarima_model as forecast_autoarima_model,
autoarima_view as forecast_autoarima_view,
autoces_model as forecast_autoces_model,
autoces_view as forecast_autoces_view,
autoets_model as forecast_autoets_model,
autoets_view as forecast_autoets_view,
autoselect_model as forecast_autoselect_model,
autoselect_view as forecast_autoselect_view,
brnn_model as forecast_brnn_model,
brnn_view as forecast_brnn_view,
expo_model as forecast_expo_model,
expo_view as forecast_expo_view,
forecast_model,
forecast_view,
linregr_model as forecast_linregr_model,
linregr_view as forecast_linregr_view,
mstl_model as forecast_mstl_model,
mstl_view as forecast_mstl_view,
nbeats_model as forecast_nbeats_model,
nbeats_view as forecast_nbeats_view,
nhits_model as forecast_nhits_model,
nhits_view as forecast_nhits_view,
regr_model as forecast_regr_model,
regr_view as forecast_regr_view,
rnn_model as forecast_rnn_model,
rnn_view as forecast_rnn_view,
rwd_model as forecast_rwd_model,
rwd_view as forecast_rwd_view,
seasonalnaive_model as forecast_seasonalnaive_model,
seasonalnaive_view as forecast_seasonalnaive_view,
tcn_model as forecast_tcn_model,
tcn_view as forecast_tcn_view,
tft_model as forecast_tft_model,
tft_view as forecast_tft_view,
theta_model as forecast_theta_model,
theta_view as forecast_theta_view,
trans_model as forecast_trans_model,
trans_view as forecast_trans_view,
)
except ImportError:
FORECASTING_TOOLKIT_ENABLED = False
# Portfolio
from openbb_terminal.portfolio import portfolio_model, portfolio_view
try:
# pylint: disable=W0611 # noqa: F401 # pyright: reportMissingImports=false
from openbb_terminal.portfolio.portfolio_optimization import (
excel_model as portfolio_optimization_excel_model,
optimizer_model as portfolio_optimization_optimizer_model,
optimizer_view as portfolio_optimization_optimizer_view,
po_model as portfolio_optimization_po_model,
po_view as portfolio_optimization_po_view,
)
OPTIMIZATION_TOOLKIT_ENABLED = True
except ModuleNotFoundError:
OPTIMIZATION_TOOLKIT_ENABLED = False
FORECASTING_TOOLKIT_WARNING = (
"[yellow]"
"Forecasting Toolkit is disabled. "
"To use the Forecasting features please install the toolkit following the "
"instructions here: https://docs.openbb.co/sdk/quickstart/installation/"
"\n"
"[/yellow]"
)
OPTIMIZATION_TOOLKIT_WARNING = (
"[yellow]"
"Portfolio Optimization Toolkit is disabled. "
"To use the Optimization features please install the toolkit following the "
"instructions here: https://docs.openbb.co/sdk/quickstart/installation/"
"\n"
"[/yellow]"
)

549
openbb_terminal/sdk_core/trail_map.csv vendored Normal file
View File

@@ -0,0 +1,549 @@
trail,model,view
alt.covid.global_cases,alt_covid_model.get_global_cases,
alt.covid.global_deaths,alt_covid_model.get_global_deaths,
alt.covid.ov,alt_covid_model.get_covid_ov,alt_covid_view.display_covid_ov
alt.covid.slopes,alt_covid_model.get_case_slopes,alt_covid_view.display_case_slopes
alt.covid.stat,alt_covid_model.get_covid_stat,alt_covid_view.display_covid_stat
alt.hn,alt_hackernews_model.get_stories,alt_hackernews_view.display_stories
alt.oss._make_request,alt_oss_runa_model._make_request,
alt.oss._retry_session,alt_oss_runa_model._retry_session,
alt.oss.github_data,alt_oss_github_model.get_github_data,
alt.oss.history,alt_oss_github_model.get_stars_history,alt_oss_github_view.display_star_history
alt.oss.ross,alt_oss_runa_model.get_startups,alt_oss_runa_view.display_rossindex
alt.oss.search,alt_oss_github_model.search_repos,
alt.oss.summary,alt_oss_github_model.get_repo_summary,alt_oss_github_view.display_repo_summary
alt.oss.top,alt_oss_github_model.get_top_repos,alt_oss_github_view.display_top_repos
alt.realestate.get_estate_sales,alt_realestate_landRegistry_model.get_estate_sales,
alt.realestate.get_region_stats,alt_realestate_landRegistry_model.get_region_stats,
alt.realestate.get_towns_sold_prices,alt_realestate_landRegistry_model.get_towns_sold_prices,
crypto.candle,crypto_helpers.plot_candles,
crypto.chart,crypto_helpers.plot_chart,
crypto.dd.active,crypto_dd_glassnode_model.get_active_addresses,crypto_dd_glassnode_view.display_active_addresses
crypto.dd.all_binance_trading_pairs,crypto_dd_binance_model.get_all_binance_trading_pairs,
crypto.dd.ath,crypto_dd_sdk_helper.ath,
crypto.dd.atl,crypto_dd_sdk_helper.atl,
crypto.dd.balance,crypto_dd_binance_view.get_balance,crypto_dd_binance_view.display_balance
crypto.dd.basic,crypto_dd_coinpaprika_model.basic_coin_info,crypto_dd_coinpaprika_view.display_basic
crypto.dd.binance_available_quotes_for_each_coin,crypto_dd_binance_model.get_binance_available_quotes_for_each_coin,
crypto.dd.candle,crypto_dd_coinbase_model.get_candles,
crypto.dd.change,crypto_dd_glassnode_model.get_exchange_net_position_change,crypto_dd_glassnode_view.display_exchange_net_position_change
crypto.dd.check_valid_binance_str,crypto_dd_binance_model.check_valid_binance_str,
crypto.dd.close,crypto_dd_glassnode_model.get_close_price,
crypto.dd.coin,crypto_dd_coinpaprika_model.get_coin,
crypto.dd.coin_market_chart,crypto_dd_pycoingecko_model.get_coin_market_chart,
crypto.dd.dev,crypto_dd_sdk_helper.dev_stats,
crypto.dd.eb,crypto_dd_glassnode_model.get_exchange_balances,crypto_dd_glassnode_view.display_exchange_balances
crypto.dd.events,crypto_dd_coinpaprika_model.get_coin_events_by_id,crypto_dd_coinpaprika_view.display_events
crypto.dd.ex,crypto_dd_coinpaprika_model.get_coin_exchanges_by_id,crypto_dd_coinpaprika_view.display_exchanges
crypto.dd.exchanges,crypto_dd_ccxt_model.get_exchanges,
crypto.dd.fr,crypto_dd_messari_model.get_fundraising,crypto_dd_messari_view.display_fundraising
crypto.dd.get_mt,crypto_dd_messari_model.get_available_timeseries,crypto_dd_messari_view.display_messari_timeseries_list
crypto.dd.gh,crypto_dd_santiment_model.get_github_activity,crypto_dd_santiment_view.display_github_activity
crypto.dd.gov,crypto_dd_messari_model.get_governance,crypto_dd_messari_view.display_governance
crypto.dd.headlines,stocks_ba_finbrain_model.get_sentiment,crypto_dd_finbrain_view.display_crypto_sentiment_analysis
crypto.dd.inv,crypto_dd_messari_model.get_investors,crypto_dd_messari_view.display_investors
crypto.dd.links,crypto_dd_messari_model.get_links,crypto_dd_messari_view.display_links
crypto.dd.mcapdom,crypto_dd_messari_model.get_marketcap_dominance,crypto_dd_messari_view.display_marketcap_dominance
crypto.dd.mkt,crypto_dd_coinpaprika_model.get_coin_markets_by_id,crypto_dd_coinpaprika_view.display_markets
crypto.dd.mt,crypto_dd_messari_model.get_messari_timeseries,crypto_dd_messari_view.display_messari_timeseries
crypto.dd.news,crypto_ov_cryptopanic_model.get_news,crypto_dd_cryptopanic_view.display_news
crypto.dd.nonzero,crypto_dd_glassnode_model.get_non_zero_addresses,crypto_dd_glassnode_view.display_non_zero_addresses
crypto.dd.ob,crypto_dd_ccxt_model.get_orderbook,crypto_dd_ccxt_view.display_order_book
crypto.dd.oi,crypto_dd_coinglass_model.get_open_interest_per_exchange,crypto_dd_coinglass_view.display_open_interest
crypto.dd.pi,crypto_dd_messari_model.get_project_product_info,crypto_dd_messari_view.display_project_info
crypto.dd.pr,crypto_dd_pycoingecko_model.get_coin_potential_returns,crypto_dd_pycoingecko_view.display_coin_potential_returns
crypto.dd.ps,crypto_dd_coinpaprika_model.get_tickers_info_for_coin,crypto_dd_coinpaprika_view.display_price_supply
crypto.dd.rm,crypto_dd_messari_model.get_roadmap,crypto_dd_messari_view.display_roadmap
crypto.dd.score,crypto_dd_sdk_helper.score,
crypto.dd.show_available_pairs_for_given_symbol,crypto_dd_coinbase_model.show_available_pairs_for_given_symbol,
crypto.dd.social,crypto_dd_sdk_helper.social,
crypto.dd.stats,crypto_dd_coinbase_model.get_product_stats,crypto_dd_coinbase_view.display_stats
crypto.dd.team,crypto_dd_messari_model.get_team,crypto_dd_messari_view.display_team
crypto.dd.tk,crypto_dd_messari_model.get_tokenomics,crypto_dd_messari_view.display_tokenomics
crypto.dd.tokenomics,crypto_dd_pycoingecko_model.get_coin_tokenomics,
crypto.dd.trades,crypto_dd_ccxt_model.get_trades,crypto_dd_ccxt_view.display_trades
crypto.dd.trading_pair_info,crypto_dd_coinbase_model.get_trading_pair_info,
crypto.dd.trading_pairs,crypto_dd_binance_model._get_trading_pairs,
crypto.dd.twitter,crypto_dd_coinpaprika_model.get_coin_twitter_timeline,crypto_dd_coinpaprika_view.display_twitter
crypto.defi.anchor_data,crypto_defi_cryptosaurio_model.get_anchor_data,crypto_defi_cryptosaurio_view.display_anchor_data
crypto.defi.aterra,crypto_defi_terraengineer_model.get_history_asset_from_terra_address,crypto_defi_terraengineer_view.display_terra_asset_history
crypto.defi.ayr,crypto_defi_terraengineer_model.get_anchor_yield_reserve,crypto_defi_terraengineer_view.display_anchor_yield_reserve
crypto.defi.dtvl,crypto_defi_llama_model.get_defi_protocol,crypto_defi_llama_view.display_historical_tvl
crypto.defi.gacc,crypto_defi_terramoney_fcd_model.get_account_growth,crypto_defi_terramoney_fcd_view.display_account_growth
crypto.defi.gdapps,crypto_defi_llama_model.get_grouped_defi_protocols,crypto_defi_llama_view.display_grouped_defi_protocols
crypto.defi.gov_proposals,crypto_defi_terramoney_fcd_model.get_proposals,crypto_defi_terramoney_fcd_view.display_gov_proposals
crypto.defi.ldapps,crypto_defi_llama_model.get_defi_protocols,crypto_defi_llama_view.display_defi_protocols
crypto.defi.luna_supply,crypto_defi_smartstake_model.get_luna_supply_stats,crypto_defi_smartstake_view.display_luna_circ_supply_change
crypto.defi.newsletters,crypto_defi_substack_model.get_newsletters,crypto_defi_substack_view.display_newsletters
crypto.defi.pairs,crypto_defi_graph_model.get_uniswap_pool_recently_added,crypto_defi_graph_view.display_recently_added
crypto.defi.pools,crypto_defi_graph_model.get_uni_pools_by_volume,crypto_defi_graph_view.display_uni_pools
crypto.defi.sinfo,crypto_defi_terramoney_fcd_model.get_staking_account_info,crypto_defi_terramoney_fcd_view.display_account_staking_info
crypto.defi.sratio,crypto_defi_terramoney_fcd_model.get_staking_ratio_history,crypto_defi_terramoney_fcd_view.display_staking_ratio_history
crypto.defi.sreturn,crypto_defi_terramoney_fcd_model.get_staking_returns_history,crypto_defi_terramoney_fcd_view.display_staking_returns_history
crypto.defi.stats,crypto_defi_graph_model.get_uniswap_stats,crypto_defi_graph_view.display_uni_stats
crypto.defi.stvl,crypto_defi_llama_model.get_defi_tvl,crypto_defi_llama_view.display_defi_tvl
crypto.defi.swaps,crypto_defi_graph_model.get_last_uni_swaps,crypto_defi_graph_view.display_last_uni_swaps
crypto.defi.tokens,crypto_defi_graph_model.get_uni_tokens,crypto_defi_graph_view.display_uni_tokens
crypto.defi.validators,crypto_defi_terramoney_fcd_model.get_validators,crypto_defi_terramoney_fcd_view.display_validators
crypto.defi.vaults,crypto_defi_coindix_model.get_defi_vaults,crypto_defi_coindix_view.display_defi_vaults
crypto.disc.categories_keys,crypto_disc_pycoingecko_model.get_categories_keys,
crypto.disc.coin_list,crypto_disc_pycoingecko_model.get_coin_list,
crypto.disc.coins,crypto_disc_pycoingecko_model.get_coins,crypto_disc_pycoingecko_view.display_coins
crypto.disc.coins_for_given_exchange,crypto_disc_pycoingecko_model.get_coins_for_given_exchange,
crypto.disc.cpsearch,crypto_disc_coinpaprika_model.get_search_results,crypto_disc_coinpaprika_view.display_search_results
crypto.disc.gainers,crypto_disc_pycoingecko_model.get_gainers,crypto_disc_pycoingecko_view.display_gainers
crypto.disc.losers,crypto_disc_pycoingecko_model.get_losers,crypto_disc_pycoingecko_view.display_losers
crypto.disc.top_coins,crypto_disc_sdk_helpers.top_coins,
crypto.disc.top_dapps,crypto_disc_dappradar_model.get_top_dapps,crypto_disc_dappradar_view.display_top_dapps
crypto.disc.top_dexes,crypto_disc_dappradar_model.get_top_dexes,crypto_disc_dappradar_view.display_top_dexes
crypto.disc.top_games,crypto_disc_dappradar_model.get_top_games,crypto_disc_dappradar_view.display_top_games
crypto.disc.top_nfts,crypto_disc_dappradar_model.get_top_nfts,crypto_disc_dappradar_view.display_top_nfts
crypto.disc.trending,crypto_disc_pycoingecko_model.get_trending_coins,crypto_disc_pycoingecko_view.display_trending
crypto.find,crypto_models.find,
crypto.load,crypto_helpers.load,
crypto.nft.collections,crypto_nft_pricefloor_model.get_collections,crypto_nft_pricefloor_view.display_collections
crypto.nft.fp,crypto_nft_pricefloor_model.get_floor_price,crypto_nft_pricefloor_view.display_floor_price
crypto.nft.stats,crypto_nft_opensea_model.get_collection_stats,crypto_nft_opensea_view.display_collection_stats
crypto.onchain.baas,crypto_onchain_bitquery_model.get_spread_for_crypto_pair,crypto_onchain_bitquery_view.display_spread_for_crypto_pair
crypto.onchain.balance,crypto_onchain_ethplorer_model.get_address_info,crypto_onchain_ethplorer_view.display_address_info
crypto.onchain.btc_supply,crypto_onchain_blockchain_model.get_btc_circulating_supply,crypto_onchain_blockchain_view.display_btc_circulating_supply
crypto.onchain.btc_transac,crypto_onchain_blockchain_model.get_btc_confirmed_transactions,crypto_onchain_blockchain_view.display_btc_confirmed_transactions
crypto.onchain.btcsingleblock,crypto_onchain_blockchain_model.get_btc_single_block,crypto_onchain_blockchain_view.display_btc_single_block
crypto.onchain.dex_trades_monthly,crypto_onchain_bitquery_model.get_dex_trades_monthly,
crypto.onchain.dvcp,crypto_onchain_bitquery_model.get_daily_dex_volume_for_given_pair,crypto_onchain_bitquery_view.display_daily_volume_for_given_pair
crypto.onchain.erc20_tokens,crypto_onchain_bitquery_model.get_erc20_tokens,
crypto.onchain.gwei,crypto_onchain_ethgasstation_model.get_gwei_fees,crypto_onchain_ethgasstation_view.display_gwei_fees
crypto.onchain.hist,crypto_onchain_ethplorer_model.get_address_history,crypto_onchain_ethplorer_view.display_address_history
crypto.onchain.holders,crypto_onchain_ethplorer_model.get_top_token_holders,crypto_onchain_ethplorer_view.display_top_token_holders
crypto.onchain.hr,crypto_dd_glassnode_model.get_hashrate,crypto_dd_glassnode_view.display_hashrate
crypto.onchain.info,crypto_onchain_ethplorer_model.get_token_info,crypto_onchain_ethplorer_view.display_token_info
crypto.onchain.lt,crypto_onchain_bitquery_model.get_dex_trades_by_exchange,crypto_onchain_bitquery_view.display_dex_trades
crypto.onchain.prices,crypto_onchain_ethplorer_model.get_token_historical_price,crypto_onchain_ethplorer_view.display_token_historical_prices
crypto.onchain.query_graph,crypto_onchain_bitquery_model.query_graph,
crypto.onchain.th,crypto_onchain_ethplorer_model.get_token_history,crypto_onchain_ethplorer_view.display_token_history
crypto.onchain.token_decimals,crypto_onchain_ethplorer_model.get_token_decimals,
crypto.onchain.top,crypto_onchain_ethplorer_model.get_top_tokens,crypto_onchain_ethplorer_view.display_top_tokens
crypto.onchain.ttcp,crypto_onchain_bitquery_model.get_most_traded_pairs,crypto_onchain_bitquery_view.display_most_traded_pairs
crypto.onchain.tv,crypto_onchain_bitquery_model.get_token_volume_on_dexes,crypto_onchain_bitquery_view.display_dex_volume_for_token
crypto.onchain.tx,crypto_onchain_ethplorer_model.get_tx_info,crypto_onchain_ethplorer_view.display_tx_info
crypto.onchain.ueat,crypto_onchain_bitquery_model.get_ethereum_unique_senders,crypto_onchain_bitquery_view.display_ethereum_unique_senders
crypto.onchain.whales,crypto_onchain_whale_alert_model.get_whales_transactions,crypto_onchain_whale_alert_view.display_whales_transactions
crypto.ov.altindex,crypto_ov_blockchaincenter_model.get_altcoin_index,crypto_ov_blockchaincenter_view.display_altcoin_index
crypto.ov.btcrb,crypto_ov_glassnode_model.get_btc_rainbow,crypto_ov_glassnode_view.display_btc_rainbow
crypto.ov.categories,crypto_ov_pycoingecko_model.get_top_crypto_categories,crypto_ov_pycoingecko_view.display_categories
crypto.ov.cbpairs,crypto_ov_coinbase_model.get_trading_pairs,crypto_ov_coinbase_view.display_trading_pairs
crypto.ov.coin_list,crypto_dd_coinpaprika_model.get_coin_list,
crypto.ov.contracts,crypto_ov_coinpaprika_model.get_contract_platform,crypto_ov_coinpaprika_view.display_contracts
crypto.ov.cr,crypto_ov_loanscan_model.get_rates,crypto_ov_loanscan_view.display_crypto_rates
crypto.ov.crypto_hack,crypto_ov_rekt_model.get_crypto_hack,
crypto.ov.crypto_hack_slugs,crypto_ov_rekt_model.get_crypto_hack_slugs,
crypto.ov.crypto_hacks,crypto_ov_rekt_model.get_crypto_hacks,crypto_ov_rekt_view.display_crypto_hacks
crypto.ov.defi,crypto_ov_pycoingecko_model.get_global_defi_info,crypto_ov_pycoingecko_view.display_global_defi_info
crypto.ov.derivatives,crypto_ov_pycoingecko_model.get_derivatives,crypto_ov_pycoingecko_view.display_derivatives
crypto.ov.ewf,crypto_ov_withdrawalfees_model.get_overall_exchange_withdrawal_fees,crypto_ov_withdrawalfees_view.display_overall_exchange_withdrawal_fees
crypto.ov.exchanges,crypto_ov_sdk_helpers.exchanges,
crypto.ov.exmarkets,crypto_ov_coinpaprika_model.get_exchanges_market,crypto_ov_coinpaprika_view.display_exchange_markets
crypto.ov.exrates,crypto_ov_pycoingecko_model.get_exchange_rates,crypto_ov_pycoingecko_view.display_exchange_rates
crypto.ov.globe,crypto_ov_sdk_helpers.globe,
crypto.ov.hm,crypto_disc_pycoingecko_model.get_coins,crypto_ov_pycoingecko_view.display_crypto_heatmap
crypto.ov.hold,crypto_ov_pycoingecko_model.get_holdings_overview,crypto_ov_pycoingecko_view.display_holdings_overview
crypto.ov.indexes,crypto_ov_pycoingecko_model.get_indexes,crypto_ov_pycoingecko_view.display_indexes
crypto.ov.info,crypto_ov_coinpaprika_model.get_coins_info,crypto_ov_coinpaprika_view.display_all_coins_info
crypto.ov.markets,crypto_ov_coinpaprika_model.get_coins_market_info,crypto_ov_coinpaprika_view.display_all_coins_market_info
crypto.ov.news,crypto_ov_cryptopanic_model.get_news,crypto_ov_cryptopanic_view.display_news
crypto.ov.platforms,crypto_ov_coinpaprika_model.get_all_contract_platforms,crypto_ov_coinpaprika_view.display_all_platforms
crypto.ov.products,crypto_ov_pycoingecko_model.get_finance_products,crypto_ov_pycoingecko_view.display_products
crypto.ov.stables,crypto_ov_pycoingecko_model.get_stable_coins,crypto_ov_pycoingecko_view.display_stablecoins
crypto.ov.wf,crypto_ov_withdrawalfees_model.get_overall_withdrawal_fees,crypto_ov_withdrawalfees_view.display_overall_withdrawal_fees
crypto.ov.wfpe,crypto_ov_withdrawalfees_model.get_crypto_withdrawal_fees,crypto_ov_withdrawalfees_view.display_crypto_withdrawal_fees
crypto.price,crypto_pyth_model.get_price,
crypto.tools.apy,crypto_tools_model.calculate_apy,crypto_tools_view.display_apy
crypto.tools.il,crypto_tools_model.calculate_il,crypto_tools_view.display_il
econometrics.bgod,econometrics_regression_model.get_bgod,econometrics_regression_view.display_bgod
econometrics.bols,econometrics_regression_model.get_bols,
econometrics.bpag,econometrics_regression_model.get_bpag,econometrics_regression_view.display_bpag
econometrics.clean,econometrics_model.clean,
econometrics.coint,econometrics_model.get_coint_df,econometrics_view.display_cointegration_test
econometrics.comparison,econometrics_regression_model.get_comparison,
econometrics.dwat,econometrics_regression_model.get_dwat,econometrics_regression_view.display_dwat
econometrics.fdols,econometrics_regression_model.get_fdols,
econometrics.fe,econometrics_regression_model.get_fe,
econometrics.get_regression_data,econometrics_regression_model.get_regression_data,
econometrics.granger,econometrics_model.get_granger_causality,econometrics_view.display_granger
econometrics.load,common_model.load,
econometrics.norm,econometrics_model.get_normality,econometrics_view.display_norm
econometrics.ols,econometrics_regression_model.get_ols,
econometrics.options,econometrics_model.get_options,econometrics_view.show_options
econometrics.panel,econometrics_regression_model.get_regressions_results,econometrics_regression_view.display_panel
econometrics.pols,econometrics_regression_model.get_pols,
econometrics.re,econometrics_regression_model.get_re,
econometrics.root,econometrics_model.get_root,econometrics_view.display_root
economy.available_indices,economy_yfinance_model.get_available_indices,
economy.bigmac,economy_nasdaq_model.get_big_mac_indices,economy_nasdaq_view.display_big_mac_index
economy.country_codes,economy_nasdaq_model.get_country_codes,
economy.currencies,economy_wsj_model.global_currencies,
economy.events,economy_nasdaq_model.get_economic_calendar,
economy.fred,economy_fred_model.get_aggregated_series_data,economy_fred_view.display_fred_series
economy.fred_ids,economy_fred_model.get_series_ids,
economy.fred_notes,economy_fred_model.get_series_notes,
economy.future,economy_finviz_model.get_futures,
economy.futures,economy_sdk_helpers.futures,
economy.get_groups,economy_finviz_model.get_groups,
economy.glbonds,economy_wsj_model.global_bonds,
economy.index,economy_yfinance_model.get_indices,economy_yfinance_view.show_indices
economy.indices,economy_wsj_model.us_indices,
economy.macro,economy_econdb_model.get_aggregated_macro_data,economy_econdb_view.show_macro_data
economy.macro_countries,economy_econdb_model.get_macro_countries,
economy.macro_parameters,economy_econdb_model.get_macro_parameters,
economy.overview,economy_wsj_model.market_overview,
economy.perfmap,economy_finviz_model.get_performance_map,
economy.performance,economy_finviz_model.get_performance_data,
economy.rtps,economy_alphavantage_model.get_sector_data,economy_alphavantage_view.realtime_performance_sector
economy.search_index,economy_yfinance_model.get_search_indices,
economy.spectrum,economy_finviz_view.display_spectrum,
economy.treasury,economy_econdb_model.get_treasuries,economy_econdb_view.show_treasuries
economy.treasury_maturities,economy_econdb_model.get_treasury_maturities,
economy.usbonds,economy_wsj_model.us_bonds,
economy.valuation,economy_finviz_model.get_valuation_data,
economy.ycrv,economy_fred_model.get_yield_curve,economy_fred_view.display_yield_curve
etf.candle,stocks_helper.display_candle,
etf.compare,etf_stockanalysis_model.compare_etfs,
etf.disc.mover,etf_disc_wsj_model.etf_movers,
etf.etf_by_category,etf_financedatabase_model.get_etfs_by_category,
etf.etf_by_name,etf_stockanalysis_model.get_etfs_by_name,
etf.holdings,etf_stockanalysis_model.get_etf_holdings,
etf.ld,etf_financedatabase_model.get_etfs_by_description,
etf.ln,etf_financedatabase_model.get_etfs_by_name,
etf.load,stocks_helper.load,
etf.news,common_newsapi_model.get_news,common_newsapi_view.display_news
etf.overview,etf_stockanalysis_model.get_etf_overview,
etf.scr.screen,etf_scr_model.etf_screener,etf_scr_view.view_screener
etf.symbols,etf_stockanalysis_model.get_all_names_symbols,
etf.weights,etf_fmp_model.get_etf_sector_weightings,
forex.candle,forex_helper.display_candle,
forex.fwd,forex_fxempire_model.get_forward_rates,
forex.get_currency_list,forex_av_model.get_currency_list,
forex.load,forex_helper.load,
forex.oanda.calendar,forex_oanda_model.get_calendar_request,forex_oanda_view.calendar
forex.oanda.cancel,forex_oanda_model.cancel_pending_order_request,forex_oanda_view.cancel_pending_order
forex.oanda.candles,forex_oanda_model.get_candles_dataframe,forex_oanda_view.show_candles
forex.oanda.close,forex_oanda_model.close_trades_request,forex_oanda_view.close_trade
forex.oanda.listorders,forex_oanda_model.order_history_request,forex_oanda_view.list_orders
forex.oanda.openpositions,forex_oanda_model.open_positions_request,forex_oanda_view.get_open_positions
forex.oanda.opentrades,forex_oanda_model.open_trades_request,forex_oanda_view.get_open_trades
forex.oanda.order,forex_oanda_model.create_order_request,forex_oanda_view.create_order
forex.oanda.orderbook,forex_oanda_model.orderbook_plot_data_request,forex_oanda_view.get_order_book
forex.oanda.pending,forex_oanda_model.pending_orders_request,forex_oanda_view.get_pending_orders
forex.oanda.positionbook,forex_oanda_model.positionbook_plot_data_request,forex_oanda_view.get_position_book
forex.oanda.price,forex_oanda_model.fx_price_request,forex_oanda_view.get_fx_price
forex.oanda.summary,forex_oanda_model.account_summary_request,forex_oanda_view.get_account_summary
forex.quote,forex_sdk_helpers.quote,
futures.curve,futures_yfinance_model.get_curve_futures,futures_yfinance_view.display_curve
futures.historical,futures_yfinance_model.get_historical_futures,futures_yfinance_view.display_historical
futures.search,futures_yfinance_model.get_search_futures,
keys.av,keys_model.set_av_key,
keys.binance,keys_model.set_binance_key,
keys.bitquery,keys_model.set_bitquery_key,
keys.cmc,keys_model.set_cmc_key,
keys.coinbase,keys_model.set_coinbase_key,
keys.coinglass,keys_model.set_coinglass_key,
keys.cpanic,keys_model.set_cpanic_key,
keys.degiro,keys_model.set_degiro_key,
keys.eodhd,keys_model.set_eodhd_key,
keys.ethplorer,keys_model.set_ethplorer_key,
keys.finnhub,keys_model.set_finnhub_key,
keys.fmp,keys_model.set_fmp_key,
keys.fred,keys_model.set_fred_key,
keys.get_keys_info,keys_model.get_keys_info,
keys.github,keys_model.set_github_key,
keys.glassnode,keys_model.set_glassnode_key,
keys.messari,keys_model.set_messari_key,
keys.mykeys,keys_model.get_keys,
keys.news,keys_model.set_news_key,
keys.oanda,keys_model.set_oanda_key,
keys.openbb,keys_model.set_openbb_personal_access_token,
keys.polygon,keys_model.set_polygon_key,
keys.quandl,keys_model.set_quandl_key,
keys.reddit,keys_model.set_reddit_key,
keys.rh,keys_model.set_rh_key,
keys.santiment,keys_model.set_santiment_key,
keys.set_keys,keys_model.set_keys,
keys.shroom,keys_model.set_shroom_key,
keys.smartstake,keys_model.set_smartstake_key,
keys.stocksera,keys_model.set_stocksera_key,
keys.tokenterminal,keys_model.set_tokenterminal_key,
keys.tradier,keys_model.set_tradier_key,
keys.twitter,keys_model.set_twitter_key,
keys.walert,keys_model.set_walert_key,
login,sdk_session.login,
logout,sdk_session.logout,
news,common_feedparser_model.get_news,
portfolio.alloc.assets,portfolio_model.get_assets_allocation,
portfolio.alloc.countries,portfolio_model.get_countries_allocation,
portfolio.alloc.regions,portfolio_model.get_regions_allocation,
portfolio.alloc.sectors,portfolio_model.get_sectors_allocation,
portfolio.bench,portfolio_model.set_benchmark,
portfolio.distr,portfolio_model.get_distribution_returns,portfolio_view.display_distribution_returns
portfolio.dret,portfolio_model.get_daily_returns,portfolio_view.display_daily_returns
portfolio.es,portfolio_model.get_es,
portfolio.holdp,portfolio_model.get_holdings_percentage,portfolio_view.display_holdings_percentage
portfolio.holdv,portfolio_model.get_holdings_value,portfolio_view.display_holdings_value
portfolio.load,portfolio_model.generate_portfolio,
portfolio.maxdd,portfolio_model.get_maximum_drawdown,portfolio_view.display_maximum_drawdown
portfolio.metric.calmar,portfolio_model.get_calmar_ratio,
portfolio.metric.commonsense,portfolio_model.get_common_sense_ratio,
portfolio.metric.gaintopain,portfolio_model.get_gaintopain_ratio,
portfolio.metric.information,portfolio_model.get_information_ratio,
portfolio.metric.jensens,portfolio_model.get_jensens_alpha,
portfolio.metric.kelly,portfolio_model.get_kelly_criterion,
portfolio.metric.kurtosis,portfolio_model.get_kurtosis,
portfolio.metric.maxdrawdown,portfolio_model.get_maximum_drawdown_ratio,
portfolio.metric.payoff,portfolio_model.get_payoff_ratio,
portfolio.metric.profitfactor,portfolio_model.get_profit_factor,
portfolio.metric.rsquare,portfolio_model.get_r2_score,
portfolio.metric.sharpe,portfolio_model.get_sharpe_ratio,
portfolio.metric.skew,portfolio_model.get_skewness,
portfolio.metric.sortino,portfolio_model.get_sortino_ratio,
portfolio.metric.tail,portfolio_model.get_tail_ratio,
portfolio.metric.trackerr,portfolio_model.get_tracking_error,
portfolio.metric.volatility,portfolio_model.get_volatility,
portfolio.mret,portfolio_model.get_monthly_returns,portfolio_view.display_monthly_returns
portfolio.om,portfolio_model.get_omega,portfolio_view.display_omega
portfolio.perf,portfolio_model.get_performance_vs_benchmark,
portfolio.rbeta,portfolio_model.get_rolling_beta,portfolio_view.display_rolling_beta
portfolio.rsharpe,portfolio_model.get_rolling_sharpe,portfolio_view.display_rolling_sharpe
portfolio.rsort,portfolio_model.get_rolling_sortino,portfolio_view.display_rolling_sortino
portfolio.rvol,portfolio_model.get_rolling_volatility,portfolio_view.display_rolling_volatility
portfolio.show,portfolio_model.get_transactions,
portfolio.summary,portfolio_model.get_summary,
portfolio.var,portfolio_model.get_var,
portfolio.yret,portfolio_model.get_yearly_returns,portfolio_view.display_yearly_returns
qa.acf,common_qa_view.display_acf,
qa.bw,common_qa_view.display_bw,
qa.calculate_adjusted_var,common_qa_model.calculate_adjusted_var,
qa.cdf,common_qa_view.display_cdf,
qa.cusum,common_qa_view.display_cusum,
qa.decompose,common_qa_model.get_seasonal_decomposition,
qa.es,common_qa_model.get_es,common_qa_view.display_es
qa.hist,common_qa_view.display_hist,
qa.kurtosis,common_qa_rolling_model.get_kurtosis,common_qa_rolling_view.display_kurtosis
qa.line,common_qa_view.display_line,
qa.normality,common_qa_model.get_normality,common_qa_view.display_normality
qa.omega,common_qa_model.get_omega,common_qa_view.display_omega
qa.qqplot,common_qa_view.display_qqplot,
qa.quantile,common_qa_rolling_model.get_quantile,common_qa_rolling_view.display_quantile
qa.rolling,common_qa_rolling_model.get_rolling_avg,common_qa_rolling_view.display_mean_std
qa.sharpe,common_qa_model.get_sharpe,common_qa_view.display_sharpe
qa.skew,common_qa_rolling_model.get_skew,common_qa_rolling_view.display_skew
qa.sortino,common_qa_model.get_sortino,common_qa_view.display_sortino
qa.spread,common_qa_rolling_model.get_spread,common_qa_rolling_view.display_spread
qa.summary,common_qa_model.get_summary,common_qa_view.display_summary
qa.unitroot,common_qa_model.get_unitroot,common_qa_view.display_unitroot
qa.var,common_qa_model.get_var,common_qa_view.display_var
stocks.ba.bullbear,stocks_ba_stocktwits_model.get_bullbear,
stocks.ba.cnews,stocks_ba_finnhub_model.get_company_news,
stocks.ba.getdd,stocks_ba_reddit_model.get_due_dilligence,
stocks.ba.headlines,stocks_ba_finbrain_model.get_sentiment,stocks_ba_finbrain_view.display_sentiment_analysis
stocks.ba.infer,stocks_ba_twitter_model.load_analyze_tweets,stocks_ba_twitter_view.display_inference
stocks.ba.mentions,stocks_ba_google_model.get_mentions,stocks_ba_google_view.display_mentions
stocks.ba.messages,stocks_ba_stocktwits_model.get_messages,
stocks.ba.popular,stocks_ba_reddit_model.get_popular_tickers,
stocks.ba.queries,stocks_ba_google_model.get_queries,
stocks.ba.redditsent,stocks_ba_reddit_model.get_posts_about,
stocks.ba.regions,stocks_ba_google_model.get_regions,stocks_ba_google_view.display_regions
stocks.ba.rise,stocks_ba_google_model.get_rise,
stocks.ba.sentiment,stocks_ba_twitter_model.get_sentiment,stocks_ba_twitter_view.display_sentiment
stocks.ba.snews,stocks_ba_finnhub_model.get_headlines_sentiment,stocks_ba_finnhub_view.display_stock_price_headlines_sentiment
stocks.ba.spac,stocks_ba_reddit_model.get_spac,
stocks.ba.spacc,stocks_ba_reddit_model.get_spac_community,
stocks.ba.stalker,stocks_ba_stocktwits_model.get_stalker,
stocks.ba.text_sent,stocks_ba_reddit_model.get_sentiment,
stocks.ba.trending,stocks_ba_stocktwits_model.get_trending,
stocks.ba.watchlist,stocks_ba_reddit_model.get_watchlists,
stocks.ba.wsb,stocks_ba_reddit_model.get_wsb_community,
stocks.ca.balance,stocks_ca_marketwatch_model.get_balance_comparison,
stocks.ca.cashflow,stocks_ca_marketwatch_model.get_cashflow_comparison,
stocks.ca.hcorr,stocks_ca_yahoo_finance_model.get_correlation,stocks_ca_yahoo_finance_view.display_correlation
stocks.ca.hist,stocks_ca_yahoo_finance_model.get_historical,stocks_ca_yahoo_finance_view.display_historical
stocks.ca.income,stocks_ca_marketwatch_model.get_income_comparison,stocks_ca_marketwatch_view.display_income_comparison
stocks.ca.scorr,stocks_ca_finbrain_model.get_sentiment_correlation,stocks_ca_finbrain_view.display_sentiment_correlation
stocks.ca.screener,stocks_ca_finviz_compare_model.get_comparison_data,
stocks.ca.sentiment,stocks_ca_finbrain_model.get_sentiments,stocks_ca_finbrain_view.display_sentiment_compare
stocks.ca.similar,stocks_ca_sdk_helpers.get_similar,
stocks.ca.volume,stocks_ca_yahoo_finance_model.get_volume,stocks_ca_yahoo_finance_view.display_volume
stocks.candle,stocks_helper.display_candle,
stocks.disc.active,stocks_disc_yahoofinance_model.get_active,
stocks.disc.arkord,stocks_disc_ark_model.get_ark_orders,
stocks.disc.asc,stocks_disc_yahoofinance_model.get_asc,
stocks.disc.dividends,stocks_disc_nasdaq_model.get_dividend_cal,
stocks.disc.filings,stocks_fa_fmp_model.get_filings,stocks_disc_fmp_view.display_filings
stocks.disc.fipo,stocks_disc_finnhub_model.get_future_ipo,
stocks.disc.gainers,stocks_disc_yahoofinance_model.get_gainers,
stocks.disc.gtech,stocks_disc_yahoofinance_model.get_gtech,
stocks.disc.hotpenny,stocks_disc_shortinterest_model.get_today_hot_penny_stocks,
stocks.disc.ipo,stocks_disc_finnhub_model.get_ipo_calendar,
stocks.disc.losers,stocks_disc_yahoofinance_model.get_losers,
stocks.disc.lowfloat,stocks_disc_shortinterest_model.get_low_float,
stocks.disc.news,stocks_disc_seeking_alpha_model.get_news,
stocks.disc.pipo,stocks_disc_finnhub_model.get_past_ipo,
stocks.disc.rtat,stocks_disc_nasdaq_model.get_retail_tickers,
stocks.disc.trending,stocks_disc_seeking_alpha_model.get_trending_list,
stocks.disc.ugs,stocks_disc_yahoofinance_model.get_ugs,
stocks.disc.ulc,stocks_disc_yahoofinance_model.get_ulc,
stocks.disc.upcoming,stocks_disc_seeking_alpha_model.get_next_earnings,
stocks.dps.ctb,stocks_dps_ibkr_model.get_cost_to_borrow,
stocks.dps.dpotc,stocks_dps_finra_model.getTickerFINRAdata,stocks_dps_finra_view.darkpool_ats_otc
stocks.dps.ftd,stocks_dps_sec_model.get_fails_to_deliver,stocks_dps_sec_view.fails_to_deliver
stocks.dps.hsi,stocks_dps_shortinterest_model.get_high_short_interest,
stocks.dps.pos,stocks_dps_stockgrid_model.get_dark_pool_short_positions,
stocks.dps.prom,stocks_dps_finra_model.getATSdata,stocks_dps_finra_view.darkpool_otc
stocks.dps.psi_q,stocks_dps_quandl_model.get_short_interest,stocks_dps_quandl_view.short_interest
stocks.dps.psi_sg,stocks_dps_stockgrid_model.get_short_interest_volume,stocks_dps_stockgrid_view.short_interest_volume
stocks.dps.shorted,stocks_dps_yahoofinance_model.get_most_shorted,
stocks.dps.sidtc,stocks_dps_stockgrid_model.get_short_interest_days_to_cover,
stocks.dps.spos,stocks_dps_stockgrid_model.get_net_short_position,stocks_dps_stockgrid_view.net_short_position
stocks.fa.analysis,stocks_fa_eclect_us_model.get_filings_analysis,
stocks.fa.analyst,stocks_fa_finviz_model.get_analyst_data,
stocks.fa.balance,stocks_fa_sdk_helpers.get_balance_sheet,
stocks.fa.cal,stocks_fa_yahoo_finance_model.get_calendar_earnings,
stocks.fa.cash,stocks_fa_sdk_helpers.get_cash_flow,
stocks.fa.customer,stocks_fa_csimarket_model.get_customers,
stocks.fa.data,stocks_fa_finviz_model.get_data,
stocks.fa.dcf,stocks_fa_fmp_model.get_dcf,
stocks.fa.dcfc,stocks_fa_fmp_model.get_dcf,
stocks.fa.divs,stocks_fa_yahoo_finance_model.get_dividends,stocks_fa_yahoo_finance_view.display_dividends
stocks.fa.dupont,stocks_fa_av_model.get_dupont,
stocks.fa.earnings,stocks_fa_sdk_helpers.earnings,
stocks.fa.enterprise,stocks_fa_fmp_model.get_enterprise,
stocks.fa.epsfc,stocks_fa_seeking_alpha_model.get_estimates_eps,
stocks.fa.est,stocks_fa_business_insider_model.get_estimates,
stocks.fa.fama_coe,stocks_fa_dcf_model.get_fama_coe,
stocks.fa.fama_raw,stocks_fa_dcf_model.get_fama_raw,
stocks.fa.fraud,stocks_fa_av_model.get_fraud_ratios,
stocks.fa.growth,stocks_fa_fmp_model.get_financial_growth,
stocks.fa.historical_5,stocks_fa_dcf_model.get_historical_5,
stocks.fa.income,stocks_fa_sdk_helpers.get_income_statement,
stocks.fa.info,stocks_fa_yahoo_finance_model.get_info,
stocks.fa.key,stocks_fa_av_model.get_key_metrics,
stocks.fa.metrics,stocks_fa_fmp_model.get_key_metrics,
stocks.fa.mgmt,stocks_fa_business_insider_model.get_management,
stocks.fa.mktcap,stocks_fa_yahoo_finance_model.get_mktcap,stocks_fa_yahoo_finance_view.display_mktcap
stocks.fa.news,stocks_fa_finviz_model.get_news,
stocks.fa.overview,stocks_fa_av_model.get_overview,
stocks.fa.profile,stocks_fa_fmp_model.get_profile,
stocks.fa.pt,stocks_fa_business_insider_model.get_price_target_from_analysts,stocks_fa_business_insider_view.price_target_from_analysts
stocks.fa.rating,stocks_fa_fmp_model.get_rating,
stocks.fa.ratios,stocks_fa_fmp_model.get_key_ratios,
stocks.fa.revfc,stocks_fa_seeking_alpha_model.get_estimates_rev,
stocks.fa.rot,stocks_fa_finnhub_model.get_rating_over_time,stocks_fa_finnhub_view.rating_over_time
stocks.fa.score,stocks_fa_fmp_model.get_score,
stocks.fa.sec,stocks_fa_marketwatch_model.get_sec_filings,
stocks.fa.sec_fmp,stocks_fa_fmp_model.get_filings,stocks_fa_fmp_view.display_filings
stocks.fa.shrs,stocks_fa_yahoo_finance_model.get_shareholders,
stocks.fa.similar_dfs,stocks_fa_dcf_model.get_similar_dfs,
stocks.fa.splits,stocks_fa_yahoo_finance_model.get_splits,stocks_fa_yahoo_finance_view.display_splits
stocks.fa.supplier,stocks_fa_csimarket_model.get_suppliers,
stocks.gov.contracts,stocks_gov_quiverquant_model.get_contracts,stocks_gov_quiverquant_view.display_contracts
stocks.gov.government_trading,stocks_gov_quiverquant_model.get_government_trading,
stocks.gov.gtrades,stocks_gov_quiverquant_model.get_cleaned_government_trading,stocks_gov_quiverquant_view.display_government_trading
stocks.gov.histcont,stocks_gov_quiverquant_model.get_hist_contracts,stocks_gov_quiverquant_view.display_hist_contracts
stocks.gov.lastcontracts,stocks_gov_quiverquant_model.get_last_contracts,stocks_gov_quiverquant_view.display_last_contracts
stocks.gov.lasttrades,stocks_gov_quiverquant_model.get_last_government,
stocks.gov.lobbying,stocks_gov_quiverquant_model.get_lobbying,
stocks.gov.qtrcontracts,stocks_gov_quiverquant_model.get_qtr_contracts,stocks_gov_quiverquant_view.display_qtr_contracts
stocks.gov.topbuys,stocks_gov_quiverquant_model.get_government_buys,stocks_gov_quiverquant_view.display_government_buys
stocks.gov.toplobbying,stocks_gov_quiverquant_model.get_top_lobbying,stocks_gov_quiverquant_view.display_top_lobbying
stocks.gov.topsells,stocks_gov_quiverquant_model.get_government_sells,stocks_gov_quiverquant_view.display_government_sells
stocks.ins.act,stocks_insider_businessinsider_model.get_insider_activity,stocks_insider_businessinsider_view.insider_activity
stocks.ins.blcp,stocks_insider_sdk_helper.blcp,
stocks.ins.blcs,stocks_insider_sdk_helper.blcs,
stocks.ins.blip,stocks_insider_sdk_helper.blip,
stocks.ins.blis,stocks_insider_sdk_helper.blis,
stocks.ins.blop,stocks_insider_sdk_helper.blop,
stocks.ins.blos,stocks_insider_sdk_helper.blos,
stocks.ins.filter,stocks_insider_sdk_helper.insider_filter,
stocks.ins.lcb,stocks_insider_sdk_helper.lcb,
stocks.ins.lins,stocks_insider_finviz_model.get_last_insider_activity,stocks_insider_finviz_view.last_insider_activity
stocks.ins.lip,stocks_insider_sdk_helper.lip,
stocks.ins.lis,stocks_insider_sdk_helper.lis,
stocks.ins.lit,stocks_insider_sdk_helper.lit,
stocks.ins.lpsb,stocks_insider_sdk_helper.lpsb,
stocks.ins.print_insider_data,stocks_insider_openinsider_model.get_print_insider_data,stocks_insider_openinsider_view.print_insider_data
stocks.ins.stats,stocks_insider_sdk_helper.stats,
stocks.load,stocks_helper.load,
stocks.options.chains,stocks_options_sdk_helper.get_full_option_chain,
stocks.options.dte,stocks_options_yfinance_model.get_dte,
stocks.options.eodchain,stocks_options_intrinio_model.get_full_chain_eod,
stocks.options.expirations,stocks_options_sdk_helper.get_option_expirations,
stocks.options.generate_data,stocks_options_yfinance_model.generate_data,
stocks.options.grhist,stocks_options_screen_syncretism_model.get_historical_greeks,stocks_options_screen_syncretism_view.view_historical_greeks
stocks.options.hist,stocks_options_sdk_helper.hist,
stocks.options.info,stocks_options_barchart_model.get_options_info,stocks_options_barchart_view.print_options_data
stocks.options.last_price,stocks_options_tradier_model.get_last_price,
stocks.options.oi,stocks_options_view.plot_oi,
stocks.options.pcr,stocks_options_alphaquery_model.get_put_call_ratio,stocks_options_alphaquery_view.display_put_call_ratio
stocks.options.price,stocks_options_sdk_helper.get_option_current_price,
stocks.options.screen.check_presets,stocks_options_screen_syncretism_model.check_presets,
stocks.options.screen.screener_output,stocks_options_screen_syncretism_model.get_screener_output,stocks_options_screen_syncretism_view.view_screener_output
stocks.options.unu,stocks_options_fdscanner_model.unusual_options,stocks_options_fdscanner_view.display_options
stocks.options.voi,stocks_options_view.plot_voi,
stocks.options.vol,stocks_options_view.plot_vol,
stocks.options.vsurf,stocks_options_yfinance_model.get_iv_surface,stocks_options_yfinance_view.display_vol_surface
stocks.process_candle,stocks_helper.process_candle,
stocks.qa.beta,stocks_qa_beta_model.beta_model,stocks_qa_beta_view.beta_view
stocks.qa.capm,stocks_qa_factors_model.capm_information,
stocks.qa.fama_raw,stocks_qa_factors_model.get_fama_raw,
stocks.qa.historical_5,stocks_qa_factors_model.get_historical_5,
stocks.quote,stocks_model.get_quote,
stocks.screener.arktrades,stocks_screener_ark_model.get_ark_trades_by_ticker,
stocks.screener.historical,stocks_screener_yahoofinance_model.historical,stocks_screener_yahoofinance_view.historical
stocks.screener.screener_data,stocks_screener_finviz_model.get_screener_data,stocks_screener_finviz_view.screener
stocks.search,stocks_helper.search,
stocks.sia.countries,stocks_sia_financedatabase_model.get_countries,
stocks.sia.cpci,stocks_sia_financedatabase_model.get_companies_per_country_in_industry,stocks_sia_financedatabase_view.display_companies_per_country_in_industry
stocks.sia.cpcs,stocks_sia_financedatabase_model.get_companies_per_country_in_sector,stocks_sia_financedatabase_view.display_companies_per_country_in_sector
stocks.sia.cpic,stocks_sia_financedatabase_model.get_companies_per_industry_in_country,stocks_sia_financedatabase_view.display_companies_per_industry_in_country
stocks.sia.cpis,stocks_sia_financedatabase_model.get_companies_per_industry_in_sector,stocks_sia_financedatabase_view.display_companies_per_industry_in_sector
stocks.sia.cps,stocks_sia_financedatabase_model.get_companies_per_sector_in_country,stocks_sia_financedatabase_view.display_companies_per_sector_in_country
stocks.sia.filter_stocks,stocks_sia_financedatabase_model.filter_stocks,
stocks.sia.industries,stocks_sia_financedatabase_model.get_industries,
stocks.sia.maketcap,stocks_sia_financedatabase_model.get_marketcap,
stocks.sia.marketcap,stocks_sia_financedatabase_model.get_marketcap,
stocks.sia.sectors,stocks_sia_financedatabase_model.get_sectors,
stocks.sia.stocks_data,stocks_sia_stockanalysis_model.get_stocks_data,
stocks.ta.recom,stocks_ta_tradingview_model.get_tradingview_recommendation,stocks_ta_tradingview_view.print_recommendation
stocks.ta.rsp,stocks_ta_rsp_model.get_rsp,stocks_ta_rsp_view.display_rsp
stocks.ta.summary,stocks_ta_finbrain_model.get_technical_summary_report,stocks_ta_finbrain_view.technical_summary_report
stocks.ta.view,stocks_ta_finviz_model.get_finviz_image,stocks_ta_finviz_view.view
stocks.th.all,stocks_th_bursa_model.get_all,stocks_th_bursa_view.display_all
stocks.th.check_if_open,stocks_th_bursa_model.check_if_open,
stocks.th.closed,stocks_th_bursa_model.get_closed,stocks_th_bursa_view.display_closed
stocks.th.exchange,stocks_th_bursa_model.get_bursa,stocks_th_bursa_view.display_exchange
stocks.th.open,stocks_th_bursa_model.get_open,stocks_th_bursa_view.display_open
stocks.tob,stocks_cboe_model.get_top_of_book,
ta.ad,common_ta_volume_model.ad,common_ta_volume_view.display_ad
ta.adosc,common_ta_volume_model.adosc,common_ta_volume_view.display_adosc
ta.adx,common_ta_trend_indicators_model.adx,common_ta_trend_indicators_view.display_adx
ta.aroon,common_ta_trend_indicators_model.aroon,common_ta_trend_indicators_view.display_aroon
ta.atr,common_ta_volatility_model.atr,common_ta_volatility_view.display_atr
ta.bbands,common_ta_volatility_model.bbands,common_ta_volatility_view.display_bbands
ta.cci,common_ta_momentum_model.cci,common_ta_momentum_view.display_cci
ta.cg,common_ta_momentum_model.cg,common_ta_momentum_view.display_cg
ta.clenow,common_ta_momentum_model.clenow_momentum,common_ta_momentum_view.display_clenow_momentum
ta.demark,common_ta_momentum_model.demark_seq,common_ta_momentum_view.display_demark
ta.donchian,common_ta_volatility_model.donchian,common_ta_volatility_view.display_donchian
ta.ema,common_ta_overlap_model.ema,
ta.fib,common_ta_custom_indicators_model.calculate_fib_levels,common_ta_custom_indicators_view.fibonacci_retracement
ta.fisher,common_ta_momentum_model.fisher,common_ta_momentum_view.display_fisher
ta.hma,common_ta_overlap_model.hma,
ta.kc,common_ta_volatility_model.kc,common_ta_volatility_view.view_kc
ta.ma,common_ta_overlap_view.view_ma,common_ta_overlap_view.view_ma
ta.macd,common_ta_momentum_model.macd,common_ta_momentum_view.display_macd
ta.obv,common_ta_volume_model.obv,common_ta_volume_view.display_obv
ta.rsi,common_ta_momentum_model.rsi,common_ta_momentum_view.display_rsi
ta.sma,common_ta_overlap_model.sma,
ta.stoch,common_ta_momentum_model.stoch,common_ta_momentum_view.display_stoch
ta.vwap,common_ta_overlap_model.vwap,common_ta_overlap_view.view_vwap
ta.wma,common_ta_overlap_model.wma,
ta.zlma,common_ta_overlap_model.zlma,
whoami,sdk_session.whoami,
1 trail model view
2 alt.covid.global_cases alt_covid_model.get_global_cases
3 alt.covid.global_deaths alt_covid_model.get_global_deaths
4 alt.covid.ov alt_covid_model.get_covid_ov alt_covid_view.display_covid_ov
5 alt.covid.slopes alt_covid_model.get_case_slopes alt_covid_view.display_case_slopes
6 alt.covid.stat alt_covid_model.get_covid_stat alt_covid_view.display_covid_stat
7 alt.hn alt_hackernews_model.get_stories alt_hackernews_view.display_stories
8 alt.oss._make_request alt_oss_runa_model._make_request
9 alt.oss._retry_session alt_oss_runa_model._retry_session
10 alt.oss.github_data alt_oss_github_model.get_github_data
11 alt.oss.history alt_oss_github_model.get_stars_history alt_oss_github_view.display_star_history
12 alt.oss.ross alt_oss_runa_model.get_startups alt_oss_runa_view.display_rossindex
13 alt.oss.search alt_oss_github_model.search_repos
14 alt.oss.summary alt_oss_github_model.get_repo_summary alt_oss_github_view.display_repo_summary
15 alt.oss.top alt_oss_github_model.get_top_repos alt_oss_github_view.display_top_repos
16 alt.realestate.get_estate_sales alt_realestate_landRegistry_model.get_estate_sales
17 alt.realestate.get_region_stats alt_realestate_landRegistry_model.get_region_stats
18 alt.realestate.get_towns_sold_prices alt_realestate_landRegistry_model.get_towns_sold_prices
19 crypto.candle crypto_helpers.plot_candles
20 crypto.chart crypto_helpers.plot_chart
21 crypto.dd.active crypto_dd_glassnode_model.get_active_addresses crypto_dd_glassnode_view.display_active_addresses
22 crypto.dd.all_binance_trading_pairs crypto_dd_binance_model.get_all_binance_trading_pairs
23 crypto.dd.ath crypto_dd_sdk_helper.ath
24 crypto.dd.atl crypto_dd_sdk_helper.atl
25 crypto.dd.balance crypto_dd_binance_view.get_balance crypto_dd_binance_view.display_balance
26 crypto.dd.basic crypto_dd_coinpaprika_model.basic_coin_info crypto_dd_coinpaprika_view.display_basic
27 crypto.dd.binance_available_quotes_for_each_coin crypto_dd_binance_model.get_binance_available_quotes_for_each_coin
28 crypto.dd.candle crypto_dd_coinbase_model.get_candles
29 crypto.dd.change crypto_dd_glassnode_model.get_exchange_net_position_change crypto_dd_glassnode_view.display_exchange_net_position_change
30 crypto.dd.check_valid_binance_str crypto_dd_binance_model.check_valid_binance_str
31 crypto.dd.close crypto_dd_glassnode_model.get_close_price
32 crypto.dd.coin crypto_dd_coinpaprika_model.get_coin
33 crypto.dd.coin_market_chart crypto_dd_pycoingecko_model.get_coin_market_chart
34 crypto.dd.dev crypto_dd_sdk_helper.dev_stats
35 crypto.dd.eb crypto_dd_glassnode_model.get_exchange_balances crypto_dd_glassnode_view.display_exchange_balances
36 crypto.dd.events crypto_dd_coinpaprika_model.get_coin_events_by_id crypto_dd_coinpaprika_view.display_events
37 crypto.dd.ex crypto_dd_coinpaprika_model.get_coin_exchanges_by_id crypto_dd_coinpaprika_view.display_exchanges
38 crypto.dd.exchanges crypto_dd_ccxt_model.get_exchanges
39 crypto.dd.fr crypto_dd_messari_model.get_fundraising crypto_dd_messari_view.display_fundraising
40 crypto.dd.get_mt crypto_dd_messari_model.get_available_timeseries crypto_dd_messari_view.display_messari_timeseries_list
41 crypto.dd.gh crypto_dd_santiment_model.get_github_activity crypto_dd_santiment_view.display_github_activity
42 crypto.dd.gov crypto_dd_messari_model.get_governance crypto_dd_messari_view.display_governance
43 crypto.dd.headlines stocks_ba_finbrain_model.get_sentiment crypto_dd_finbrain_view.display_crypto_sentiment_analysis
44 crypto.dd.inv crypto_dd_messari_model.get_investors crypto_dd_messari_view.display_investors
45 crypto.dd.links crypto_dd_messari_model.get_links crypto_dd_messari_view.display_links
46 crypto.dd.mcapdom crypto_dd_messari_model.get_marketcap_dominance crypto_dd_messari_view.display_marketcap_dominance
47 crypto.dd.mkt crypto_dd_coinpaprika_model.get_coin_markets_by_id crypto_dd_coinpaprika_view.display_markets
48 crypto.dd.mt crypto_dd_messari_model.get_messari_timeseries crypto_dd_messari_view.display_messari_timeseries
49 crypto.dd.news crypto_ov_cryptopanic_model.get_news crypto_dd_cryptopanic_view.display_news
50 crypto.dd.nonzero crypto_dd_glassnode_model.get_non_zero_addresses crypto_dd_glassnode_view.display_non_zero_addresses
51 crypto.dd.ob crypto_dd_ccxt_model.get_orderbook crypto_dd_ccxt_view.display_order_book
52 crypto.dd.oi crypto_dd_coinglass_model.get_open_interest_per_exchange crypto_dd_coinglass_view.display_open_interest
53 crypto.dd.pi crypto_dd_messari_model.get_project_product_info crypto_dd_messari_view.display_project_info
54 crypto.dd.pr crypto_dd_pycoingecko_model.get_coin_potential_returns crypto_dd_pycoingecko_view.display_coin_potential_returns
55 crypto.dd.ps crypto_dd_coinpaprika_model.get_tickers_info_for_coin crypto_dd_coinpaprika_view.display_price_supply
56 crypto.dd.rm crypto_dd_messari_model.get_roadmap crypto_dd_messari_view.display_roadmap
57 crypto.dd.score crypto_dd_sdk_helper.score
58 crypto.dd.show_available_pairs_for_given_symbol crypto_dd_coinbase_model.show_available_pairs_for_given_symbol
59 crypto.dd.social crypto_dd_sdk_helper.social
60 crypto.dd.stats crypto_dd_coinbase_model.get_product_stats crypto_dd_coinbase_view.display_stats
61 crypto.dd.team crypto_dd_messari_model.get_team crypto_dd_messari_view.display_team
62 crypto.dd.tk crypto_dd_messari_model.get_tokenomics crypto_dd_messari_view.display_tokenomics
63 crypto.dd.tokenomics crypto_dd_pycoingecko_model.get_coin_tokenomics
64 crypto.dd.trades crypto_dd_ccxt_model.get_trades crypto_dd_ccxt_view.display_trades
65 crypto.dd.trading_pair_info crypto_dd_coinbase_model.get_trading_pair_info
66 crypto.dd.trading_pairs crypto_dd_binance_model._get_trading_pairs
67 crypto.dd.twitter crypto_dd_coinpaprika_model.get_coin_twitter_timeline crypto_dd_coinpaprika_view.display_twitter
68 crypto.defi.anchor_data crypto_defi_cryptosaurio_model.get_anchor_data crypto_defi_cryptosaurio_view.display_anchor_data
69 crypto.defi.aterra crypto_defi_terraengineer_model.get_history_asset_from_terra_address crypto_defi_terraengineer_view.display_terra_asset_history
70 crypto.defi.ayr crypto_defi_terraengineer_model.get_anchor_yield_reserve crypto_defi_terraengineer_view.display_anchor_yield_reserve
71 crypto.defi.dtvl crypto_defi_llama_model.get_defi_protocol crypto_defi_llama_view.display_historical_tvl
72 crypto.defi.gacc crypto_defi_terramoney_fcd_model.get_account_growth crypto_defi_terramoney_fcd_view.display_account_growth
73 crypto.defi.gdapps crypto_defi_llama_model.get_grouped_defi_protocols crypto_defi_llama_view.display_grouped_defi_protocols
74 crypto.defi.gov_proposals crypto_defi_terramoney_fcd_model.get_proposals crypto_defi_terramoney_fcd_view.display_gov_proposals
75 crypto.defi.ldapps crypto_defi_llama_model.get_defi_protocols crypto_defi_llama_view.display_defi_protocols
76 crypto.defi.luna_supply crypto_defi_smartstake_model.get_luna_supply_stats crypto_defi_smartstake_view.display_luna_circ_supply_change
77 crypto.defi.newsletters crypto_defi_substack_model.get_newsletters crypto_defi_substack_view.display_newsletters
78 crypto.defi.pairs crypto_defi_graph_model.get_uniswap_pool_recently_added crypto_defi_graph_view.display_recently_added
79 crypto.defi.pools crypto_defi_graph_model.get_uni_pools_by_volume crypto_defi_graph_view.display_uni_pools
80 crypto.defi.sinfo crypto_defi_terramoney_fcd_model.get_staking_account_info crypto_defi_terramoney_fcd_view.display_account_staking_info
81 crypto.defi.sratio crypto_defi_terramoney_fcd_model.get_staking_ratio_history crypto_defi_terramoney_fcd_view.display_staking_ratio_history
82 crypto.defi.sreturn crypto_defi_terramoney_fcd_model.get_staking_returns_history crypto_defi_terramoney_fcd_view.display_staking_returns_history
83 crypto.defi.stats crypto_defi_graph_model.get_uniswap_stats crypto_defi_graph_view.display_uni_stats
84 crypto.defi.stvl crypto_defi_llama_model.get_defi_tvl crypto_defi_llama_view.display_defi_tvl
85 crypto.defi.swaps crypto_defi_graph_model.get_last_uni_swaps crypto_defi_graph_view.display_last_uni_swaps
86 crypto.defi.tokens crypto_defi_graph_model.get_uni_tokens crypto_defi_graph_view.display_uni_tokens
87 crypto.defi.validators crypto_defi_terramoney_fcd_model.get_validators crypto_defi_terramoney_fcd_view.display_validators
88 crypto.defi.vaults crypto_defi_coindix_model.get_defi_vaults crypto_defi_coindix_view.display_defi_vaults
89 crypto.disc.categories_keys crypto_disc_pycoingecko_model.get_categories_keys
90 crypto.disc.coin_list crypto_disc_pycoingecko_model.get_coin_list
91 crypto.disc.coins crypto_disc_pycoingecko_model.get_coins crypto_disc_pycoingecko_view.display_coins
92 crypto.disc.coins_for_given_exchange crypto_disc_pycoingecko_model.get_coins_for_given_exchange
93 crypto.disc.cpsearch crypto_disc_coinpaprika_model.get_search_results crypto_disc_coinpaprika_view.display_search_results
94 crypto.disc.gainers crypto_disc_pycoingecko_model.get_gainers crypto_disc_pycoingecko_view.display_gainers
95 crypto.disc.losers crypto_disc_pycoingecko_model.get_losers crypto_disc_pycoingecko_view.display_losers
96 crypto.disc.top_coins crypto_disc_sdk_helpers.top_coins
97 crypto.disc.top_dapps crypto_disc_dappradar_model.get_top_dapps crypto_disc_dappradar_view.display_top_dapps
98 crypto.disc.top_dexes crypto_disc_dappradar_model.get_top_dexes crypto_disc_dappradar_view.display_top_dexes
99 crypto.disc.top_games crypto_disc_dappradar_model.get_top_games crypto_disc_dappradar_view.display_top_games
100 crypto.disc.top_nfts crypto_disc_dappradar_model.get_top_nfts crypto_disc_dappradar_view.display_top_nfts
101 crypto.disc.trending crypto_disc_pycoingecko_model.get_trending_coins crypto_disc_pycoingecko_view.display_trending
102 crypto.find crypto_models.find
103 crypto.load crypto_helpers.load
104 crypto.nft.collections crypto_nft_pricefloor_model.get_collections crypto_nft_pricefloor_view.display_collections
105 crypto.nft.fp crypto_nft_pricefloor_model.get_floor_price crypto_nft_pricefloor_view.display_floor_price
106 crypto.nft.stats crypto_nft_opensea_model.get_collection_stats crypto_nft_opensea_view.display_collection_stats
107 crypto.onchain.baas crypto_onchain_bitquery_model.get_spread_for_crypto_pair crypto_onchain_bitquery_view.display_spread_for_crypto_pair
108 crypto.onchain.balance crypto_onchain_ethplorer_model.get_address_info crypto_onchain_ethplorer_view.display_address_info
109 crypto.onchain.btc_supply crypto_onchain_blockchain_model.get_btc_circulating_supply crypto_onchain_blockchain_view.display_btc_circulating_supply
110 crypto.onchain.btc_transac crypto_onchain_blockchain_model.get_btc_confirmed_transactions crypto_onchain_blockchain_view.display_btc_confirmed_transactions
111 crypto.onchain.btcsingleblock crypto_onchain_blockchain_model.get_btc_single_block crypto_onchain_blockchain_view.display_btc_single_block
112 crypto.onchain.dex_trades_monthly crypto_onchain_bitquery_model.get_dex_trades_monthly
113 crypto.onchain.dvcp crypto_onchain_bitquery_model.get_daily_dex_volume_for_given_pair crypto_onchain_bitquery_view.display_daily_volume_for_given_pair
114 crypto.onchain.erc20_tokens crypto_onchain_bitquery_model.get_erc20_tokens
115 crypto.onchain.gwei crypto_onchain_ethgasstation_model.get_gwei_fees crypto_onchain_ethgasstation_view.display_gwei_fees
116 crypto.onchain.hist crypto_onchain_ethplorer_model.get_address_history crypto_onchain_ethplorer_view.display_address_history
117 crypto.onchain.holders crypto_onchain_ethplorer_model.get_top_token_holders crypto_onchain_ethplorer_view.display_top_token_holders
118 crypto.onchain.hr crypto_dd_glassnode_model.get_hashrate crypto_dd_glassnode_view.display_hashrate
119 crypto.onchain.info crypto_onchain_ethplorer_model.get_token_info crypto_onchain_ethplorer_view.display_token_info
120 crypto.onchain.lt crypto_onchain_bitquery_model.get_dex_trades_by_exchange crypto_onchain_bitquery_view.display_dex_trades
121 crypto.onchain.prices crypto_onchain_ethplorer_model.get_token_historical_price crypto_onchain_ethplorer_view.display_token_historical_prices
122 crypto.onchain.query_graph crypto_onchain_bitquery_model.query_graph
123 crypto.onchain.th crypto_onchain_ethplorer_model.get_token_history crypto_onchain_ethplorer_view.display_token_history
124 crypto.onchain.token_decimals crypto_onchain_ethplorer_model.get_token_decimals
125 crypto.onchain.top crypto_onchain_ethplorer_model.get_top_tokens crypto_onchain_ethplorer_view.display_top_tokens
126 crypto.onchain.ttcp crypto_onchain_bitquery_model.get_most_traded_pairs crypto_onchain_bitquery_view.display_most_traded_pairs
127 crypto.onchain.tv crypto_onchain_bitquery_model.get_token_volume_on_dexes crypto_onchain_bitquery_view.display_dex_volume_for_token
128 crypto.onchain.tx crypto_onchain_ethplorer_model.get_tx_info crypto_onchain_ethplorer_view.display_tx_info
129 crypto.onchain.ueat crypto_onchain_bitquery_model.get_ethereum_unique_senders crypto_onchain_bitquery_view.display_ethereum_unique_senders
130 crypto.onchain.whales crypto_onchain_whale_alert_model.get_whales_transactions crypto_onchain_whale_alert_view.display_whales_transactions
131 crypto.ov.altindex crypto_ov_blockchaincenter_model.get_altcoin_index crypto_ov_blockchaincenter_view.display_altcoin_index
132 crypto.ov.btcrb crypto_ov_glassnode_model.get_btc_rainbow crypto_ov_glassnode_view.display_btc_rainbow
133 crypto.ov.categories crypto_ov_pycoingecko_model.get_top_crypto_categories crypto_ov_pycoingecko_view.display_categories
134 crypto.ov.cbpairs crypto_ov_coinbase_model.get_trading_pairs crypto_ov_coinbase_view.display_trading_pairs
135 crypto.ov.coin_list crypto_dd_coinpaprika_model.get_coin_list
136 crypto.ov.contracts crypto_ov_coinpaprika_model.get_contract_platform crypto_ov_coinpaprika_view.display_contracts
137 crypto.ov.cr crypto_ov_loanscan_model.get_rates crypto_ov_loanscan_view.display_crypto_rates
138 crypto.ov.crypto_hack crypto_ov_rekt_model.get_crypto_hack
139 crypto.ov.crypto_hack_slugs crypto_ov_rekt_model.get_crypto_hack_slugs
140 crypto.ov.crypto_hacks crypto_ov_rekt_model.get_crypto_hacks crypto_ov_rekt_view.display_crypto_hacks
141 crypto.ov.defi crypto_ov_pycoingecko_model.get_global_defi_info crypto_ov_pycoingecko_view.display_global_defi_info
142 crypto.ov.derivatives crypto_ov_pycoingecko_model.get_derivatives crypto_ov_pycoingecko_view.display_derivatives
143 crypto.ov.ewf crypto_ov_withdrawalfees_model.get_overall_exchange_withdrawal_fees crypto_ov_withdrawalfees_view.display_overall_exchange_withdrawal_fees
144 crypto.ov.exchanges crypto_ov_sdk_helpers.exchanges
145 crypto.ov.exmarkets crypto_ov_coinpaprika_model.get_exchanges_market crypto_ov_coinpaprika_view.display_exchange_markets
146 crypto.ov.exrates crypto_ov_pycoingecko_model.get_exchange_rates crypto_ov_pycoingecko_view.display_exchange_rates
147 crypto.ov.globe crypto_ov_sdk_helpers.globe
148 crypto.ov.hm crypto_disc_pycoingecko_model.get_coins crypto_ov_pycoingecko_view.display_crypto_heatmap
149 crypto.ov.hold crypto_ov_pycoingecko_model.get_holdings_overview crypto_ov_pycoingecko_view.display_holdings_overview
150 crypto.ov.indexes crypto_ov_pycoingecko_model.get_indexes crypto_ov_pycoingecko_view.display_indexes
151 crypto.ov.info crypto_ov_coinpaprika_model.get_coins_info crypto_ov_coinpaprika_view.display_all_coins_info
152 crypto.ov.markets crypto_ov_coinpaprika_model.get_coins_market_info crypto_ov_coinpaprika_view.display_all_coins_market_info
153 crypto.ov.news crypto_ov_cryptopanic_model.get_news crypto_ov_cryptopanic_view.display_news
154 crypto.ov.platforms crypto_ov_coinpaprika_model.get_all_contract_platforms crypto_ov_coinpaprika_view.display_all_platforms
155 crypto.ov.products crypto_ov_pycoingecko_model.get_finance_products crypto_ov_pycoingecko_view.display_products
156 crypto.ov.stables crypto_ov_pycoingecko_model.get_stable_coins crypto_ov_pycoingecko_view.display_stablecoins
157 crypto.ov.wf crypto_ov_withdrawalfees_model.get_overall_withdrawal_fees crypto_ov_withdrawalfees_view.display_overall_withdrawal_fees
158 crypto.ov.wfpe crypto_ov_withdrawalfees_model.get_crypto_withdrawal_fees crypto_ov_withdrawalfees_view.display_crypto_withdrawal_fees
159 crypto.price crypto_pyth_model.get_price
160 crypto.tools.apy crypto_tools_model.calculate_apy crypto_tools_view.display_apy
161 crypto.tools.il crypto_tools_model.calculate_il crypto_tools_view.display_il
162 econometrics.bgod econometrics_regression_model.get_bgod econometrics_regression_view.display_bgod
163 econometrics.bols econometrics_regression_model.get_bols
164 econometrics.bpag econometrics_regression_model.get_bpag econometrics_regression_view.display_bpag
165 econometrics.clean econometrics_model.clean
166 econometrics.coint econometrics_model.get_coint_df econometrics_view.display_cointegration_test
167 econometrics.comparison econometrics_regression_model.get_comparison
168 econometrics.dwat econometrics_regression_model.get_dwat econometrics_regression_view.display_dwat
169 econometrics.fdols econometrics_regression_model.get_fdols
170 econometrics.fe econometrics_regression_model.get_fe
171 econometrics.get_regression_data econometrics_regression_model.get_regression_data
172 econometrics.granger econometrics_model.get_granger_causality econometrics_view.display_granger
173 econometrics.load common_model.load
174 econometrics.norm econometrics_model.get_normality econometrics_view.display_norm
175 econometrics.ols econometrics_regression_model.get_ols
176 econometrics.options econometrics_model.get_options econometrics_view.show_options
177 econometrics.panel econometrics_regression_model.get_regressions_results econometrics_regression_view.display_panel
178 econometrics.pols econometrics_regression_model.get_pols
179 econometrics.re econometrics_regression_model.get_re
180 econometrics.root econometrics_model.get_root econometrics_view.display_root
181 economy.available_indices economy_yfinance_model.get_available_indices
182 economy.bigmac economy_nasdaq_model.get_big_mac_indices economy_nasdaq_view.display_big_mac_index
183 economy.country_codes economy_nasdaq_model.get_country_codes
184 economy.currencies economy_wsj_model.global_currencies
185 economy.events economy_nasdaq_model.get_economic_calendar
186 economy.fred economy_fred_model.get_aggregated_series_data economy_fred_view.display_fred_series
187 economy.fred_ids economy_fred_model.get_series_ids
188 economy.fred_notes economy_fred_model.get_series_notes
189 economy.future economy_finviz_model.get_futures
190 economy.futures economy_sdk_helpers.futures
191 economy.get_groups economy_finviz_model.get_groups
192 economy.glbonds economy_wsj_model.global_bonds
193 economy.index economy_yfinance_model.get_indices economy_yfinance_view.show_indices
194 economy.indices economy_wsj_model.us_indices
195 economy.macro economy_econdb_model.get_aggregated_macro_data economy_econdb_view.show_macro_data
196 economy.macro_countries economy_econdb_model.get_macro_countries
197 economy.macro_parameters economy_econdb_model.get_macro_parameters
198 economy.overview economy_wsj_model.market_overview
199 economy.perfmap economy_finviz_model.get_performance_map
200 economy.performance economy_finviz_model.get_performance_data
201 economy.rtps economy_alphavantage_model.get_sector_data economy_alphavantage_view.realtime_performance_sector
202 economy.search_index economy_yfinance_model.get_search_indices
203 economy.spectrum economy_finviz_view.display_spectrum
204 economy.treasury economy_econdb_model.get_treasuries economy_econdb_view.show_treasuries
205 economy.treasury_maturities economy_econdb_model.get_treasury_maturities
206 economy.usbonds economy_wsj_model.us_bonds
207 economy.valuation economy_finviz_model.get_valuation_data
208 economy.ycrv economy_fred_model.get_yield_curve economy_fred_view.display_yield_curve
209 etf.candle stocks_helper.display_candle
210 etf.compare etf_stockanalysis_model.compare_etfs
211 etf.disc.mover etf_disc_wsj_model.etf_movers
212 etf.etf_by_category etf_financedatabase_model.get_etfs_by_category
213 etf.etf_by_name etf_stockanalysis_model.get_etfs_by_name
214 etf.holdings etf_stockanalysis_model.get_etf_holdings
215 etf.ld etf_financedatabase_model.get_etfs_by_description
216 etf.ln etf_financedatabase_model.get_etfs_by_name
217 etf.load stocks_helper.load
218 etf.news common_newsapi_model.get_news common_newsapi_view.display_news
219 etf.overview etf_stockanalysis_model.get_etf_overview
220 etf.scr.screen etf_scr_model.etf_screener etf_scr_view.view_screener
221 etf.symbols etf_stockanalysis_model.get_all_names_symbols
222 etf.weights etf_fmp_model.get_etf_sector_weightings
223 forex.candle forex_helper.display_candle
224 forex.fwd forex_fxempire_model.get_forward_rates
225 forex.get_currency_list forex_av_model.get_currency_list
226 forex.load forex_helper.load
227 forex.oanda.calendar forex_oanda_model.get_calendar_request forex_oanda_view.calendar
228 forex.oanda.cancel forex_oanda_model.cancel_pending_order_request forex_oanda_view.cancel_pending_order
229 forex.oanda.candles forex_oanda_model.get_candles_dataframe forex_oanda_view.show_candles
230 forex.oanda.close forex_oanda_model.close_trades_request forex_oanda_view.close_trade
231 forex.oanda.listorders forex_oanda_model.order_history_request forex_oanda_view.list_orders
232 forex.oanda.openpositions forex_oanda_model.open_positions_request forex_oanda_view.get_open_positions
233 forex.oanda.opentrades forex_oanda_model.open_trades_request forex_oanda_view.get_open_trades
234 forex.oanda.order forex_oanda_model.create_order_request forex_oanda_view.create_order
235 forex.oanda.orderbook forex_oanda_model.orderbook_plot_data_request forex_oanda_view.get_order_book
236 forex.oanda.pending forex_oanda_model.pending_orders_request forex_oanda_view.get_pending_orders
237 forex.oanda.positionbook forex_oanda_model.positionbook_plot_data_request forex_oanda_view.get_position_book
238 forex.oanda.price forex_oanda_model.fx_price_request forex_oanda_view.get_fx_price
239 forex.oanda.summary forex_oanda_model.account_summary_request forex_oanda_view.get_account_summary
240 forex.quote forex_sdk_helpers.quote
241 futures.curve futures_yfinance_model.get_curve_futures futures_yfinance_view.display_curve
242 futures.historical futures_yfinance_model.get_historical_futures futures_yfinance_view.display_historical
243 futures.search futures_yfinance_model.get_search_futures
244 keys.av keys_model.set_av_key
245 keys.binance keys_model.set_binance_key
246 keys.bitquery keys_model.set_bitquery_key
247 keys.cmc keys_model.set_cmc_key
248 keys.coinbase keys_model.set_coinbase_key
249 keys.coinglass keys_model.set_coinglass_key
250 keys.cpanic keys_model.set_cpanic_key
251 keys.degiro keys_model.set_degiro_key
252 keys.eodhd keys_model.set_eodhd_key
253 keys.ethplorer keys_model.set_ethplorer_key
254 keys.finnhub keys_model.set_finnhub_key
255 keys.fmp keys_model.set_fmp_key
256 keys.fred keys_model.set_fred_key
257 keys.get_keys_info keys_model.get_keys_info
258 keys.github keys_model.set_github_key
259 keys.glassnode keys_model.set_glassnode_key
260 keys.messari keys_model.set_messari_key
261 keys.mykeys keys_model.get_keys
262 keys.news keys_model.set_news_key
263 keys.oanda keys_model.set_oanda_key
264 keys.openbb keys_model.set_openbb_personal_access_token
265 keys.polygon keys_model.set_polygon_key
266 keys.quandl keys_model.set_quandl_key
267 keys.reddit keys_model.set_reddit_key
268 keys.rh keys_model.set_rh_key
269 keys.santiment keys_model.set_santiment_key
270 keys.set_keys keys_model.set_keys
271 keys.shroom keys_model.set_shroom_key
272 keys.smartstake keys_model.set_smartstake_key
273 keys.stocksera keys_model.set_stocksera_key
274 keys.tokenterminal keys_model.set_tokenterminal_key
275 keys.tradier keys_model.set_tradier_key
276 keys.twitter keys_model.set_twitter_key
277 keys.walert keys_model.set_walert_key
278 login sdk_session.login
279 logout sdk_session.logout
280 news common_feedparser_model.get_news
281 portfolio.alloc.assets portfolio_model.get_assets_allocation
282 portfolio.alloc.countries portfolio_model.get_countries_allocation
283 portfolio.alloc.regions portfolio_model.get_regions_allocation
284 portfolio.alloc.sectors portfolio_model.get_sectors_allocation
285 portfolio.bench portfolio_model.set_benchmark
286 portfolio.distr portfolio_model.get_distribution_returns portfolio_view.display_distribution_returns
287 portfolio.dret portfolio_model.get_daily_returns portfolio_view.display_daily_returns
288 portfolio.es portfolio_model.get_es
289 portfolio.holdp portfolio_model.get_holdings_percentage portfolio_view.display_holdings_percentage
290 portfolio.holdv portfolio_model.get_holdings_value portfolio_view.display_holdings_value
291 portfolio.load portfolio_model.generate_portfolio
292 portfolio.maxdd portfolio_model.get_maximum_drawdown portfolio_view.display_maximum_drawdown
293 portfolio.metric.calmar portfolio_model.get_calmar_ratio
294 portfolio.metric.commonsense portfolio_model.get_common_sense_ratio
295 portfolio.metric.gaintopain portfolio_model.get_gaintopain_ratio
296 portfolio.metric.information portfolio_model.get_information_ratio
297 portfolio.metric.jensens portfolio_model.get_jensens_alpha
298 portfolio.metric.kelly portfolio_model.get_kelly_criterion
299 portfolio.metric.kurtosis portfolio_model.get_kurtosis
300 portfolio.metric.maxdrawdown portfolio_model.get_maximum_drawdown_ratio
301 portfolio.metric.payoff portfolio_model.get_payoff_ratio
302 portfolio.metric.profitfactor portfolio_model.get_profit_factor
303 portfolio.metric.rsquare portfolio_model.get_r2_score
304 portfolio.metric.sharpe portfolio_model.get_sharpe_ratio
305 portfolio.metric.skew portfolio_model.get_skewness
306 portfolio.metric.sortino portfolio_model.get_sortino_ratio
307 portfolio.metric.tail portfolio_model.get_tail_ratio
308 portfolio.metric.trackerr portfolio_model.get_tracking_error
309 portfolio.metric.volatility portfolio_model.get_volatility
310 portfolio.mret portfolio_model.get_monthly_returns portfolio_view.display_monthly_returns
311 portfolio.om portfolio_model.get_omega portfolio_view.display_omega
312 portfolio.perf portfolio_model.get_performance_vs_benchmark
313 portfolio.rbeta portfolio_model.get_rolling_beta portfolio_view.display_rolling_beta
314 portfolio.rsharpe portfolio_model.get_rolling_sharpe portfolio_view.display_rolling_sharpe
315 portfolio.rsort portfolio_model.get_rolling_sortino portfolio_view.display_rolling_sortino
316 portfolio.rvol portfolio_model.get_rolling_volatility portfolio_view.display_rolling_volatility
317 portfolio.show portfolio_model.get_transactions
318 portfolio.summary portfolio_model.get_summary
319 portfolio.var portfolio_model.get_var
320 portfolio.yret portfolio_model.get_yearly_returns portfolio_view.display_yearly_returns
321 qa.acf common_qa_view.display_acf
322 qa.bw common_qa_view.display_bw
323 qa.calculate_adjusted_var common_qa_model.calculate_adjusted_var
324 qa.cdf common_qa_view.display_cdf
325 qa.cusum common_qa_view.display_cusum
326 qa.decompose common_qa_model.get_seasonal_decomposition
327 qa.es common_qa_model.get_es common_qa_view.display_es
328 qa.hist common_qa_view.display_hist
329 qa.kurtosis common_qa_rolling_model.get_kurtosis common_qa_rolling_view.display_kurtosis
330 qa.line common_qa_view.display_line
331 qa.normality common_qa_model.get_normality common_qa_view.display_normality
332 qa.omega common_qa_model.get_omega common_qa_view.display_omega
333 qa.qqplot common_qa_view.display_qqplot
334 qa.quantile common_qa_rolling_model.get_quantile common_qa_rolling_view.display_quantile
335 qa.rolling common_qa_rolling_model.get_rolling_avg common_qa_rolling_view.display_mean_std
336 qa.sharpe common_qa_model.get_sharpe common_qa_view.display_sharpe
337 qa.skew common_qa_rolling_model.get_skew common_qa_rolling_view.display_skew
338 qa.sortino common_qa_model.get_sortino common_qa_view.display_sortino
339 qa.spread common_qa_rolling_model.get_spread common_qa_rolling_view.display_spread
340 qa.summary common_qa_model.get_summary common_qa_view.display_summary
341 qa.unitroot common_qa_model.get_unitroot common_qa_view.display_unitroot
342 qa.var common_qa_model.get_var common_qa_view.display_var
343 stocks.ba.bullbear stocks_ba_stocktwits_model.get_bullbear
344 stocks.ba.cnews stocks_ba_finnhub_model.get_company_news
345 stocks.ba.getdd stocks_ba_reddit_model.get_due_dilligence
346 stocks.ba.headlines stocks_ba_finbrain_model.get_sentiment stocks_ba_finbrain_view.display_sentiment_analysis
347 stocks.ba.infer stocks_ba_twitter_model.load_analyze_tweets stocks_ba_twitter_view.display_inference
348 stocks.ba.mentions stocks_ba_google_model.get_mentions stocks_ba_google_view.display_mentions
349 stocks.ba.messages stocks_ba_stocktwits_model.get_messages
350 stocks.ba.popular stocks_ba_reddit_model.get_popular_tickers
351 stocks.ba.queries stocks_ba_google_model.get_queries
352 stocks.ba.redditsent stocks_ba_reddit_model.get_posts_about
353 stocks.ba.regions stocks_ba_google_model.get_regions stocks_ba_google_view.display_regions
354 stocks.ba.rise stocks_ba_google_model.get_rise
355 stocks.ba.sentiment stocks_ba_twitter_model.get_sentiment stocks_ba_twitter_view.display_sentiment
356 stocks.ba.snews stocks_ba_finnhub_model.get_headlines_sentiment stocks_ba_finnhub_view.display_stock_price_headlines_sentiment
357 stocks.ba.spac stocks_ba_reddit_model.get_spac
358 stocks.ba.spacc stocks_ba_reddit_model.get_spac_community
359 stocks.ba.stalker stocks_ba_stocktwits_model.get_stalker
360 stocks.ba.text_sent stocks_ba_reddit_model.get_sentiment
361 stocks.ba.trending stocks_ba_stocktwits_model.get_trending
362 stocks.ba.watchlist stocks_ba_reddit_model.get_watchlists
363 stocks.ba.wsb stocks_ba_reddit_model.get_wsb_community
364 stocks.ca.balance stocks_ca_marketwatch_model.get_balance_comparison
365 stocks.ca.cashflow stocks_ca_marketwatch_model.get_cashflow_comparison
366 stocks.ca.hcorr stocks_ca_yahoo_finance_model.get_correlation stocks_ca_yahoo_finance_view.display_correlation
367 stocks.ca.hist stocks_ca_yahoo_finance_model.get_historical stocks_ca_yahoo_finance_view.display_historical
368 stocks.ca.income stocks_ca_marketwatch_model.get_income_comparison stocks_ca_marketwatch_view.display_income_comparison
369 stocks.ca.scorr stocks_ca_finbrain_model.get_sentiment_correlation stocks_ca_finbrain_view.display_sentiment_correlation
370 stocks.ca.screener stocks_ca_finviz_compare_model.get_comparison_data
371 stocks.ca.sentiment stocks_ca_finbrain_model.get_sentiments stocks_ca_finbrain_view.display_sentiment_compare
372 stocks.ca.similar stocks_ca_sdk_helpers.get_similar
373 stocks.ca.volume stocks_ca_yahoo_finance_model.get_volume stocks_ca_yahoo_finance_view.display_volume
374 stocks.candle stocks_helper.display_candle
375 stocks.disc.active stocks_disc_yahoofinance_model.get_active
376 stocks.disc.arkord stocks_disc_ark_model.get_ark_orders
377 stocks.disc.asc stocks_disc_yahoofinance_model.get_asc
378 stocks.disc.dividends stocks_disc_nasdaq_model.get_dividend_cal
379 stocks.disc.filings stocks_fa_fmp_model.get_filings stocks_disc_fmp_view.display_filings
380 stocks.disc.fipo stocks_disc_finnhub_model.get_future_ipo
381 stocks.disc.gainers stocks_disc_yahoofinance_model.get_gainers
382 stocks.disc.gtech stocks_disc_yahoofinance_model.get_gtech
383 stocks.disc.hotpenny stocks_disc_shortinterest_model.get_today_hot_penny_stocks
384 stocks.disc.ipo stocks_disc_finnhub_model.get_ipo_calendar
385 stocks.disc.losers stocks_disc_yahoofinance_model.get_losers
386 stocks.disc.lowfloat stocks_disc_shortinterest_model.get_low_float
387 stocks.disc.news stocks_disc_seeking_alpha_model.get_news
388 stocks.disc.pipo stocks_disc_finnhub_model.get_past_ipo
389 stocks.disc.rtat stocks_disc_nasdaq_model.get_retail_tickers
390 stocks.disc.trending stocks_disc_seeking_alpha_model.get_trending_list
391 stocks.disc.ugs stocks_disc_yahoofinance_model.get_ugs
392 stocks.disc.ulc stocks_disc_yahoofinance_model.get_ulc
393 stocks.disc.upcoming stocks_disc_seeking_alpha_model.get_next_earnings
394 stocks.dps.ctb stocks_dps_ibkr_model.get_cost_to_borrow
395 stocks.dps.dpotc stocks_dps_finra_model.getTickerFINRAdata stocks_dps_finra_view.darkpool_ats_otc
396 stocks.dps.ftd stocks_dps_sec_model.get_fails_to_deliver stocks_dps_sec_view.fails_to_deliver
397 stocks.dps.hsi stocks_dps_shortinterest_model.get_high_short_interest
398 stocks.dps.pos stocks_dps_stockgrid_model.get_dark_pool_short_positions
399 stocks.dps.prom stocks_dps_finra_model.getATSdata stocks_dps_finra_view.darkpool_otc
400 stocks.dps.psi_q stocks_dps_quandl_model.get_short_interest stocks_dps_quandl_view.short_interest
401 stocks.dps.psi_sg stocks_dps_stockgrid_model.get_short_interest_volume stocks_dps_stockgrid_view.short_interest_volume
402 stocks.dps.shorted stocks_dps_yahoofinance_model.get_most_shorted
403 stocks.dps.sidtc stocks_dps_stockgrid_model.get_short_interest_days_to_cover
404 stocks.dps.spos stocks_dps_stockgrid_model.get_net_short_position stocks_dps_stockgrid_view.net_short_position
405 stocks.fa.analysis stocks_fa_eclect_us_model.get_filings_analysis
406 stocks.fa.analyst stocks_fa_finviz_model.get_analyst_data
407 stocks.fa.balance stocks_fa_sdk_helpers.get_balance_sheet
408 stocks.fa.cal stocks_fa_yahoo_finance_model.get_calendar_earnings
409 stocks.fa.cash stocks_fa_sdk_helpers.get_cash_flow
410 stocks.fa.customer stocks_fa_csimarket_model.get_customers
411 stocks.fa.data stocks_fa_finviz_model.get_data
412 stocks.fa.dcf stocks_fa_fmp_model.get_dcf
413 stocks.fa.dcfc stocks_fa_fmp_model.get_dcf
414 stocks.fa.divs stocks_fa_yahoo_finance_model.get_dividends stocks_fa_yahoo_finance_view.display_dividends
415 stocks.fa.dupont stocks_fa_av_model.get_dupont
416 stocks.fa.earnings stocks_fa_sdk_helpers.earnings
417 stocks.fa.enterprise stocks_fa_fmp_model.get_enterprise
418 stocks.fa.epsfc stocks_fa_seeking_alpha_model.get_estimates_eps
419 stocks.fa.est stocks_fa_business_insider_model.get_estimates
420 stocks.fa.fama_coe stocks_fa_dcf_model.get_fama_coe
421 stocks.fa.fama_raw stocks_fa_dcf_model.get_fama_raw
422 stocks.fa.fraud stocks_fa_av_model.get_fraud_ratios
423 stocks.fa.growth stocks_fa_fmp_model.get_financial_growth
424 stocks.fa.historical_5 stocks_fa_dcf_model.get_historical_5
425 stocks.fa.income stocks_fa_sdk_helpers.get_income_statement
426 stocks.fa.info stocks_fa_yahoo_finance_model.get_info
427 stocks.fa.key stocks_fa_av_model.get_key_metrics
428 stocks.fa.metrics stocks_fa_fmp_model.get_key_metrics
429 stocks.fa.mgmt stocks_fa_business_insider_model.get_management
430 stocks.fa.mktcap stocks_fa_yahoo_finance_model.get_mktcap stocks_fa_yahoo_finance_view.display_mktcap
431 stocks.fa.news stocks_fa_finviz_model.get_news
432 stocks.fa.overview stocks_fa_av_model.get_overview
433 stocks.fa.profile stocks_fa_fmp_model.get_profile
434 stocks.fa.pt stocks_fa_business_insider_model.get_price_target_from_analysts stocks_fa_business_insider_view.price_target_from_analysts
435 stocks.fa.rating stocks_fa_fmp_model.get_rating
436 stocks.fa.ratios stocks_fa_fmp_model.get_key_ratios
437 stocks.fa.revfc stocks_fa_seeking_alpha_model.get_estimates_rev
438 stocks.fa.rot stocks_fa_finnhub_model.get_rating_over_time stocks_fa_finnhub_view.rating_over_time
439 stocks.fa.score stocks_fa_fmp_model.get_score
440 stocks.fa.sec stocks_fa_marketwatch_model.get_sec_filings
441 stocks.fa.sec_fmp stocks_fa_fmp_model.get_filings stocks_fa_fmp_view.display_filings
442 stocks.fa.shrs stocks_fa_yahoo_finance_model.get_shareholders
443 stocks.fa.similar_dfs stocks_fa_dcf_model.get_similar_dfs
444 stocks.fa.splits stocks_fa_yahoo_finance_model.get_splits stocks_fa_yahoo_finance_view.display_splits
445 stocks.fa.supplier stocks_fa_csimarket_model.get_suppliers
446 stocks.gov.contracts stocks_gov_quiverquant_model.get_contracts stocks_gov_quiverquant_view.display_contracts
447 stocks.gov.government_trading stocks_gov_quiverquant_model.get_government_trading
448 stocks.gov.gtrades stocks_gov_quiverquant_model.get_cleaned_government_trading stocks_gov_quiverquant_view.display_government_trading
449 stocks.gov.histcont stocks_gov_quiverquant_model.get_hist_contracts stocks_gov_quiverquant_view.display_hist_contracts
450 stocks.gov.lastcontracts stocks_gov_quiverquant_model.get_last_contracts stocks_gov_quiverquant_view.display_last_contracts
451 stocks.gov.lasttrades stocks_gov_quiverquant_model.get_last_government
452 stocks.gov.lobbying stocks_gov_quiverquant_model.get_lobbying
453 stocks.gov.qtrcontracts stocks_gov_quiverquant_model.get_qtr_contracts stocks_gov_quiverquant_view.display_qtr_contracts
454 stocks.gov.topbuys stocks_gov_quiverquant_model.get_government_buys stocks_gov_quiverquant_view.display_government_buys
455 stocks.gov.toplobbying stocks_gov_quiverquant_model.get_top_lobbying stocks_gov_quiverquant_view.display_top_lobbying
456 stocks.gov.topsells stocks_gov_quiverquant_model.get_government_sells stocks_gov_quiverquant_view.display_government_sells
457 stocks.ins.act stocks_insider_businessinsider_model.get_insider_activity stocks_insider_businessinsider_view.insider_activity
458 stocks.ins.blcp stocks_insider_sdk_helper.blcp
459 stocks.ins.blcs stocks_insider_sdk_helper.blcs
460 stocks.ins.blip stocks_insider_sdk_helper.blip
461 stocks.ins.blis stocks_insider_sdk_helper.blis
462 stocks.ins.blop stocks_insider_sdk_helper.blop
463 stocks.ins.blos stocks_insider_sdk_helper.blos
464 stocks.ins.filter stocks_insider_sdk_helper.insider_filter
465 stocks.ins.lcb stocks_insider_sdk_helper.lcb
466 stocks.ins.lins stocks_insider_finviz_model.get_last_insider_activity stocks_insider_finviz_view.last_insider_activity
467 stocks.ins.lip stocks_insider_sdk_helper.lip
468 stocks.ins.lis stocks_insider_sdk_helper.lis
469 stocks.ins.lit stocks_insider_sdk_helper.lit
470 stocks.ins.lpsb stocks_insider_sdk_helper.lpsb
471 stocks.ins.print_insider_data stocks_insider_openinsider_model.get_print_insider_data stocks_insider_openinsider_view.print_insider_data
472 stocks.ins.stats stocks_insider_sdk_helper.stats
473 stocks.load stocks_helper.load
474 stocks.options.chains stocks_options_sdk_helper.get_full_option_chain
475 stocks.options.dte stocks_options_yfinance_model.get_dte
476 stocks.options.eodchain stocks_options_intrinio_model.get_full_chain_eod
477 stocks.options.expirations stocks_options_sdk_helper.get_option_expirations
478 stocks.options.generate_data stocks_options_yfinance_model.generate_data
479 stocks.options.grhist stocks_options_screen_syncretism_model.get_historical_greeks stocks_options_screen_syncretism_view.view_historical_greeks
480 stocks.options.hist stocks_options_sdk_helper.hist
481 stocks.options.info stocks_options_barchart_model.get_options_info stocks_options_barchart_view.print_options_data
482 stocks.options.last_price stocks_options_tradier_model.get_last_price
483 stocks.options.oi stocks_options_view.plot_oi
484 stocks.options.pcr stocks_options_alphaquery_model.get_put_call_ratio stocks_options_alphaquery_view.display_put_call_ratio
485 stocks.options.price stocks_options_sdk_helper.get_option_current_price
486 stocks.options.screen.check_presets stocks_options_screen_syncretism_model.check_presets
487 stocks.options.screen.screener_output stocks_options_screen_syncretism_model.get_screener_output stocks_options_screen_syncretism_view.view_screener_output
488 stocks.options.unu stocks_options_fdscanner_model.unusual_options stocks_options_fdscanner_view.display_options
489 stocks.options.voi stocks_options_view.plot_voi
490 stocks.options.vol stocks_options_view.plot_vol
491 stocks.options.vsurf stocks_options_yfinance_model.get_iv_surface stocks_options_yfinance_view.display_vol_surface
492 stocks.process_candle stocks_helper.process_candle
493 stocks.qa.beta stocks_qa_beta_model.beta_model stocks_qa_beta_view.beta_view
494 stocks.qa.capm stocks_qa_factors_model.capm_information
495 stocks.qa.fama_raw stocks_qa_factors_model.get_fama_raw
496 stocks.qa.historical_5 stocks_qa_factors_model.get_historical_5
497 stocks.quote stocks_model.get_quote
498 stocks.screener.arktrades stocks_screener_ark_model.get_ark_trades_by_ticker
499 stocks.screener.historical stocks_screener_yahoofinance_model.historical stocks_screener_yahoofinance_view.historical
500 stocks.screener.screener_data stocks_screener_finviz_model.get_screener_data stocks_screener_finviz_view.screener
501 stocks.search stocks_helper.search
502 stocks.sia.countries stocks_sia_financedatabase_model.get_countries
503 stocks.sia.cpci stocks_sia_financedatabase_model.get_companies_per_country_in_industry stocks_sia_financedatabase_view.display_companies_per_country_in_industry
504 stocks.sia.cpcs stocks_sia_financedatabase_model.get_companies_per_country_in_sector stocks_sia_financedatabase_view.display_companies_per_country_in_sector
505 stocks.sia.cpic stocks_sia_financedatabase_model.get_companies_per_industry_in_country stocks_sia_financedatabase_view.display_companies_per_industry_in_country
506 stocks.sia.cpis stocks_sia_financedatabase_model.get_companies_per_industry_in_sector stocks_sia_financedatabase_view.display_companies_per_industry_in_sector
507 stocks.sia.cps stocks_sia_financedatabase_model.get_companies_per_sector_in_country stocks_sia_financedatabase_view.display_companies_per_sector_in_country
508 stocks.sia.filter_stocks stocks_sia_financedatabase_model.filter_stocks
509 stocks.sia.industries stocks_sia_financedatabase_model.get_industries
510 stocks.sia.maketcap stocks_sia_financedatabase_model.get_marketcap
511 stocks.sia.marketcap stocks_sia_financedatabase_model.get_marketcap
512 stocks.sia.sectors stocks_sia_financedatabase_model.get_sectors
513 stocks.sia.stocks_data stocks_sia_stockanalysis_model.get_stocks_data
514 stocks.ta.recom stocks_ta_tradingview_model.get_tradingview_recommendation stocks_ta_tradingview_view.print_recommendation
515 stocks.ta.rsp stocks_ta_rsp_model.get_rsp stocks_ta_rsp_view.display_rsp
516 stocks.ta.summary stocks_ta_finbrain_model.get_technical_summary_report stocks_ta_finbrain_view.technical_summary_report
517 stocks.ta.view stocks_ta_finviz_model.get_finviz_image stocks_ta_finviz_view.view
518 stocks.th.all stocks_th_bursa_model.get_all stocks_th_bursa_view.display_all
519 stocks.th.check_if_open stocks_th_bursa_model.check_if_open
520 stocks.th.closed stocks_th_bursa_model.get_closed stocks_th_bursa_view.display_closed
521 stocks.th.exchange stocks_th_bursa_model.get_bursa stocks_th_bursa_view.display_exchange
522 stocks.th.open stocks_th_bursa_model.get_open stocks_th_bursa_view.display_open
523 stocks.tob stocks_cboe_model.get_top_of_book
524 ta.ad common_ta_volume_model.ad common_ta_volume_view.display_ad
525 ta.adosc common_ta_volume_model.adosc common_ta_volume_view.display_adosc
526 ta.adx common_ta_trend_indicators_model.adx common_ta_trend_indicators_view.display_adx
527 ta.aroon common_ta_trend_indicators_model.aroon common_ta_trend_indicators_view.display_aroon
528 ta.atr common_ta_volatility_model.atr common_ta_volatility_view.display_atr
529 ta.bbands common_ta_volatility_model.bbands common_ta_volatility_view.display_bbands
530 ta.cci common_ta_momentum_model.cci common_ta_momentum_view.display_cci
531 ta.cg common_ta_momentum_model.cg common_ta_momentum_view.display_cg
532 ta.clenow common_ta_momentum_model.clenow_momentum common_ta_momentum_view.display_clenow_momentum
533 ta.demark common_ta_momentum_model.demark_seq common_ta_momentum_view.display_demark
534 ta.donchian common_ta_volatility_model.donchian common_ta_volatility_view.display_donchian
535 ta.ema common_ta_overlap_model.ema
536 ta.fib common_ta_custom_indicators_model.calculate_fib_levels common_ta_custom_indicators_view.fibonacci_retracement
537 ta.fisher common_ta_momentum_model.fisher common_ta_momentum_view.display_fisher
538 ta.hma common_ta_overlap_model.hma
539 ta.kc common_ta_volatility_model.kc common_ta_volatility_view.view_kc
540 ta.ma common_ta_overlap_view.view_ma common_ta_overlap_view.view_ma
541 ta.macd common_ta_momentum_model.macd common_ta_momentum_view.display_macd
542 ta.obv common_ta_volume_model.obv common_ta_volume_view.display_obv
543 ta.rsi common_ta_momentum_model.rsi common_ta_momentum_view.display_rsi
544 ta.sma common_ta_overlap_model.sma
545 ta.stoch common_ta_momentum_model.stoch common_ta_momentum_view.display_stoch
546 ta.vwap common_ta_overlap_model.vwap common_ta_overlap_view.view_vwap
547 ta.wma common_ta_overlap_model.wma
548 ta.zlma common_ta_overlap_model.zlma
549 whoami sdk_session.whoami

View File

@@ -0,0 +1,39 @@
trail,model,view
forecast.anom,forecast_anom_model.get_anomaly_detection_data,forecast_anom_view.display_anomaly_detection
forecast.atr,forecast_model.add_atr,
forecast.autoarima,forecast_autoarima_model.get_autoarima_data,forecast_autoarima_view.display_autoarima_forecast
forecast.autoces,forecast_autoces_model.get_autoces_data,forecast_autoces_view.display_autoces_forecast
forecast.autoets,forecast_autoets_model.get_autoets_data,forecast_autoets_view.display_autoets_forecast
forecast.autoselect,forecast_autoselect_model.get_autoselect_data,forecast_autoselect_view.display_autoselect_forecast
forecast.brnn,forecast_brnn_model.get_brnn_data,forecast_brnn_view.display_brnn_forecast
forecast.clean,forecast_model.clean,
forecast.combine,forecast_model.combine_dfs,
forecast.corr,forecast_model.corr_df,forecast_view.display_corr
forecast.delete,forecast_model.delete_column,
forecast.delta,forecast_model.add_delta,
forecast.desc,forecast_model.describe_df,forecast_view.describe_df
forecast.ema,forecast_model.add_ema,
forecast.expo,forecast_expo_model.get_expo_data,forecast_expo_view.display_expo_forecast
forecast.export,forecast_view.export_df,
forecast.linregr,forecast_linregr_model.get_linear_regression_data,forecast_linregr_view.display_linear_regression
forecast.load,common_model.load,
forecast.mom,forecast_model.add_momentum,
forecast.mstl,forecast_mstl_model.get_mstl_data,forecast_mstl_view.display_mstl_forecast
forecast.nbeats,forecast_nbeats_model.get_NBEATS_data,forecast_nbeats_view.display_nbeats_forecast
forecast.nhits,forecast_nhits_model.get_nhits_data,forecast_nhits_view.display_nhits_forecast
forecast.plot,forecast_view.display_plot,forecast_view.display_plot
forecast.regr,forecast_regr_model.get_regression_data,forecast_regr_view.display_regression
forecast.rename,forecast_model.rename_column,
forecast.rnn,forecast_rnn_model.get_rnn_data,forecast_rnn_view.display_rnn_forecast
forecast.roc,forecast_model.add_roc,
forecast.rsi,forecast_model.add_rsi,
forecast.rwd,forecast_rwd_model.get_rwd_data,forecast_rwd_view.display_rwd_forecast
forecast.season,,forecast_view.display_seasonality
forecast.seasonalnaive,forecast_seasonalnaive_model.get_seasonalnaive_data,forecast_seasonalnaive_view.display_seasonalnaive_forecast
forecast.show,forecast_view.show_df,forecast_view.show_df
forecast.signal,forecast_model.add_signal,
forecast.sto,forecast_model.add_sto,
forecast.tcn,forecast_tcn_model.get_tcn_data,forecast_tcn_view.display_tcn_forecast
forecast.tft,forecast_tft_model.get_tft_data,forecast_tft_view.display_tft_forecast
forecast.theta,forecast_theta_model.get_theta_data,forecast_theta_view.display_theta_forecast
forecast.trans,forecast_trans_model.get_trans_data,forecast_trans_view.display_trans_forecast
1 trail model view
2 forecast.anom forecast_anom_model.get_anomaly_detection_data forecast_anom_view.display_anomaly_detection
3 forecast.atr forecast_model.add_atr
4 forecast.autoarima forecast_autoarima_model.get_autoarima_data forecast_autoarima_view.display_autoarima_forecast
5 forecast.autoces forecast_autoces_model.get_autoces_data forecast_autoces_view.display_autoces_forecast
6 forecast.autoets forecast_autoets_model.get_autoets_data forecast_autoets_view.display_autoets_forecast
7 forecast.autoselect forecast_autoselect_model.get_autoselect_data forecast_autoselect_view.display_autoselect_forecast
8 forecast.brnn forecast_brnn_model.get_brnn_data forecast_brnn_view.display_brnn_forecast
9 forecast.clean forecast_model.clean
10 forecast.combine forecast_model.combine_dfs
11 forecast.corr forecast_model.corr_df forecast_view.display_corr
12 forecast.delete forecast_model.delete_column
13 forecast.delta forecast_model.add_delta
14 forecast.desc forecast_model.describe_df forecast_view.describe_df
15 forecast.ema forecast_model.add_ema
16 forecast.expo forecast_expo_model.get_expo_data forecast_expo_view.display_expo_forecast
17 forecast.export forecast_view.export_df
18 forecast.linregr forecast_linregr_model.get_linear_regression_data forecast_linregr_view.display_linear_regression
19 forecast.load common_model.load
20 forecast.mom forecast_model.add_momentum
21 forecast.mstl forecast_mstl_model.get_mstl_data forecast_mstl_view.display_mstl_forecast
22 forecast.nbeats forecast_nbeats_model.get_NBEATS_data forecast_nbeats_view.display_nbeats_forecast
23 forecast.nhits forecast_nhits_model.get_nhits_data forecast_nhits_view.display_nhits_forecast
24 forecast.plot forecast_view.display_plot forecast_view.display_plot
25 forecast.regr forecast_regr_model.get_regression_data forecast_regr_view.display_regression
26 forecast.rename forecast_model.rename_column
27 forecast.rnn forecast_rnn_model.get_rnn_data forecast_rnn_view.display_rnn_forecast
28 forecast.roc forecast_model.add_roc
29 forecast.rsi forecast_model.add_rsi
30 forecast.rwd forecast_rwd_model.get_rwd_data forecast_rwd_view.display_rwd_forecast
31 forecast.season forecast_view.display_seasonality
32 forecast.seasonalnaive forecast_seasonalnaive_model.get_seasonalnaive_data forecast_seasonalnaive_view.display_seasonalnaive_forecast
33 forecast.show forecast_view.show_df forecast_view.show_df
34 forecast.signal forecast_model.add_signal
35 forecast.sto forecast_model.add_sto
36 forecast.tcn forecast_tcn_model.get_tcn_data forecast_tcn_view.display_tcn_forecast
37 forecast.tft forecast_tft_model.get_tft_data forecast_tft_view.display_tft_forecast
38 forecast.theta forecast_theta_model.get_theta_data forecast_theta_view.display_theta_forecast
39 forecast.trans forecast_trans_model.get_trans_data forecast_trans_view.display_trans_forecast

View File

@@ -0,0 +1,19 @@
trail,model,view
portfolio.po.blacklitterman,portfolio_optimization_po_model.get_blacklitterman,
portfolio.po.ef,portfolio_optimization_po_model.get_ef,portfolio_optimization_po_view.display_ef
portfolio.po.file,portfolio_optimization_po_model.load_parameters_file,
portfolio.po.herc,portfolio_optimization_po_model.get_herc,
portfolio.po.hrp,portfolio_optimization_po_model.get_hrp,
portfolio.po.load,portfolio_optimization_po_model.generate_portfolio,
portfolio.po.load_bl_views,portfolio_optimization_excel_model.load_bl_views,
portfolio.po.maxdecorr,portfolio_optimization_po_model.get_maxdecorr,
portfolio.po.maxdiv,portfolio_optimization_po_model.get_maxdiv,
portfolio.po.maxret,portfolio_optimization_po_model.get_maxret,
portfolio.po.maxsharpe,portfolio_optimization_po_model.get_maxsharpe,
portfolio.po.maxutil,portfolio_optimization_po_model.get_maxutil,
portfolio.po.minrisk,portfolio_optimization_po_model.get_minrisk,
portfolio.po.nco,portfolio_optimization_po_model.get_nco,
portfolio.po.plot,portfolio_optimization_po_view.display_plot,portfolio_optimization_po_view.display_plot
portfolio.po.relriskparity,portfolio_optimization_po_model.get_relriskparity,
portfolio.po.riskparity,portfolio_optimization_po_model.get_riskparity,
portfolio.po.show,portfolio_optimization_po_model.show,
1 trail model view
2 portfolio.po.blacklitterman portfolio_optimization_po_model.get_blacklitterman
3 portfolio.po.ef portfolio_optimization_po_model.get_ef portfolio_optimization_po_view.display_ef
4 portfolio.po.file portfolio_optimization_po_model.load_parameters_file
5 portfolio.po.herc portfolio_optimization_po_model.get_herc
6 portfolio.po.hrp portfolio_optimization_po_model.get_hrp
7 portfolio.po.load portfolio_optimization_po_model.generate_portfolio
8 portfolio.po.load_bl_views portfolio_optimization_excel_model.load_bl_views
9 portfolio.po.maxdecorr portfolio_optimization_po_model.get_maxdecorr
10 portfolio.po.maxdiv portfolio_optimization_po_model.get_maxdiv
11 portfolio.po.maxret portfolio_optimization_po_model.get_maxret
12 portfolio.po.maxsharpe portfolio_optimization_po_model.get_maxsharpe
13 portfolio.po.maxutil portfolio_optimization_po_model.get_maxutil
14 portfolio.po.minrisk portfolio_optimization_po_model.get_minrisk
15 portfolio.po.nco portfolio_optimization_po_model.get_nco
16 portfolio.po.plot portfolio_optimization_po_view.display_plot portfolio_optimization_po_view.display_plot
17 portfolio.po.relriskparity portfolio_optimization_po_model.get_relriskparity
18 portfolio.po.riskparity portfolio_optimization_po_model.get_riskparity
19 portfolio.po.show portfolio_optimization_po_model.show

View File

@@ -0,0 +1,165 @@
import importlib
import inspect
from pathlib import Path
from types import FunctionType
from typing import Dict, List, Optional
import pandas as pd
from openbb_terminal.core.config.paths import PACKAGE_DIRECTORY
from openbb_terminal.rich_config import console
from openbb_terminal.sdk_core.sdk_helpers import clean_attr_desc
from openbb_terminal.sdk_core.sdk_init import (
FORECASTING_TOOLKIT_ENABLED,
OPTIMIZATION_TOOLKIT_ENABLED,
)
class FuncAttr:
def __init__(self, func: Optional[str] = None):
self.short_doc: Optional[str] = None
self.long_doc: Optional[str] = None
self.func_def: Optional[str] = None
self.path: Optional[str] = None
self.lineon: Optional[int] = None
self.full_path: Optional[str] = None
self.func_unwrapped: Optional[FunctionType] = None
self.func_wrapped: Optional[FunctionType] = None
if func:
self.get_func_attrs(func)
def get_func_attrs(self, func: str) -> None:
attr = getattr(
importlib.import_module("openbb_terminal.sdk_core.sdk_init"),
func.split(".")[0],
)
func_attr = getattr(attr, func.split(".")[1])
self.func_wrapped = func_attr
add_lineon = 0
if hasattr(func_attr, "__wrapped__"):
while hasattr(func_attr, "__wrapped__"):
func_attr = func_attr.__wrapped__
add_lineon += 1
self.func_unwrapped = func_attr
self.lineon = inspect.getsourcelines(func_attr)[1] + add_lineon
self.func_def = self.get_definition()
self.long_doc = func_attr.__doc__
self.short_doc = clean_attr_desc(func_attr)
self.path = inspect.getfile(func_attr)
full_path = (
inspect.getfile(func_attr).replace("\\", "/").split("openbb_terminal/")[1]
)
self.full_path = f"openbb_terminal/{full_path}"
def get_definition(self) -> str:
"""Creates the function definition to be used in SDK docs."""
funcspec = inspect.getfullargspec(self.func_unwrapped)
definition = ""
added_comma = False
for arg in funcspec.args:
annotation = (
funcspec.annotations[arg] if arg in funcspec.annotations else "Any"
)
annotation = (
str(annotation)
.replace("<class '", "")
.replace("'>", "")
.replace("typing.", "")
.replace("pandas.core.frame.", "pd.")
.replace("pandas.core.series.", "pd.")
.replace("openbb_terminal.portfolio.", "")
)
definition += f"{arg}: {annotation}, "
added_comma = True
if added_comma:
definition = definition[:-2]
return_def = (
funcspec.annotations["return"].__name__
if "return" in funcspec.annotations
and hasattr(funcspec.annotations["return"], "__name__")
and funcspec.annotations["return"] is not None
else "None"
)
definition = f"def {self.func_unwrapped.__name__}({definition }) -> {return_def}" # type: ignore
return definition
# pylint: disable=R0903
class Trailmap:
def __init__(self, trailmap: str, model: str, view: Optional[str] = None):
self.trailmap: str = trailmap
tmap = trailmap.split(".")
if len(tmap) == 1:
tmap = ["root", tmap[0]]
self.class_attr: str = tmap.pop(-1)
self.location_path = tmap
self.model = model
self.view = view if view else None
self.view_name = "_chart"
self.model_func: Optional[str] = f"lib.{model}" if model else None
self.view_func: Optional[str] = f"lib.{view}" if view else None
self.func_attrs: Dict[str, FuncAttr] = {}
self.func_attrs["model"] = FuncAttr(self.model)
self.func_attrs["view"] = FuncAttr(self.view) # type: ignore
def get_trailmaps(sort: bool = False) -> List[Trailmap]:
trailmaps = []
MAP_PATH = PACKAGE_DIRECTORY / "sdk_core" / "trail_map.csv"
MAP_FORECASTING_PATH = PACKAGE_DIRECTORY / "sdk_core" / "trail_map_forecasting.csv"
MAP_OPTIMIZATION_PATH = (
PACKAGE_DIRECTORY / "sdk_core" / "trail_map_optimization.csv"
)
def load_csv(path: Path = None) -> pd.DataFrame:
path = path or MAP_PATH
df = pd.read_csv(path, keep_default_na=False)
df = df.set_index("trail")
if sort:
df = df.sort_index()
df.to_csv(path, index=True)
return df.to_dict(orient="index")
def print_error(error: str) -> None:
console.print(
f"[bold red]{error} is disabled and will not be included in the SDK.[/bold red]"
)
console.print(
"[bold red]`poetry install -E all` to install all toolkits.[/bold red]"
)
def load():
map_dict = load_csv(path=MAP_PATH)
if FORECASTING_TOOLKIT_ENABLED:
map_forecasting_dict = load_csv(path=MAP_FORECASTING_PATH)
map_dict.update(map_forecasting_dict)
else:
print_error("Forecasting")
if OPTIMIZATION_TOOLKIT_ENABLED:
map_optimization_dict = load_csv(path=MAP_OPTIMIZATION_PATH)
map_dict.update(map_optimization_dict)
else:
print_error("Optimization")
map_dict = dict(sorted(map_dict.items(), key=lambda item: item[0]))
return map_dict
map_dict = load()
for trail, attrs in map_dict.items():
model, view = attrs["model"], attrs["view"]
trail_map = Trailmap(trail, model, view)
trailmaps.append(trail_map)
return trailmaps

View File

@@ -3,7 +3,7 @@ __docformat__ = "numpy"
import logging
from datetime import datetime
from typing import Dict, List
from typing import Any, Dict, List
import finviz
import pandas as pd
@@ -107,6 +107,23 @@ def get_analyst_price_targets_workaround(
analyst_price_targets.append(data)
except Exception:
pass
pass # noqa
return analyst_price_targets[:last_ratings]
@log_start_end(log=logger)
def get_news(symbol: str) -> List[Any]:
"""Get news from Finviz
Parameters
----------
symbol : str
Stock ticker symbol
Returns
-------
List[Any]
News
"""
return finviz.get_news(symbol)

17709
poetry.lock generated vendored

File diff suppressed because it is too large Load Diff

4
pyproject.toml vendored
View File

@@ -137,10 +137,10 @@ pre-commit = "^2.16.0"
pytest-cov = "^3.0.0"
types-six = "^1.16.12"
nbmake = ">0.5.0"
ruff = "^0.0.236"
ruff = "^0.0.243"
[tool.poetry.extras]
prediction = ["torch", "pytorch-lightning", "u8darts", "lightgbm"]
forecast = ["torch", "pytorch-lightning", "u8darts", "lightgbm"]
optimization = ["Riskfolio-Lib"]
all = ["torch", "pytorch-lightning", "u8darts", "Riskfolio-Lib"]
jupyterlab = ["jupyterlab-code-formatter", "jupyterlab-lsp", "jedi-language-server"]

728
requirements-full.txt vendored
View File

@@ -1,364 +1,364 @@
absl-py==1.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiodns==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiohttp==3.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiosignal==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
alabaster==0.7.13 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
alpha-vantage==2.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
altair==4.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
altgraph==0.17.3 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
ansiwrap==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
arch==5.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ascii-magic==1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
astor==0.8.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
astroid==2.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
astropy==5.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
asttokens==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
async-timeout==4.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
atomicwrites==1.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
attrs==21.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
babel==2.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backcall==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backoff==2.2.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9"
bandit==1.7.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
base58==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
beautifulsoup4==4.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
black==23.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bleach==6.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
blinker==1.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bs4==0.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bt==0.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cachetools==5.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
catboost==1.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ccxt==2.7.66 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
certifi==2022.12.7 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
cffi==1.15.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cfgv==3.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
charset-normalizer==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
click==8.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cloudpickle==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cmdstanpy==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
codespell==2.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
colorama==0.4.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
comm==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
commonmark==0.9.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
contourpy==1.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
convertdate==2.4.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
coverage==7.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
coverage[toml]==7.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cryptography==39.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cvxpy==1.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cycler==0.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cython==0.29.33 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dateparser==1.1.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
datetime==5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
debugpy==1.6.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
decorator==5.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
defusedxml==0.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
degiro-connector==2.0.21 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dill==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
distlib==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
docutils==0.17.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ecos==2.0.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
entrypoints==0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ephem==4.1.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
et-xmlfile==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
exchange-calendars==4.2.5 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
executing==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fastjsonschema==2.16.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
feedparser==6.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ffn==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
filelock==3.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
financedatabase==1.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finnhub-python==2.4.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finviz==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finvizfinance==0.14.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
flake8==5.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fonttools==4.38.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
formulaic==0.3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
fred==3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fredapi==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozendict==2.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozenlist==1.3.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fsspec[http]==2023.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fundamentalanalysis==0.2.14 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
future==0.18.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitdb==4.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.30 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
google-auth-oauthlib==0.4.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
google-auth==2.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
graphviz==0.20.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.51.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
hijri-converter==2.2.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
holidays==0.14.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
html5lib==1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
identify==2.5.17 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
idna==3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
imagesize==1.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
importlib-metadata==6.0.0 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
inflection==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
iniconfig==2.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
interface-meta==1.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
intrinio-sdk==6.22.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipyflex==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipykernel==6.21.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipympl==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython-genutils==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython==8.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipywidgets==8.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
iso8601==0.1.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
isodate==0.6.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
isort==5.12.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jedi==0.18.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jinja2==3.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
joblib==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
json5==0.9.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema==3.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-client==7.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-core==5.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server==1.23.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-pygments==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-server==2.16.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-widgets==3.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab==3.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
kiwisolver==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
korean-lunar-calendar==0.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lazy-object-proxy==1.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lightgbm==3.3.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
linearmodels==4.27 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
llvmlite==0.39.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
loguru==0.6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lunarcalendar==0.0.9 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
lxml==4.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
macholib==1.16.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "darwin"
markdown-it-py==1.1.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
markdown==3.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
markupsafe==2.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib==3.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mccabe==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mdit-py-plugins==0.2.8 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
mistune==2.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mock==4.0.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
more-itertools==9.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mplfinance==0.12.9b7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mstarpy==0.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multidict==6.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multitasking==0.0.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mypy==0.930 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
myst-parser==0.15.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclassic==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclient==0.6.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbconvert==7.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbformat==5.7.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbmake==1.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
nest-asyncio==1.5.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
networkx==3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nfoursid==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nodeenv==1.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook-shim==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook==6.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
numba==0.56.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
numpy==1.23.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oandapyv20==0.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oauthlib==3.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
onetimepass==1.0.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
openpyxl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
osqp==0.6.2.post8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
packaging==23.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-datareader==0.10.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-market-calendars==3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-ta==0.3.14b ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas==1.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandocfilters==1.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
papermill==2.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
parso==0.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pathspec==0.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
patsy==0.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pbr==5.11.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pefile==2023.2.7 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "win32"
pexpect==4.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32"
pickleshare==0.7.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pillow==9.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
platformdirs==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
plotly==5.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pluggy==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pmdarima==2.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
praw==7.6.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
prawcore==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pre-commit==2.21.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prometheus-client==0.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prompt-toolkit==3.0.36 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
property-cached==1.6.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prophet==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psaw==0.0.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
py==1.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyally==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==11.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1-modules==0.2.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1==0.4.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.9.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==2.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycparser==2.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydantic==1.10.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pydeck==0.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydeprecate==0.3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydocstyle==6.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyerfa==2.0.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyflakes==2.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pygments==2.14.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyhdfe==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyinstaller-hooks-contrib==2022.15 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pyinstaller==4.10 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pylint==2.15.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyluach==2.0.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pymeeus==0.5.12 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pympler==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyobjc-core==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyod==1.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyotp==2.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyparsing==3.0.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyprind==2.11.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyrsistent==0.18.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-cov==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-mock==3.10.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-recording==0.12.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest==6.2.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pythclient==0.1.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-binance==1.0.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-coinmarketcap==0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dateutil==2.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==0.19.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytorch-lightning==1.6.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz==2022.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywin32-ctypes==0.2.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "win32"
pywin32==305 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywinpty==2.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name == "nt"
pyyaml==6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyzmq==25.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
qdldl==0.1.5.post3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
quandl==3.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rapidfuzz==2.13.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rdflib==6.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
regex==2022.10.31 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests-oauthlib==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests==2.28.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
retrying==1.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
riskfolio-lib==3.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
robin-stocks==2.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rsa==4.9 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.8" and python_full_version != "3.9.7"
ruamel-yaml==0.17.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ruff==0.0.236 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scipy==1.10.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
screeninfo==0.6.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scs==3.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
seaborn==0.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
semver==2.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
send2trash==1.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-scm==6.4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools==64.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sgmllib3k==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
shap==0.41.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
six==1.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
slicer==0.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
smmap==5.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sniffio==1.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
snowballstemmer==2.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
soupsieve==2.3.2.post1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sparqlwrapper==2.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinx==4.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
squarify==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stack-data==0.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
statsforecast==1.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
statsmodels==0.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stevedore==4.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stocksera==0.1.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
streamlit==1.17.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tabulate==0.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tbats==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tenacity==7.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard-data-server==0.6.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard-plugin-wit==1.8.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard==2.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
terminado==0.17.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
textwrap3==0.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
thepassiveinvestor==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
threadpoolctl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tinycss2==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tokenterminal==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toml==0.10.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tomli==2.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tomlkit==0.11.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
torch==1.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
torchmetrics==0.11.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tornado==6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tqdm==4.64.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tradingview-ta==3.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
traitlets==5.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-python-dateutil==2.8.19.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-pytz==2021.3.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-pyyaml==6.0.12.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-requests==2.28.11.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-setuptools==57.4.18 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-six==1.16.21.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-urllib3==1.26.25.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
typing-extensions==4.4.0 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
tzdata==2022.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tzlocal==4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
u8darts[torch]==0.23.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ujson==5.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
update-checker==0.18.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
urllib3==1.26.14 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
user-agent==0.1.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
vadersentiment==3.3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
validators==0.20.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
valinvest==0.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
vcrpy==4.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
virtualenv==20.19.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
voila==0.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
watchdog==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
wcwidth==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
webencodings==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
websocket-client==1.5.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
websockets==10.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
werkzeug==2.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
wheel==0.38.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
widgetsnbextension==4.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
win32-setctime==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
wrapt==1.14.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
xarray==2023.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
xgboost==1.7.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
xlsxwriter==3.0.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
y-py==0.5.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yarl==1.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yfinance==0.2.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
zipp==3.12.1 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
zope-interface==5.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
absl-py==1.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiodns==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiohttp==3.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiosignal==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
alabaster==0.7.13 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
alpha-vantage==2.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
altair==4.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
altgraph==0.17.3 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
ansiwrap==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
arch==5.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ascii-magic==1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
astor==0.8.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
astroid==2.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
astropy==5.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
asttokens==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
async-timeout==4.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
atomicwrites==1.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
attrs==21.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
babel==2.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backcall==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backoff==2.2.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9"
bandit==1.7.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
base58==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
beautifulsoup4==4.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
black==23.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bleach==6.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
blinker==1.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bs4==0.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bt==0.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cachetools==5.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
catboost==1.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ccxt==2.7.66 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
certifi==2022.12.7 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
cffi==1.15.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cfgv==3.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
charset-normalizer==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
click==8.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cloudpickle==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cmdstanpy==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
codespell==2.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
colorama==0.4.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
comm==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
commonmark==0.9.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
contourpy==1.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
convertdate==2.4.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
coverage==7.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
coverage[toml]==7.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cryptography==39.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cvxpy==1.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cycler==0.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cython==0.29.33 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dateparser==1.1.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
datetime==5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
debugpy==1.6.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
decorator==5.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
defusedxml==0.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
degiro-connector==2.0.21 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dill==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
distlib==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
docutils==0.17.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ecos==2.0.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
entrypoints==0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ephem==4.1.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
et-xmlfile==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
exchange-calendars==4.2.5 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
executing==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fastjsonschema==2.16.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
feedparser==6.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ffn==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
filelock==3.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
financedatabase==1.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finnhub-python==2.4.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finviz==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finvizfinance==0.14.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
flake8==5.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fonttools==4.38.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
formulaic==0.3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
fred==3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fredapi==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozendict==2.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozenlist==1.3.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fsspec[http]==2023.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fundamentalanalysis==0.2.14 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
future==0.18.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitdb==4.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.30 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
google-auth-oauthlib==0.4.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
google-auth==2.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
graphviz==0.20.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.51.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
hijri-converter==2.2.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
holidays==0.14.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
html5lib==1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
identify==2.5.17 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
idna==3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
imagesize==1.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
importlib-metadata==6.0.0 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
inflection==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
iniconfig==2.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
interface-meta==1.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
intrinio-sdk==6.22.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipyflex==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipykernel==6.21.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipympl==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython-genutils==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython==8.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipywidgets==8.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
iso8601==0.1.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
isodate==0.6.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
isort==5.12.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jedi==0.18.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jinja2==3.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
joblib==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
json5==0.9.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema==3.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-client==7.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-core==5.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server==1.23.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-pygments==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-server==2.16.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-widgets==3.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab==3.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
kiwisolver==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
korean-lunar-calendar==0.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lazy-object-proxy==1.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lightgbm==3.3.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
linearmodels==4.27 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
llvmlite==0.39.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
loguru==0.6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lunarcalendar==0.0.9 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
lxml==4.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
macholib==1.16.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "darwin"
markdown-it-py==1.1.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
markdown==3.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
markupsafe==2.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib==3.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mccabe==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mdit-py-plugins==0.2.8 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
mistune==2.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mock==4.0.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
more-itertools==9.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mplfinance==0.12.9b7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mstarpy==0.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multidict==6.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multitasking==0.0.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mypy==0.930 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
myst-parser==0.15.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclassic==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclient==0.6.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbconvert==7.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbformat==5.7.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbmake==1.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
nest-asyncio==1.5.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
networkx==3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nfoursid==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nodeenv==1.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook-shim==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook==6.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
numba==0.56.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
numpy==1.23.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oandapyv20==0.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oauthlib==3.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
onetimepass==1.0.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
openpyxl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
osqp==0.6.2.post8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
packaging==23.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-datareader==0.10.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-market-calendars==3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-ta==0.3.14b ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas==1.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandocfilters==1.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
papermill==2.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
parso==0.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pathspec==0.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
patsy==0.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pbr==5.11.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pefile==2023.2.7 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "win32"
pexpect==4.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32"
pickleshare==0.7.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pillow==9.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
platformdirs==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
plotly==5.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pluggy==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pmdarima==2.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
praw==7.6.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
prawcore==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pre-commit==2.21.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prometheus-client==0.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prompt-toolkit==3.0.36 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
property-cached==1.6.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prophet==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psaw==0.0.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
py==1.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyally==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==11.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1-modules==0.2.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1==0.4.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.9.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==2.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycparser==2.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydantic==1.10.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pydeck==0.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydeprecate==0.3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydocstyle==6.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyerfa==2.0.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyflakes==2.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pygments==2.14.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyhdfe==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyinstaller-hooks-contrib==2022.15 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pyinstaller==4.10 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pylint==2.15.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyluach==2.0.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pymeeus==0.5.12 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pympler==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyobjc-core==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyod==1.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyotp==2.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyparsing==3.0.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyprind==2.11.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyrsistent==0.18.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-cov==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-mock==3.10.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-recording==0.12.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytest==6.2.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pythclient==0.1.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-binance==1.0.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-coinmarketcap==0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dateutil==2.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==0.19.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytorch-lightning==1.6.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz==2022.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywin32-ctypes==0.2.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "win32"
pywin32==305 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywinpty==2.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name == "nt"
pyyaml==6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyzmq==25.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
qdldl==0.1.5.post3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
quandl==3.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rapidfuzz==2.13.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rdflib==6.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
regex==2022.10.31 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests-oauthlib==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests==2.28.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
retrying==1.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
riskfolio-lib==3.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
robin-stocks==2.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rsa==4.9 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.8" and python_full_version != "3.9.7"
ruamel-yaml==0.17.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ruff==0.0.243 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scipy==1.10.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
screeninfo==0.6.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scs==3.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
seaborn==0.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
semver==2.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
send2trash==1.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-scm==6.4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools==64.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sgmllib3k==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
shap==0.41.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
six==1.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
slicer==0.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
smmap==5.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sniffio==1.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
snowballstemmer==2.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
soupsieve==2.3.2.post1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sparqlwrapper==2.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinx==4.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-applehelp==1.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-htmlhelp==2.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
squarify==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stack-data==0.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
statsforecast==1.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
statsmodels==0.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stevedore==4.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stocksera==0.1.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
streamlit==1.17.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tabulate==0.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tbats==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tenacity==7.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard-data-server==0.6.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard-plugin-wit==1.8.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard==2.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
terminado==0.17.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
textwrap3==0.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
thepassiveinvestor==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
threadpoolctl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tinycss2==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tokenterminal==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toml==0.10.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tomli==2.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tomlkit==0.11.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
torch==1.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
torchmetrics==0.11.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tornado==6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tqdm==4.64.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tradingview-ta==3.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
traitlets==5.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-python-dateutil==2.8.19.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-pytz==2021.3.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-pyyaml==6.0.12.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-requests==2.28.11.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-setuptools==57.4.18 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-six==1.16.21.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
types-urllib3==1.26.25.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
typing-extensions==4.4.0 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
tzdata==2022.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tzlocal==4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
u8darts[torch]==0.23.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ujson==5.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
update-checker==0.18.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
urllib3==1.26.14 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
user-agent==0.1.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
vadersentiment==3.3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
validators==0.20.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
valinvest==0.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
vcrpy==4.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
virtualenv==20.19.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
voila==0.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
watchdog==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
wcwidth==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
webencodings==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
websocket-client==1.5.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
websockets==10.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
werkzeug==2.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
wheel==0.38.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
widgetsnbextension==4.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
win32-setctime==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
wrapt==1.14.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
xarray==2023.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
xgboost==1.7.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
xlsxwriter==3.0.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
y-py==0.5.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yarl==1.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yfinance==0.2.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
zipp==3.12.1 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
zope-interface==5.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"

506
requirements.txt vendored
View File

@@ -1,253 +1,253 @@
aiodns==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiohttp==3.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiosignal==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
alpha-vantage==2.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
altair==4.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ansiwrap==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ascii-magic==1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
astor==0.8.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
asttokens==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
async-timeout==4.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
attrs==21.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
babel==2.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backcall==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backoff==2.2.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9"
base58==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
beautifulsoup4==4.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bleach==6.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
blinker==1.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bs4==0.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bt==0.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cachetools==5.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
ccxt==2.7.66 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
certifi==2022.12.7 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
cffi==1.15.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
charset-normalizer==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
click==8.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
colorama==0.4.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
comm==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
commonmark==0.9.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
contourpy==1.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
convertdate==2.4.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
cryptography==39.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cycler==0.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cython==0.29.33 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dateparser==1.1.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
datetime==5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
debugpy==1.6.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
decorator==5.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
defusedxml==0.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
degiro-connector==2.0.21 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
entrypoints==0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
et-xmlfile==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
exchange-calendars==4.2.5 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
executing==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fastjsonschema==2.16.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
feedparser==6.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ffn==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
financedatabase==1.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finnhub-python==2.4.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finviz==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finvizfinance==0.14.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
flake8==5.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fonttools==4.38.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
formulaic==0.3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
fred==3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fredapi==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozendict==2.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozenlist==1.3.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fundamentalanalysis==0.2.14 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
future==0.18.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitdb==4.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.30 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.51.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
hijri-converter==2.2.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
holidays==0.14.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
html5lib==1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
idna==3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
importlib-metadata==6.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
inflection==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
interface-meta==1.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
intrinio-sdk==6.22.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipyflex==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipykernel==6.21.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipympl==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython-genutils==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython==8.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipywidgets==8.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
iso8601==0.1.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
isodate==0.6.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jedi==0.18.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jinja2==3.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
joblib==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
json5==0.9.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema==3.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-client==7.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-core==5.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server==1.23.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-pygments==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-server==2.16.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-widgets==3.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab==3.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
kiwisolver==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
korean-lunar-calendar==0.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
linearmodels==4.27 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
loguru==0.6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lxml==4.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
markupsafe==2.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib==3.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mccabe==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mistune==2.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
more-itertools==9.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mplfinance==0.12.9b7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mstarpy==0.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multidict==6.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multitasking==0.0.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclassic==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclient==0.6.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbconvert==7.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbformat==5.7.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nest-asyncio==1.5.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook-shim==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook==6.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
numpy==1.23.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oandapyv20==0.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oauthlib==3.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
onetimepass==1.0.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
openpyxl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
packaging==23.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-datareader==0.10.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-market-calendars==3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-ta==0.3.14b ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas==1.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandocfilters==1.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
papermill==2.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
parso==0.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
patsy==0.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pexpect==4.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32"
pickleshare==0.7.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pillow==9.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
platformdirs==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
plotly==5.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
praw==7.6.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
prawcore==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
prometheus-client==0.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prompt-toolkit==3.0.36 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
property-cached==1.6.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psaw==0.0.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyally==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==11.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.9.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==2.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycparser==2.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydeck==0.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyflakes==2.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pygments==2.14.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyhdfe==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyluach==2.0.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pymeeus==0.5.12 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pympler==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyobjc-core==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyotp==2.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyparsing==3.0.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyprind==2.11.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyrsistent==0.18.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pythclient==0.1.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-binance==1.0.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-coinmarketcap==0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dateutil==2.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==0.19.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz==2022.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywin32==305 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywinpty==2.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name == "nt"
pyyaml==6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyzmq==25.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
quandl==3.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rapidfuzz==2.13.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rdflib==6.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
regex==2022.10.31 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests-oauthlib==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests==2.28.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
retrying==1.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
robin-stocks==2.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.8" and python_full_version != "3.9.7"
ruamel-yaml==0.17.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scipy==1.10.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
screeninfo==0.6.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
seaborn==0.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
semver==2.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
send2trash==1.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-scm==6.4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools==64.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sgmllib3k==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
six==1.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
smmap==5.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sniffio==1.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
soupsieve==2.3.2.post1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sparqlwrapper==2.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
squarify==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stack-data==0.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
statsmodels==0.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stocksera==0.1.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
streamlit==1.17.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tabulate==0.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tenacity==7.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
terminado==0.17.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
textwrap3==0.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
thepassiveinvestor==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
threadpoolctl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tinycss2==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tokenterminal==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toml==0.10.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tomli==2.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
tornado==6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tqdm==4.64.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tradingview-ta==3.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
traitlets==5.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
typing-extensions==4.4.0 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
tzdata==2022.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tzlocal==4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ujson==5.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
update-checker==0.18.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
urllib3==1.26.14 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
user-agent==0.1.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
vadersentiment==3.3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
validators==0.20.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
valinvest==0.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
voila==0.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
watchdog==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
wcwidth==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
webencodings==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
websocket-client==1.5.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
websockets==10.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
widgetsnbextension==4.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
win32-setctime==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
wrapt==1.14.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
y-py==0.5.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yarl==1.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yfinance==0.2.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
zipp==3.12.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
zope-interface==5.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiodns==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiohttp==3.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
aiosignal==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
alpha-vantage==2.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
altair==4.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ansiwrap==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
argon2-cffi-bindings==21.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ascii-magic==1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
astor==0.8.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
asttokens==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
async-timeout==4.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
attrs==21.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
babel==2.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backcall==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
backoff==2.2.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
backports-zoneinfo==0.2.1 ; python_version >= "3.8" and python_version < "3.9"
base58==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
beautifulsoup4==4.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bleach==6.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
blinker==1.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bs4==0.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
bt==0.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cachetools==5.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
ccxt==2.7.66 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
certifi==2022.12.7 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
cffi==1.15.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
charset-normalizer==2.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
click==8.1.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
colorama==0.4.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
comm==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
commonmark==0.9.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
contourpy==1.0.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
convertdate==2.4.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
cryptography==39.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cycler==0.11.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
cython==0.29.33 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dateparser==1.1.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
datetime==5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
debugpy==1.6.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
decorator==5.1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
defusedxml==0.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
degiro-connector==2.0.21 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
entrypoints==0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
et-xmlfile==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
exchange-calendars==4.2.5 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
executing==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fastjsonschema==2.16.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
feedparser==6.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ffn==0.3.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
financedatabase==1.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finnhub-python==2.4.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finviz==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
finvizfinance==0.14.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
flake8==5.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fonttools==4.38.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
formulaic==0.3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
fred==3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fredapi==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozendict==2.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
frozenlist==1.3.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
fundamentalanalysis==0.2.14 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
future==0.18.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitdb==4.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.30 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.51.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
hijri-converter==2.2.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
holidays==0.14.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
html5lib==1.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
idna==3.4 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
importlib-metadata==6.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
inflection==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
interface-meta==1.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
intrinio-sdk==6.22.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipyflex==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipykernel==6.21.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipympl==0.8.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython-genutils==0.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipython==8.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ipywidgets==8.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
iso8601==0.1.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
isodate==0.6.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jedi==0.18.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jinja2==3.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
joblib==1.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
json5==0.9.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema==3.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-client==7.4.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-core==5.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server==1.23.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-pygments==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-server==2.16.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-widgets==3.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab==3.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
kiwisolver==1.4.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
korean-lunar-calendar==0.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
linearmodels==4.27 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
loguru==0.6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
lxml==4.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
markupsafe==2.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib-inline==0.1.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib==3.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mccabe==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mistune==2.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
more-itertools==9.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mplfinance==0.12.9b7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mstarpy==0.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multidict==6.0.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
multitasking==0.0.11 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
mypy-extensions==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclassic==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbclient==0.6.8 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbconvert==7.2.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nbformat==5.7.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
nest-asyncio==1.5.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook-shim==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
notebook==6.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
numpy==1.23.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oandapyv20==0.6.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
oauthlib==3.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
onetimepass==1.0.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
openpyxl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
packaging==23.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-datareader==0.10.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-market-calendars==3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-ta==0.3.14b ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandas==1.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pandocfilters==1.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
papermill==2.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
parso==0.8.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
patsy==0.5.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pexpect==4.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32"
pickleshare==0.7.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pillow==9.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
platformdirs==3.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
plotly==5.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
praw==7.6.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
prawcore==2.3.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
prometheus-client==0.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
prompt-toolkit==3.0.36 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
property-cached==1.6.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psaw==0.0.12 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyally==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==11.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.9.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==2.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pycparser==2.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pydeck==0.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyflakes==2.5.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pygments==2.14.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyhdfe==0.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyluach==2.0.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pymeeus==0.5.12 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
pympler==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyobjc-core==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyotp==2.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyparsing==3.0.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyprind==2.11.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyrsistent==0.18.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pythclient==0.1.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-binance==1.0.16 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-coinmarketcap==0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dateutil==2.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==0.19.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pytz==2022.7.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywin32==305 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pywinpty==2.0.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and os_name == "nt"
pyyaml==6.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
pyzmq==25.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
quandl==3.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rapidfuzz==2.13.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rdflib==6.2.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
regex==2022.10.31 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests-oauthlib==1.3.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
requests==2.28.2 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
retrying==1.3.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
robin-stocks==2.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.8" and python_full_version != "3.9.7"
ruamel-yaml==0.17.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
scipy==1.10.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
screeninfo==0.6.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
seaborn==0.11.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
semver==2.13.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
send2trash==1.8.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-scm==6.4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools==64.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sgmllib3k==1.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
six==1.16.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
smmap==5.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sniffio==1.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
soupsieve==2.3.2.post1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
sparqlwrapper==2.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
squarify==0.4.3 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stack-data==0.6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
statsmodels==0.13.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
stocksera==0.1.21 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
streamlit==1.17.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tabulate==0.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tenacity==7.0.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
terminado==0.17.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
textwrap3==0.9.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
thepassiveinvestor==1.1.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
threadpoolctl==3.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tinycss2==1.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tokenterminal==1.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toml==0.10.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tomli==2.0.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
toolz==0.12.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
tornado==6.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tqdm==4.64.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tradingview-ta==3.3.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
traitlets==5.9.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
typing-extensions==4.4.0 ; python_full_version != "3.9.7" and python_version < "3.11" and python_version >= "3.8"
tzdata==2022.7 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
tzlocal==4.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
ujson==5.7.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
update-checker==0.18.0 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
urllib3==1.26.14 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
user-agent==0.1.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
vadersentiment==3.3.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
validators==0.20.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
valinvest==0.0.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
voila==0.4.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
watchdog==2.2.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
wcwidth==0.2.6 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
webencodings==0.5.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
websocket-client==1.5.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
websockets==10.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
widgetsnbextension==4.0.5 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
win32-setctime==1.1.0 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
wrapt==1.14.1 ; python_version >= "3.8" and python_version < "3.11" and python_full_version != "3.9.7"
y-py==0.5.4 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yarl==1.8.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
yfinance==0.2.10 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
zipp==3.12.1 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"
zope-interface==5.5.2 ; python_version >= "3.8" and python_full_version != "3.9.7" and python_version < "3.11"

2
tests/README.md vendored
View File

@@ -549,7 +549,7 @@ After updating the `pyproject.toml` you will have to export the `requirements` f
```bash
poetry export -f requirements.txt -o requirements.txt --without-hashes --with dev
poetry export -f requirements.txt -o requirements-full.txt --extras prediction --extras optimization --without-hashes --with dev
poetry export -f requirements.txt -o requirements-full.txt --extras forecast --extras optimization --without-hashes --with dev
```
# 4. Maintain `unit tests`

View File

@@ -314,9 +314,9 @@ def record_stdout_format_kwargs(
def pytest_addoption(parser: Parser):
parser.addoption(
"--prediction",
"--forecast",
action="store_true",
help="To run tests with the marker : @pytest.mark.prediction",
help="To run tests with the marker : @pytest.mark.forecast",
)
parser.addoption(
"--optimization",

View File

@@ -41,5 +41,5 @@ def test_anom_model(model, data, *args, **kwargs):
def pytest_runtest_setup(item: Node):
if not item.config.getoption("--prediction"):
pytest.skip(msg="Runs only with option : --prediction")
if not item.config.getoption("--forecast"):
pytest.skip(msg="Runs only with option : --forecast")

View File

@@ -73,7 +73,7 @@ conda install -c conda-forge lightgbm=3.3.3 -y
Install the Forecasting Toolkit
```bash
pip install "openbb[prediction]"
pip install "openbb[forecast]"
```
#### 5.3 **If you would like to use both Portfolio Optimization and ML forecast features**

View File

@@ -19,11 +19,11 @@ almost a hundred different data providers and APIs to access the data.
<p>
The terminal is constantly being updated with new features and bug fixes. Updating will be different depending on the installation type:
- For installation packages, uninstall the previous version (uninstall.exe for Windows, delete the Application folder on MacOS); then, download the latest version and reinstall. User settings and data will remain.
- For a `pip` installation, when a new version is published: `pip install openbb --upgrade`
- Upgrade the `pip installation` to the source code installation with:
```bash
conda install -c conda-forge git
git clone https://github.com/OpenBB-finance/OpenBBTerminal.git
@@ -152,7 +152,7 @@ Do note that it is also possible that the menu or command is removed. If this is
<details><summary>Why does my Portfolio file fail to load?</summary>
<p>
This will typically be the result of a formatting error.
This will typically be the result of a formatting error.
- Check that all the necessary column titles are present.
- Inspect the file to see if cells left blank have been filled unintentionally with 0 or NaN values.
@@ -161,7 +161,7 @@ This will typically be the result of a formatting error.
- All dates must be entered as YYYY-MM-DD.
- Transactions dated for today will fail to load historical data.
- MacOS users should attempt to avoid using the Numbers application as it has a habit of changing the formatting while saving.
</p>
</details>
@@ -171,7 +171,7 @@ This will typically be the result of a formatting error.
<p>
A source code installation can utilize the `update` command from the main menu of the OpenBB Terminal, or, exit and enter:
```bash
git pull
```
@@ -298,7 +298,7 @@ If you run into issues installing or `Cannot convert a symbolic Tensor...` at ru
```bash
poetry install
poetry install -E prediction
poetry install -E forecast
```
_Commands that may help you in case of an error:_

View File

@@ -385,7 +385,7 @@ poetry install -E optimization
To install the Machine Learning Toolkit run:
```bash
poetry install -E prediction
poetry install -E forecast
```
To install both the Portfolio Optimization and the Machine Learning Toolkit run: