diff --git a/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py b/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py
index 0566bfe9d1b5..850c18af5aee 100644
--- a/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py
+++ b/openbb_terminal/core/sdk/controllers/crypto_sdk_controller.py
@@ -240,6 +240,8 @@ def onchain(self):
`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`: Get query data\n
+ `query_chart`: Display query results from shroom\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
diff --git a/openbb_terminal/core/sdk/models/crypto_sdk_model.py b/openbb_terminal/core/sdk/models/crypto_sdk_model.py
index b25092e17f2b..5dcd4460b22e 100644
--- a/openbb_terminal/core/sdk/models/crypto_sdk_model.py
+++ b/openbb_terminal/core/sdk/models/crypto_sdk_model.py
@@ -429,6 +429,8 @@ class CryptoOnChain(Category):
`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`: Get query data\n
+ `query_chart`: Display query results from shroom\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
@@ -497,6 +499,8 @@ def __init__(self):
self.prices_chart = (
lib.crypto_onchain_ethplorer_view.display_token_historical_prices
)
+ self.query = lib.crypto_onchain_shroom_model.get_query_data
+ self.query_chart = lib.crypto_onchain_shroom_view.display_query
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
diff --git a/openbb_terminal/core/sdk/models/forecast_sdk_model.py b/openbb_terminal/core/sdk/models/forecast_sdk_model.py
index dacbfa927a35..be6fbc3e4f0d 100644
--- a/openbb_terminal/core/sdk/models/forecast_sdk_model.py
+++ b/openbb_terminal/core/sdk/models/forecast_sdk_model.py
@@ -78,6 +78,7 @@ def __init__(self):
if not lib.FORECASTING_TOOLKIT_ENABLED:
# pylint: disable=C0415
+
from openbb_terminal.rich_config import console
console.print(lib.FORECASTING_TOOLKIT_WARNING)
diff --git a/openbb_terminal/core/sdk/models/portfolio_sdk_model.py b/openbb_terminal/core/sdk/models/portfolio_sdk_model.py
index 14457d671fdf..bc4558a9aea6 100644
--- a/openbb_terminal/core/sdk/models/portfolio_sdk_model.py
+++ b/openbb_terminal/core/sdk/models/portfolio_sdk_model.py
@@ -178,6 +178,7 @@ def __init__(self):
if not lib.OPTIMIZATION_TOOLKIT_ENABLED:
# pylint: disable=C0415
+
from openbb_terminal.rich_config import console
console.print(lib.OPTIMIZATION_TOOLKIT_WARNING)
diff --git a/openbb_terminal/core/sdk/sdk_helpers.py b/openbb_terminal/core/sdk/sdk_helpers.py
index d286d4421355..8587c6a81177 100644
--- a/openbb_terminal/core/sdk/sdk_helpers.py
+++ b/openbb_terminal/core/sdk/sdk_helpers.py
@@ -1,4 +1,5 @@
"""OpenBB Terminal SDK Helpers."""
+
import json
from inspect import signature
from logging import Logger, getLogger
@@ -19,25 +20,31 @@
SETTINGS_ENV_FILE.parent.mkdir(parents=True, exist_ok=True)
+
if (
not FORECASTING_TOOLKIT_ENABLED
and not get_current_system().DISABLE_FORECASTING_WARNING
):
set_system_variable("DISABLE_FORECASTING_WARNING", True)
+
console.print(FORECASTING_TOOLKIT_WARNING)
+
if (
not OPTIMIZATION_TOOLKIT_ENABLED
and not get_current_system().DISABLE_OPTIMIZATION_WARNING
):
set_system_variable("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]
@@ -49,6 +56,7 @@ def clean_attr_desc(attr: Optional[Any] = None) -> Optional[str]:
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()
@@ -59,7 +67,9 @@ def class_repr(cls_dict: Dict[str, Any]) -> list:
class Operation:
def __init__(self, name: str, trail: str, func: Callable) -> None:
self._trail = trail
+
self._method = func
+
self._name = name
for attr in [
@@ -71,50 +81,65 @@ def __init__(self, name: str, trail: str, func: Callable) -> None:
"__module__",
]:
setattr(self.__class__, attr, getattr(func, attr))
+
setattr(self, attr, getattr(func, attr))
self.__signature__ = signature(func)
+
self.__class__.__signature__ = signature(func)
def __call__(self, *args: Any, **kwargs: Any) -> Any:
method = self._method
# We make a copy of the kwargs to avoid modifying the original
+
log_kwargs = kwargs.copy()
+
log_kwargs["chart"] = "chart" in self._name
operation_logger = OperationLogger(
trail=self._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
def about(self):
# pylint: disable=C0415
+
import webbrowser
trail = "/".join(self._trail.split(".")).replace("_chart", "")
+
url = f"https://docs.openbb.co/sdk/reference/{trail}"
+
webbrowser.open(url)
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
@@ -122,9 +147,13 @@ def __repr__(self):
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.
+
"""
+
attr = super().__getattribute__(name)
+
if isinstance(attr, Operation) or name.startswith("__"):
return attr
@@ -132,18 +161,24 @@ def __getattribute__(self, name: str):
if callable(attr) and not isinstance(attr, Operation):
# We set the attribute to the wrapped function so that we don't
+
# have to wrap it when called again.
+
setattr(self, name, Operation(name=name, trail=trail, func=attr))
+
return getattr(self, name)
return attr
def about(self):
# pylint: disable=C0415
+
import webbrowser
trail = "/".join(self._location_path.split("."))
+
url = f"https://docs.openbb.co/sdk/reference/{trail}"
+
webbrowser.open(url)
@@ -159,9 +194,13 @@ def __init__(
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(
@@ -169,7 +208,9 @@ def log_before_call(
):
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,
@@ -194,15 +235,19 @@ def __log_method_info(
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(
@@ -213,64 +258,106 @@ def __log_method_info(
@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_credentials,
)
# remove key if defined
+
function_args.pop("key", None)
+
log_credentials()
+
return function_args
def log_after_call(
@@ -279,15 +366,18 @@ def log_after_call(
):
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],
@@ -326,41 +416,75 @@ def __check_last_method(self) -> bool:
"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.\"\"\"
+
# ######### THIS FILE IS AUTO GENERATED - ANY CHANGES WILL BE VOID ######### #
+
# 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.core.plots.plotly_helper import theme # noqa: F401
+
+
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.core.sdk.sdk_init as lib
+
from openbb_terminal.core.sdk import (
+
controllers as ctrl,
+
models as model,
+
)
+
from openbb_terminal.core.session.current_system import get_current_system
+
from openbb_terminal.core.session.current_user import is_local
+
from openbb_terminal.terminal_helper import is_auth_enabled
+
+
cfg.setup_config_terminal(is_sdk=True)
+
+
logger = logging.getLogger(__name__)
+
cfg.theme.applyMPLstyle()
+
\r\r\r
+
"""
+
return "\r".join(sdk_imports.splitlines())
diff --git a/openbb_terminal/core/sdk/sdk_init.py b/openbb_terminal/core/sdk/sdk_init.py
index 088a991feb70..2fff36da3312 100644
--- a/openbb_terminal/core/sdk/sdk_init.py
+++ b/openbb_terminal/core/sdk/sdk_init.py
@@ -1,47 +1,78 @@
# flake8: noqa pylint: disable=R0402,C0412,unused-import
+
# noqa: F401
# Session
+
from openbb_terminal.core.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
+
# 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,
@@ -52,7 +83,9 @@
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,
@@ -66,7 +99,9 @@
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,
@@ -74,7 +109,9 @@
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,
@@ -89,12 +126,15 @@
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,
@@ -114,7 +154,9 @@
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,
@@ -127,7 +169,9 @@
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,
@@ -152,7 +196,9 @@
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,
@@ -160,7 +206,9 @@
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,
@@ -172,9 +220,13 @@
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,
+ shroom_model as crypto_onchain_shroom_model,
+ shroom_view as crypto_onchain_shroom_view,
)
+
# Cryptocurrency Overview
+
from openbb_terminal.cryptocurrency.overview import (
blockchaincenter_model as crypto_ov_blockchaincenter_model,
blockchaincenter_view as crypto_ov_blockchaincenter_view,
@@ -197,13 +249,17 @@
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,
@@ -211,7 +267,9 @@
regression_view as econometrics_regression_view,
)
+
# Fixedincome
+
from openbb_terminal.fixedincome import (
fred_model as fixedincome_fred_model,
ecb_model as fixedincome_ecb_model,
@@ -221,6 +279,7 @@
# Economy
+
from openbb_terminal.economy import (
alphavantage_model as economy_alphavantage_model,
alphavantage_view as economy_alphavantage_view,
@@ -240,7 +299,9 @@
oecd_view as economy_oecd_view,
)
+
# ETF's
+
from openbb_terminal.etf import (
financedatabase_model as etf_financedatabase_model,
financedatabase_view as etf_financedatabase_view,
@@ -250,7 +311,9 @@
fmp_view as etf_fmp_view,
)
+
# Forex
+
from openbb_terminal.forex import (
av_model as forex_av_model,
av_view as forex_av_view,
@@ -259,20 +322,26 @@
sdk_helpers as forex_sdk_helpers,
)
+
# Funds
+
from openbb_terminal.mutual_funds import (
mstarpy_model as funds_mstarpy_model,
mstarpy_view as funds_mstarpy_view,
)
+
# Futures
+
from openbb_terminal.futures import (
yfinance_model as futures_yfinance_model,
yfinance_view as futures_yfinance_view,
sdk_helper as futures_sdk_model,
)
+
# Stocks Helpers
+
from openbb_terminal.stocks import (
cboe_model as stocks_cboe_model,
cboe_view as stocks_cboe_view,
@@ -281,13 +350,17 @@
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,
@@ -301,7 +374,9 @@
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,
@@ -318,7 +393,9 @@
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,
@@ -329,7 +406,9 @@
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,
@@ -357,13 +436,17 @@
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,
@@ -374,7 +457,9 @@
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,
@@ -394,18 +479,23 @@
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,
)
+
# Stocks - Technical Analysis
+
from openbb_terminal.stocks.technical_analysis import (
finbrain_model as stocks_ta_finbrain_model,
finbrain_view as stocks_ta_finbrain_view,
@@ -415,22 +505,29 @@
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,
@@ -474,15 +571,19 @@
trans_view as forecast_trans_view,
whisper_model as forecast_whisper_model,
)
+
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,
@@ -492,9 +593,11 @@
)
OPTIMIZATION_TOOLKIT_ENABLED = True
+
except ModuleNotFoundError:
OPTIMIZATION_TOOLKIT_ENABLED = False
+
FORECASTING_TOOLKIT_WARNING = (
"[yellow]"
"Forecasting Toolkit is disabled. "
@@ -503,6 +606,7 @@
"\n"
"[/yellow]"
)
+
OPTIMIZATION_TOOLKIT_WARNING = (
"[yellow]"
"Portfolio Optimization Toolkit is disabled. "
diff --git a/openbb_terminal/core/sdk/trail_map.csv b/openbb_terminal/core/sdk/trail_map.csv
index 3f36f6facc10..d1eeeba203e8 100644
--- a/openbb_terminal/core/sdk/trail_map.csv
+++ b/openbb_terminal/core/sdk/trail_map.csv
@@ -119,6 +119,7 @@ crypto.onchain.hr,crypto_dd_glassnode_model.get_hashrate,crypto_dd_glassnode_vie
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,crypto_onchain_shroom_model.get_query_data,crypto_onchain_shroom_view.display_query
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,
diff --git a/openbb_terminal/core/sdk/trailmap.py b/openbb_terminal/core/sdk/trailmap.py
index 9ac83c9f6784..663c105276b2 100644
--- a/openbb_terminal/core/sdk/trailmap.py
+++ b/openbb_terminal/core/sdk/trailmap.py
@@ -19,15 +19,22 @@ def get_signature_parameters(
function: Callable[..., Any], globalns: Dict[str, Any]
) -> Dict[str, inspect.Parameter]:
signature = inspect.signature(function)
+
params = {}
+
cache: dict[str, Any] = {}
+
for name, parameter in signature.parameters.items():
annotation = parameter.annotation
+
if annotation is parameter.empty:
params[name] = parameter
+
continue
+
if annotation is None:
params[name] = parameter.replace(annotation=type(None))
+
continue
if isinstance(annotation, ForwardRef):
@@ -44,47 +51,66 @@ def get_signature_parameters(
class FuncAttr:
def __init__(self) -> 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
+
self.params: Dict[str, inspect.Parameter] = {}
def get_func_attrs(self, func: str) -> None:
module_path, function_name = func.rsplit(".", 1)
+
func_attr = getattr(getattr(lib, module_path), function_name)
+
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.long_doc = func_attr.__doc__
+
self.short_doc = clean_attr_desc(func_attr)
for k, p in get_signature_parameters(func_attr, func_attr.__globals__).items():
self.params[k] = p
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, location_path: list, class_attr: str, view: bool = False
) -> str:
"""Creates the function definition to be used in SDK docs."""
+
funcspec = self.params
+
definition = ""
+
for arg, param in funcspec.items():
annotation = (
(
@@ -101,50 +127,71 @@ def get_definition(
)
default = ""
+
if param.default is not param.empty:
arg_default = (
param.default
if param.default is not inspect.Parameter.empty
else "None"
)
+
default = (
f" = {arg_default}"
if not isinstance(arg_default, str)
else f' = "{arg_default}"'
)
+
definition += f"{arg}: {annotation}{default}, "
definition = definition.rstrip(", ")
trail = ".".join([t for t in location_path if t != ""])
+
sdk_name = class_attr if not view else f"{class_attr}_chart"
trail = trail.replace("root.", "")
+
sdk_path = f"{f'openbb.{trail}' if trail else 'openbb'}.{sdk_name}"
return f"{sdk_path}({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.func_attrs["view"] = FuncAttr()
+
for k, cls in self.func_attrs.items():
if getattr(self, f"{k}_func"):
cls.get_func_attrs(getattr(self, f"{k}"))
+
cls.func_def = cls.get_definition(
tmap, self.class_attr, view=k == "view"
)
@@ -155,10 +202,14 @@ def get_trailmaps(sort: bool = False) -> List[Trailmap]:
def load_csv(path: Optional[Path] = None) -> Dict[str, Dict[str, str]]:
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")
@@ -167,21 +218,27 @@ 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 lib.FORECASTING_TOOLKIT_ENABLED:
map_forecasting_dict = load_csv(path=MAP_FORECASTING_PATH)
+
map_dict.update(map_forecasting_dict)
+
else:
print_error("Forecasting")
if lib.OPTIMIZATION_TOOLKIT_ENABLED:
map_optimization_dict = load_csv(path=MAP_OPTIMIZATION_PATH)
+
map_dict.update(map_optimization_dict)
+
else:
print_error("Optimization")
@@ -193,7 +250,9 @@ def 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
diff --git a/openbb_terminal/cryptocurrency/onchain/onchain_controller.py b/openbb_terminal/cryptocurrency/onchain/onchain_controller.py
index 66986be6699e..9b3fea3f691d 100644
--- a/openbb_terminal/cryptocurrency/onchain/onchain_controller.py
+++ b/openbb_terminal/cryptocurrency/onchain/onchain_controller.py
@@ -22,7 +22,6 @@
ethgasstation_view,
ethplorer_model,
ethplorer_view,
- shroom_model,
shroom_view,
whale_alert_model,
whale_alert_view,
@@ -82,9 +81,7 @@ class OnchainController(BaseController):
"btccp",
"btcct",
"btcblockdata",
- "dt",
- "ds",
- "tvl",
+ "query",
]
PATH = "/crypto/onchain/"
@@ -101,9 +98,6 @@ def __init__(self, queue: Optional[List[str]] = None):
choices: dict = self.choices_default
choices["hr"].update({c: {} for c in GLASSNODE_SUPPORTED_HASHRATE_ASSETS})
- choices["ds"].update(
- {c: None for c in shroom_model.DAPP_STATS_PLATFORM_CHOICES}
- )
self.completer = NestedCompleter.from_nested_dict(choices)
@@ -122,9 +116,7 @@ def print_help(self):
mt.add_cmd("ueat")
mt.add_cmd("ttcp")
mt.add_cmd("baas")
- mt.add_cmd("dt")
- mt.add_cmd("ds")
- mt.add_cmd("tvl")
+ mt.add_cmd("query")
mt.add_raw("\n")
mt.add_param("_address", self.address or "")
mt.add_param("_type", self.address_type or "")
@@ -142,136 +134,40 @@ def print_help(self):
console.print(text=mt.menu_text, menu="Cryptocurrency - Onchain")
@log_start_end(log=logger)
- def call_tvl(self, other_args: List[str]):
- """Process tvl command"""
+ def call_query(self, other_args: List[str]):
+ """Process query command"""
parser = argparse.ArgumentParser(
add_help=False,
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="tvl",
+ prog="query",
description="""
- Total value locked (TVL) metric - Ethereum ERC20
+ Make any flipsidecrypto query
[Source:https://docs.flipsidecrypto.com/]
- useraddress OR addressname must be provided
""",
)
parser.add_argument(
- "-u",
- "--useraddress",
- dest="useraddress",
+ "-q",
+ "--query",
+ dest="query",
type=str,
- help="User address we'd like to take a balance reading of against the contract",
- )
-
- parser.add_argument(
- "-a",
- "--addressname",
- dest="addressname",
- type=str,
- help="Address name corresponding to the user address",
- )
-
- parser.add_argument(
- "-s",
- "--symbol",
- dest="symbol",
- type=str,
- help="Contract symbol",
- default="USDC",
- )
-
- parser.add_argument(
- "-i",
- "--interval",
- dest="interval",
- type=int,
- help="Interval in months",
- default=12,
+ nargs="+",
+ required=not any(["-h" in other_args, "--help" in other_args]),
+ help="Query to make",
)
if other_args and other_args[0][0] != "-":
- other_args.insert(0, "-u")
+ other_args.insert(0, "-q")
ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES
+ parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES, limit=10
)
if ns_parser:
- shroom_view.display_total_value_locked(
- user_address=ns_parser.useraddress,
- address_name=ns_parser.addressname,
- interval=ns_parser.interval,
- symbol=ns_parser.symbol,
+ shroom_view.display_query(
+ query=" ".join(ns_parser.query),
export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
- def call_ds(self, other_args: List[str]):
- """Process ds command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="ds",
- description="""
- Get daily transactions for certain symbols in ethereum blockchain
- [Source: https://sdk.flipsidecrypto.xyz/shroomdk]
- """,
- )
-
- parser.add_argument(
- "-p",
- "--platform",
- dest="platform",
- type=str,
- help="Ethereum platform to check fees/number of users over time",
- default="curve",
- choices=shroom_model.DAPP_STATS_PLATFORM_CHOICES,
- )
-
- if other_args and other_args[0][0] != "-":
- other_args.insert(0, "-p")
-
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES, raw=True, limit=10
- )
-
- if ns_parser:
- shroom_view.display_dapp_stats(
- raw=ns_parser.raw,
limit=ns_parser.limit,
- platform=ns_parser.platform,
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
- )
-
- @log_start_end(log=logger)
- def call_dt(self, other_args: List[str]):
- """Process dt command"""
- parser = argparse.ArgumentParser(
- add_help=False,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- prog="dt",
- description="""
- Get daily transactions for certain symbols in ethereum blockchain
- [Source: https://sdk.flipsidecrypto.xyz/shroomdk]
- """,
- )
-
- ns_parser = self.parse_known_args_and_warn(
- parser, other_args, EXPORT_BOTH_RAW_DATA_AND_FIGURES
- )
-
- if ns_parser:
- shroom_view.display_daily_transactions(
- export=ns_parser.export,
- sheet_name=" ".join(ns_parser.sheet_name)
- if ns_parser.sheet_name
- else None,
)
@log_start_end(log=logger)
diff --git a/openbb_terminal/cryptocurrency/onchain/shroom_model.py b/openbb_terminal/cryptocurrency/onchain/shroom_model.py
index cd9a8390125f..5de9d366aa15 100644
--- a/openbb_terminal/cryptocurrency/onchain/shroom_model.py
+++ b/openbb_terminal/cryptocurrency/onchain/shroom_model.py
@@ -77,6 +77,30 @@ def get_shroom_data(sql: str):
return data
+@log_start_end(log=logger)
+@check_api_key(["API_SHROOM_KEY"])
+def get_query_data(sql: str) -> pd.DataFrame:
+ """Get query data
+
+ Parameters
+ ----------
+ sql : str
+ SQL query
+
+ Returns
+ -------
+ pd.DataFrame
+ DataFrame with query data
+ """
+ data = get_shroom_data(sql)
+
+ if data and data["results"] and data["columnLabels"]:
+ df = pd.DataFrame(data["results"], columns=data["columnLabels"])
+ return df
+
+ return pd.DataFrame()
+
+
@log_start_end(log=logger)
@check_api_key(["API_SHROOM_KEY"])
def get_dapp_stats(
@@ -99,8 +123,8 @@ def get_dapp_stats(
sum(t.fee_usd) as fee,
count(distinct(s.from_address)) as n_users,
count(distinct(s.amount_usd)) as volume
- from ethereum.dex_swaps s
- join ethereum.transactions t
+ from ethereum.core.ez_dex_swaps s
+ join ethereum.core.fact_transactions t
on s.tx_id = t.tx_id
where platform = '{platform}'
group by date
@@ -147,7 +171,7 @@ def get_daily_transactions(symbols: List[str]) -> pd.DataFrame:
select
date_trunc('day', block_timestamp) as timeframe,
{extra_sql}
- from ethereum.udm_events
+ from ethereum.core.udm_events
where
block_timestamp >= '2020-06-01'
-- and amount0_usd > '0'
@@ -212,7 +236,7 @@ def get_total_value_locked(
symbol,
amount_usd/1000000 as amount_usd
FROM
- ethereum.erc20_balances
+ ethereum.core.erc20_balances
WHERE
{extra_sql}
symbol = '{symbol}' AND
diff --git a/openbb_terminal/cryptocurrency/onchain/shroom_view.py b/openbb_terminal/cryptocurrency/onchain/shroom_view.py
index 0f87e1a6ed50..4e4a7a4b5df1 100644
--- a/openbb_terminal/cryptocurrency/onchain/shroom_view.py
+++ b/openbb_terminal/cryptocurrency/onchain/shroom_view.py
@@ -9,6 +9,7 @@
from openbb_terminal.cryptocurrency.onchain.shroom_model import (
get_daily_transactions,
get_dapp_stats,
+ get_query_data,
get_total_value_locked,
)
from openbb_terminal.decorators import check_api_key, log_start_end
@@ -18,6 +19,39 @@
logger = logging.getLogger(__name__)
+@log_start_end(log=logger)
+@check_api_key(["API_SHROOM_KEY"])
+def display_query(
+ query: str,
+ sheet_name: Optional[str] = None,
+ limit: int = 10,
+ export: str = "",
+):
+ """Display query results from shroom
+ [Source: https://sdk.flipsidecrypto.xyz/shroomdk]
+
+ Parameters
+ ----------
+ query : str
+ Query string
+ raw : bool
+ Show raw data
+ limit : int
+ Limit of rows
+ export : str
+ Export dataframe data to csv,json,xlsx file
+ """
+ df = get_query_data(query)
+ if df.empty:
+ console.print("[red]No data found.[/red]")
+ elif not df.empty:
+ print_rich_table(df, limit=limit)
+
+ export_data(
+ export, os.path.dirname(os.path.abspath(__file__)), "query", df, sheet_name
+ )
+
+
@log_start_end(log=logger)
@check_api_key(["API_SHROOM_KEY"])
def display_daily_transactions(
diff --git a/openbb_terminal/miscellaneous/i18n/en.yml b/openbb_terminal/miscellaneous/i18n/en.yml
index 45bd62fb070b..bfbd3a9e388f 100644
--- a/openbb_terminal/miscellaneous/i18n/en.yml
+++ b/openbb_terminal/miscellaneous/i18n/en.yml
@@ -543,9 +543,7 @@ en:
crypto/onchain/ueat: unique ethereum addresses which made a transaction
crypto/onchain/ttcp: top traded crypto pairs on given decentralized exchange
crypto/onchain/baas: bid, ask prices, average spread for given crypto pair
- crypto/onchain/dt: daily transactions of eth tokens
- crypto/onchain/ds: stats of eth platform (daily users; fees)
- crypto/onchain/tvl: total value locked of ERC20 tokens
+ crypto/onchain/query: flipsidecrypto query
crypto/onchain/_address: Ethereum address
crypto/onchain/_type: Address type
crypto/onchain/_ethereum_: Ethereum
diff --git a/openbb_terminal/miscellaneous/sources/openbb_default.json b/openbb_terminal/miscellaneous/sources/openbb_default.json
index 131d9e15894f..640172042dee 100644
--- a/openbb_terminal/miscellaneous/sources/openbb_default.json
+++ b/openbb_terminal/miscellaneous/sources/openbb_default.json
@@ -1,23 +1,11 @@
{
"stocks": {
- "search": [
- "FinanceDatabase"
- ],
- "quote": [
- "FinancialModelingPrep"
- ],
- "tob": [
- "CBOE"
- ],
+ "search": ["FinanceDatabase"],
+ "quote": ["FinancialModelingPrep"],
+ "tob": ["CBOE"],
"candle": [],
- "codes": [
- "Polygon"
- ],
- "news": [
- "Feedparser",
- "NewsApi",
- "Ultima"
- ],
+ "codes": ["Polygon"],
+ "news": ["Feedparser", "NewsApi", "Ultima"],
"load": [
"YahooFinance",
"AlphaVantage",
@@ -27,85 +15,37 @@
"DataBento"
],
"th": {
- "open": [
- "Bursa"
- ],
- "closed": [
- "Bursa"
- ],
- "all": [
- "Bursa"
- ],
- "exchange": [
- "Bursa"
- ],
- "holidays": [
- "PandasMarketCalendars"
- ],
- "symbol": [
- "FinanceDatabase"
- ]
+ "open": ["Bursa"],
+ "closed": ["Bursa"],
+ "all": ["Bursa"],
+ "exchange": ["Bursa"],
+ "holidays": ["PandasMarketCalendars"],
+ "symbol": ["FinanceDatabase"]
},
"options": {
- "unu": [
- "FDScanner"
- ],
+ "unu": ["FDScanner"],
"calc": [],
"screen": {
- "view": [
- "Syncretism"
- ],
+ "view": ["Syncretism"],
"set": [],
- "scr": [
- "Syncretism"
- ]
+ "scr": ["Syncretism"]
},
- "load": [
- "YahooFinance",
- "Tradier",
- "Nasdaq",
- "Intrinio"
- ],
- "pcr": [
- "AlphaQuery"
- ],
- "info": [
- "Barchart"
- ],
- "hist": [
- "ChartExchange",
- "Tradier",
- "Intrinio"
- ],
- "vsurf": [
- "YahooFinance"
- ],
- "grhist": [
- "Syncretism",
- "Intrinio"
- ],
- "plot": [
- "YahooFinance"
- ],
- "parity": [
- "YahooFinance"
- ],
- "binom": [
- "YahooFinance"
- ],
- "greeks": [
- "YahooFinance"
- ],
- "eodchain": [
- "Intrinio"
- ],
+ "load": ["YahooFinance", "Tradier", "Nasdaq", "Intrinio"],
+ "pcr": ["AlphaQuery"],
+ "info": ["Barchart"],
+ "hist": ["ChartExchange", "Tradier", "Intrinio"],
+ "vsurf": ["YahooFinance"],
+ "grhist": ["Syncretism", "Intrinio"],
+ "plot": ["YahooFinance"],
+ "parity": ["YahooFinance"],
+ "binom": ["YahooFinance"],
+ "greeks": ["YahooFinance"],
+ "eodchain": ["Intrinio"],
"pricing": {
"add": [],
"rmv": [],
"show": [],
- "rnval": [
- "YahooFinance"
- ]
+ "rnval": ["YahooFinance"]
},
"hedge": {
"list": [],
@@ -113,9 +53,7 @@
"add": [],
"rmv": [],
"sop": [],
- "plot": [
- "YahooFinance"
- ]
+ "plot": ["YahooFinance"]
}
},
"disc": {
@@ -173,360 +111,131 @@
]
},
"sia": {
- "select": [
- "YahooFinance"
- ],
+ "select": ["YahooFinance"],
"clear": [],
- "industry": [
- "FinanceDatabase"
- ],
- "sector": [
- "FinanceDatabase"
- ],
- "country": [
- "FinanceDatabase"
- ],
- "mktcap": [
- "FinanceDatabase"
- ],
- "exchange": [
- "FinanceDatabase"
- ],
- "period": [
- "StockAnalysis"
- ],
- "cps": [
- "FinanceDatabase"
- ],
- "cpic": [
- "FinanceDatabase"
- ],
- "cpis": [
- "FinanceDatabase"
- ],
- "cpcs": [
- "FinanceDatabase"
- ],
- "cpci": [
- "FinanceDatabase"
- ],
- "metric": [
- "YahooFinance"
- ],
- "vis": [
- "StockAnalysis"
- ]
+ "industry": ["FinanceDatabase"],
+ "sector": ["FinanceDatabase"],
+ "country": ["FinanceDatabase"],
+ "mktcap": ["FinanceDatabase"],
+ "exchange": ["FinanceDatabase"],
+ "period": ["StockAnalysis"],
+ "cps": ["FinanceDatabase"],
+ "cpic": ["FinanceDatabase"],
+ "cpis": ["FinanceDatabase"],
+ "cpcs": ["FinanceDatabase"],
+ "cpci": ["FinanceDatabase"],
+ "metric": ["YahooFinance"],
+ "vis": ["StockAnalysis"]
},
"dps": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
- "shorted": [
- "YahooFinance"
- ],
- "ctb": [
- "InteractiveBrokers",
- "Stocksera"
- ],
- "hsi": [
- "Shortinterest"
- ],
- "prom": [
- "FINRA"
- ],
- "pos": [
- "Stockgrid"
- ],
- "sidtc": [
- "Stockgrid"
- ],
- "dpotc": [
- "FINRA"
- ],
- "ftd": [
- "SEC"
- ],
- "spos": [
- "Stockgrid"
- ],
- "psi": [
- "Stockgrid",
- "Quandl"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
+ "shorted": ["YahooFinance"],
+ "ctb": ["InteractiveBrokers", "Stocksera"],
+ "hsi": ["Shortinterest"],
+ "prom": ["FINRA"],
+ "pos": ["Stockgrid"],
+ "sidtc": ["Stockgrid"],
+ "dpotc": ["FINRA"],
+ "ftd": ["SEC"],
+ "spos": ["Stockgrid"],
+ "psi": ["Stockgrid", "Quandl"]
},
"scr": {
"view": [],
"set": [],
- "historical": [
- "YahooFinance"
- ],
- "overview": [
- "Finviz"
- ],
- "valuation": [
- "Finviz"
- ],
- "financial": [
- "Finviz"
- ],
- "ownership": [
- "Finviz"
- ],
- "performance": [
- "Finviz"
- ],
- "technical": [
- "Finviz"
- ],
- "arktrades": [
- "Cathiesark"
- ]
+ "historical": ["YahooFinance"],
+ "overview": ["Finviz"],
+ "valuation": ["Finviz"],
+ "financial": ["Finviz"],
+ "ownership": ["Finviz"],
+ "performance": ["Finviz"],
+ "technical": ["Finviz"],
+ "arktrades": ["Cathiesark"]
},
"ins": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
"view": [],
"set": [],
- "filter": [
- "OpenInsider"
- ],
- "lcb": [
- "OpenInsider"
- ],
- "lpsb": [
- "OpenInsider"
- ],
- "lit": [
- "OpenInsider"
- ],
- "lip": [
- "OpenInsider"
- ],
- "blip": [
- "OpenInsider"
- ],
- "blop": [
- "OpenInsider"
- ],
- "blcp": [
- "OpenInsider"
- ],
- "lis": [
- "OpenInsider"
- ],
- "blis": [
- "OpenInsider"
- ],
- "blos": [
- "OpenInsider"
- ],
- "blcs": [
- "OpenInsider"
- ],
- "topt": [
- "OpenInsider"
- ],
- "toppw": [
- "OpenInsider"
- ],
- "toppm": [
- "OpenInsider"
- ],
- "tipt": [
- "OpenInsider"
- ],
- "tippw": [
- "OpenInsider"
- ],
- "tippm": [
- "OpenInsider"
- ],
- "tist": [
- "OpenInsider"
- ],
- "tispw": [
- "OpenInsider"
- ],
- "tispm": [
- "OpenInsider"
- ],
- "stats": [
- "OpenInsider"
- ],
- "act": [
- "BusinessInsider"
- ],
- "lins": [
- "Finviz"
- ]
+ "filter": ["OpenInsider"],
+ "lcb": ["OpenInsider"],
+ "lpsb": ["OpenInsider"],
+ "lit": ["OpenInsider"],
+ "lip": ["OpenInsider"],
+ "blip": ["OpenInsider"],
+ "blop": ["OpenInsider"],
+ "blcp": ["OpenInsider"],
+ "lis": ["OpenInsider"],
+ "blis": ["OpenInsider"],
+ "blos": ["OpenInsider"],
+ "blcs": ["OpenInsider"],
+ "topt": ["OpenInsider"],
+ "toppw": ["OpenInsider"],
+ "toppm": ["OpenInsider"],
+ "tipt": ["OpenInsider"],
+ "tippw": ["OpenInsider"],
+ "tippm": ["OpenInsider"],
+ "tist": ["OpenInsider"],
+ "tispw": ["OpenInsider"],
+ "tispm": ["OpenInsider"],
+ "stats": ["OpenInsider"],
+ "act": ["BusinessInsider"],
+ "lins": ["Finviz"]
},
"gov": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
- "lasttrades": [
- "QuiverQuant"
- ],
- "topbuys": [
- "QuiverQuant"
- ],
- "topsells": [
- "QuiverQuant"
- ],
- "lastcontracts": [
- "QuiverQuant"
- ],
- "qtrcontracts": [
- "QuiverQuant"
- ],
- "toplobbying": [
- "QuiverQuant"
- ],
- "gtrades": [
- "QuiverQuant"
- ],
- "contracts": [
- "QuiverQuant"
- ],
- "histcont": [
- "QuiverQuant"
- ],
- "lobbying": [
- "QuiverQuant"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
+ "lasttrades": ["QuiverQuant"],
+ "topbuys": ["QuiverQuant"],
+ "topsells": ["QuiverQuant"],
+ "lastcontracts": ["QuiverQuant"],
+ "qtrcontracts": ["QuiverQuant"],
+ "toplobbying": ["QuiverQuant"],
+ "gtrades": ["QuiverQuant"],
+ "contracts": ["QuiverQuant"],
+ "histcont": ["QuiverQuant"],
+ "lobbying": ["QuiverQuant"]
},
"ba": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
- "headlines": [
- "FinBrain"
- ],
- "snews": [
- "Finnhub"
- ],
- "wsb": [
- "Reddit"
- ],
- "spacc": [
- "Reddit"
- ],
- "redditsent": [
- "Reddit"
- ],
- "popular": [
- "Reddit"
- ],
- "getdd": [
- "Reddit"
- ],
- "trending": [
- "Stocktwits"
- ],
- "stalker": [
- "Stocktwits"
- ],
- "bullbear": [
- "Stocktwits"
- ],
- "messages": [
- "Stocktwits"
- ],
- "infer": [
- "Twitter"
- ],
- "sentiment": [
- "Twitter"
- ],
- "mentions": [
- "Google"
- ],
- "regions": [
- "Google"
- ],
- "interest": [
- "Google"
- ],
- "queries": [
- "Google"
- ],
- "rise": [
- "Google"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
+ "headlines": ["FinBrain"],
+ "snews": ["Finnhub"],
+ "wsb": ["Reddit"],
+ "spacc": ["Reddit"],
+ "redditsent": ["Reddit"],
+ "popular": ["Reddit"],
+ "getdd": ["Reddit"],
+ "trending": ["Stocktwits"],
+ "stalker": ["Stocktwits"],
+ "bullbear": ["Stocktwits"],
+ "messages": ["Stocktwits"],
+ "infer": ["Twitter"],
+ "sentiment": ["Twitter"],
+ "mentions": ["Google"],
+ "regions": ["Google"],
+ "interest": ["Google"],
+ "queries": ["Google"],
+ "rise": ["Google"]
},
"ca": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
- "tsne": [
- "YahooFinance"
- ],
- "get": [
- "Finviz",
- "Polygon",
- "Finnhub"
- ],
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
+ "tsne": ["YahooFinance"],
+ "get": ["Finviz", "Polygon", "Finnhub"],
"set": [],
"add": [],
"rmv": [],
- "historical": [
- "YahooFinance"
- ],
- "hcorr": [
- "YahooFinance"
- ],
- "volume": [
- "YahooFinance"
- ],
- "income": [
- "MarketWatch"
- ],
- "balance": [
- "MarketWatch"
- ],
- "cashflow": [
- "MarketWatch"
- ],
- "sentiment": [
- "FinBrain"
- ],
- "scorr": [
- "FinBrain"
- ],
- "overview": [
- "Finviz"
- ],
- "valuation": [
- "Finviz"
- ],
- "financial": [
- "Finviz"
- ],
- "ownership": [
- "Finviz"
- ],
- "performance": [
- "Finviz"
- ],
- "technical": [
- "Finviz"
- ]
+ "historical": ["YahooFinance"],
+ "hcorr": ["YahooFinance"],
+ "volume": ["YahooFinance"],
+ "income": ["MarketWatch"],
+ "balance": ["MarketWatch"],
+ "cashflow": ["MarketWatch"],
+ "sentiment": ["FinBrain"],
+ "scorr": ["FinBrain"],
+ "overview": ["Finviz"],
+ "valuation": ["Finviz"],
+ "financial": ["Finviz"],
+ "ownership": ["Finviz"],
+ "performance": ["Finviz"],
+ "technical": ["Finviz"]
},
"fa": {
"load": [
@@ -651,760 +360,277 @@
]
},
"bt": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
- "whatif": [
- "YahooFinance"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
+ "whatif": ["YahooFinance"]
},
"ta": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ],
- "recom": [
- "TradingView"
- ],
- "summary": [
- "FinBrain"
- ],
- "tv": [
- "TradingView"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"],
+ "recom": ["TradingView"],
+ "summary": ["FinBrain"],
+ "tv": ["TradingView"]
},
"qa": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon",
- "EODHD"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD"]
}
},
"crypto": {
- "price": [
- "Pyth"
- ],
- "load": [
- "YahooFinance",
- "CoinGecko",
- "CCXT"
- ],
- "find": [
- "CoinGecko",
- "CoinPaprika",
- "Binance",
- "Coinbase",
- "YahooFinance"
- ],
- "headlines": [
- "FinBrain"
- ],
- "prt": [
- "CoinGecko"
- ],
+ "price": ["Pyth"],
+ "load": ["YahooFinance", "CoinGecko", "CCXT"],
+ "find": ["CoinGecko", "CoinPaprika", "Binance", "Coinbase", "YahooFinance"],
+ "headlines": ["FinBrain"],
+ "prt": ["CoinGecko"],
"disc": {
- "top": [
- "CoinGecko",
- "CoinMarketCap"
- ],
- "trending": [
- "CoinGecko"
- ],
- "gainers": [
- "CoinGecko"
- ],
- "losers": [
- "CoinGecko"
- ],
- "search": [
- "CoinPaprika"
- ],
- "nft": [
- "DappRadar"
- ],
- "games": [
- "DappRadar"
- ],
- "dapps": [
- "DappRadar"
- ],
- "dex": [
- "DappRadar"
- ]
+ "top": ["CoinGecko", "CoinMarketCap"],
+ "trending": ["CoinGecko"],
+ "gainers": ["CoinGecko"],
+ "losers": ["CoinGecko"],
+ "search": ["CoinPaprika"],
+ "nft": ["DappRadar"],
+ "games": ["DappRadar"],
+ "dapps": ["DappRadar"],
+ "dex": ["DappRadar"]
},
"ov": {
- "global": [
- "CoinGecko",
- "CoinPaprika"
- ],
- "defi": [
- "CoinGecko"
- ],
- "stables": [
- "CoinGecko"
- ],
- "exchanges": [
- "CoinGecko",
- "CoinPaprika"
- ],
- "exrates": [
- "CoinGecko"
- ],
- "indexes": [
- "CoinGecko"
- ],
- "derivatives": [
- "CoinGecko"
- ],
- "categories": [
- "CoinGecko"
- ],
- "hold": [
- "CoinGecko"
- ],
- "hm": [
- "CoinGecko"
- ],
- "info": [
- "CoinPaprika"
- ],
- "markets": [
- "CoinPaprika"
- ],
- "exmarkets": [
- "CoinPaprika"
- ],
- "platforms": [
- "CoinPaprika"
- ],
- "contracts": [
- "CoinPaprika"
- ],
- "pairs": [
- "Coinbase"
- ],
- "news": [
- "CryptoPanic"
- ],
- "wf": [
- "WithdrawalFees"
- ],
- "ewf": [
- "WithdrawalFees"
- ],
- "wfpe": [
- "WithdrawalFees"
- ],
- "altindex": [
- "BlockchainCenter"
- ],
- "btcrb": [
- "BlockchainCenter"
- ],
- "ch": [
- "Rekt"
- ],
- "cr": [
- "LoanScan"
- ],
- "fun": [
- "TokenTerminal"
- ]
+ "global": ["CoinGecko", "CoinPaprika"],
+ "defi": ["CoinGecko"],
+ "stables": ["CoinGecko"],
+ "exchanges": ["CoinGecko", "CoinPaprika"],
+ "exrates": ["CoinGecko"],
+ "indexes": ["CoinGecko"],
+ "derivatives": ["CoinGecko"],
+ "categories": ["CoinGecko"],
+ "hold": ["CoinGecko"],
+ "hm": ["CoinGecko"],
+ "info": ["CoinPaprika"],
+ "markets": ["CoinPaprika"],
+ "exmarkets": ["CoinPaprika"],
+ "platforms": ["CoinPaprika"],
+ "contracts": ["CoinPaprika"],
+ "pairs": ["Coinbase"],
+ "news": ["CryptoPanic"],
+ "wf": ["WithdrawalFees"],
+ "ewf": ["WithdrawalFees"],
+ "wfpe": ["WithdrawalFees"],
+ "altindex": ["BlockchainCenter"],
+ "btcrb": ["BlockchainCenter"],
+ "ch": ["Rekt"],
+ "cr": ["LoanScan"],
+ "fun": ["TokenTerminal"]
},
"onchain": {
- "hr": [
- "Glassnode"
- ],
- "btccp": [
- "Blockchain"
- ],
- "btcct": [
- "Blockchain"
- ],
- "btcblockdata": [
- "Blockchain"
- ],
- "gwei": [
- "ETHGasStations"
- ],
- "whales": [
- "WhaleAlert"
- ],
- "lt": [
- "BitQuery"
- ],
- "dvcp": [
- "BitQuery"
- ],
- "tv": [
- "BitQuery"
- ],
- "ueat": [
- "BitQuery"
- ],
- "ttcp": [
- "BitQuery"
- ],
- "baas": [
- "BitQuery"
- ],
- "dt": [
- "Shroom"
- ],
- "ds": [
- "Shroom"
- ],
- "tvl": [
- "Shroom"
- ],
- "address": [
- "Ethplorer"
- ],
- "top": [
- "Ethplorer"
- ],
- "balance": [
- "Ethplorer"
- ],
- "hist": [
- "Ethplorer"
- ],
- "info": [
- "Ethplorer"
- ],
- "holders": [
- "Ethplorer"
- ],
- "th": [
- "Ethplorer"
- ],
- "prices": [
- "Ethplorer"
- ],
- "tx": [
- "Ethplorer"
- ]
+ "hr": ["Glassnode"],
+ "btccp": ["Blockchain"],
+ "btcct": ["Blockchain"],
+ "btcblockdata": ["Blockchain"],
+ "gwei": ["ETHGasStations"],
+ "whales": ["WhaleAlert"],
+ "lt": ["BitQuery"],
+ "dvcp": ["BitQuery"],
+ "tv": ["BitQuery"],
+ "ueat": ["BitQuery"],
+ "ttcp": ["BitQuery"],
+ "baas": ["BitQuery"],
+ "query": ["Shroom"],
+ "address": ["Ethplorer"],
+ "top": ["Ethplorer"],
+ "balance": ["Ethplorer"],
+ "hist": ["Ethplorer"],
+ "info": ["Ethplorer"],
+ "holders": ["Ethplorer"],
+ "th": ["Ethplorer"],
+ "prices": ["Ethplorer"],
+ "tx": ["Ethplorer"]
},
"defi": {
- "newsletter": [
- "Substack"
- ],
- "vaults": [
- "Coindix"
- ],
- "tokens": [
- "TheGraph"
- ],
- "stats": [
- "TheGraph"
- ],
- "pairs": [
- "TheGraph"
- ],
- "pools": [
- "TheGraph"
- ],
- "swaps": [
- "TheGraph"
- ],
- "ldapps": [
- "DeFiLlama"
- ],
- "gdapps": [
- "DeFiLlama"
- ],
- "stvl": [
- "DeFiLlama"
- ],
- "dtvl": [
- "DeFiLlama"
- ],
- "sinfo": [
- "TerraFCD"
- ],
- "validators": [
- "TerraFCD"
- ],
- "gacc": [
- "TerraFCD"
- ],
- "sreturn": [
- "TerraFCD"
- ],
- "lcsc": [
- "Smartstake"
- ],
- "anchor": [
- "CryptoSaurio"
- ]
+ "newsletter": ["Substack"],
+ "vaults": ["Coindix"],
+ "tokens": ["TheGraph"],
+ "stats": ["TheGraph"],
+ "pairs": ["TheGraph"],
+ "pools": ["TheGraph"],
+ "swaps": ["TheGraph"],
+ "ldapps": ["DeFiLlama"],
+ "gdapps": ["DeFiLlama"],
+ "stvl": ["DeFiLlama"],
+ "dtvl": ["DeFiLlama"],
+ "sinfo": ["TerraFCD"],
+ "validators": ["TerraFCD"],
+ "gacc": ["TerraFCD"],
+ "sreturn": ["TerraFCD"],
+ "lcsc": ["Smartstake"],
+ "anchor": ["CryptoSaurio"]
},
"tools": {
"aprtoapy": [],
"il": []
},
"nft": {
- "stats": [
- "OpenSea"
- ],
- "fp": [
- "NFTPriceFloor"
- ],
- "collections": [
- "NFTPriceFloor"
- ]
+ "stats": ["OpenSea"],
+ "fp": ["NFTPriceFloor"],
+ "collections": ["NFTPriceFloor"]
},
"dd": {
- "load": [
- "YahooFinance",
- "CoinGecko",
- "CCXT"
- ],
- "info": [
- "CoinGecko"
- ],
- "ath": [
- "CoinGecko"
- ],
- "atl": [
- "CoinGecko"
- ],
- "web": [
- "CoinGecko"
- ],
- "bc": [
- "CoinGecko"
- ],
- "pi": [
- "Messari"
- ],
- "gov": [
- "Messari"
- ],
- "basic": [
- "CoinPaprika"
- ],
- "stats": [
- "Coinbase"
- ],
- "desc": [
- "TokenTerminal"
- ],
- "market": [
- "CoinGecko"
- ],
- "mkt": [
- "CoinPaprika"
- ],
- "ex": [
- "CoinPaprika"
- ],
- "balance": [
- "Binance"
- ],
- "oi": [
- "Coinglass"
- ],
- "fundrate": [
- "Coinglass"
- ],
- "liquidations": [
- "Coinglass"
- ],
- "eb": [
- "Coinglass"
- ],
- "trades": [
- "CCXT"
- ],
- "ob": [
- "CCXT"
- ],
- "active": [
- "Glassnode"
- ],
- "nonzero": [
- "Glassnode"
- ],
- "change": [
- "Glassnode"
- ],
- "ps": [
- "CoinPaprika"
- ],
- "mcapdom": [
- "Messari"
- ],
- "mt": [
- "Messari"
- ],
- "funot": [
- "TokenTerminal"
- ],
- "team": [
- "Messari"
- ],
- "inv": [
- "Messari"
- ],
- "tk": [
- "Messari"
- ],
- "fr": [
- "Messari"
- ],
- "rm": [
- "Messari"
- ],
- "events": [
- "CoinPaprika"
- ],
- "news": [
- "CryptoPanic"
- ],
- "links": [
- "Messari"
- ],
- "twitter": [
- "CoinPaprika"
- ],
- "social": [
- "CoinGecko"
- ],
- "score": [
- "CoinGecko"
- ],
- "dev": [
- "CoinGecko"
- ],
- "gh": [
- "Santiment"
- ]
+ "load": ["YahooFinance", "CoinGecko", "CCXT"],
+ "info": ["CoinGecko"],
+ "ath": ["CoinGecko"],
+ "atl": ["CoinGecko"],
+ "web": ["CoinGecko"],
+ "bc": ["CoinGecko"],
+ "pi": ["Messari"],
+ "gov": ["Messari"],
+ "basic": ["CoinPaprika"],
+ "stats": ["Coinbase"],
+ "desc": ["TokenTerminal"],
+ "market": ["CoinGecko"],
+ "mkt": ["CoinPaprika"],
+ "ex": ["CoinPaprika"],
+ "balance": ["Binance"],
+ "oi": ["Coinglass"],
+ "fundrate": ["Coinglass"],
+ "liquidations": ["Coinglass"],
+ "eb": ["Coinglass"],
+ "trades": ["CCXT"],
+ "ob": ["CCXT"],
+ "active": ["Glassnode"],
+ "nonzero": ["Glassnode"],
+ "change": ["Glassnode"],
+ "ps": ["CoinPaprika"],
+ "mcapdom": ["Messari"],
+ "mt": ["Messari"],
+ "funot": ["TokenTerminal"],
+ "team": ["Messari"],
+ "inv": ["Messari"],
+ "tk": ["Messari"],
+ "fr": ["Messari"],
+ "rm": ["Messari"],
+ "events": ["CoinPaprika"],
+ "news": ["CryptoPanic"],
+ "links": ["Messari"],
+ "twitter": ["CoinPaprika"],
+ "social": ["CoinGecko"],
+ "score": ["CoinGecko"],
+ "dev": ["CoinGecko"],
+ "gh": ["Santiment"]
},
"ta": {
- "load": [
- "YahooFinance",
- "CoinGecko",
- "CCXT"
- ],
- "tv": [
- "TradingView"
- ]
+ "load": ["YahooFinance", "CoinGecko", "CCXT"],
+ "tv": ["TradingView"]
},
"qa": {
- "load": [
- "YahooFinance",
- "CoinGecko",
- "CCXT"
- ]
+ "load": ["YahooFinance", "CoinGecko", "CCXT"]
}
},
"etf": {
- "search": [
- "FinanceDatabase",
- "StockAnalysis"
- ],
- "load": [
- "YahooFinance"
- ],
+ "search": ["FinanceDatabase", "StockAnalysis"],
+ "load": ["YahooFinance"],
"disc": {
- "gainers": [
- "WallStreetJournal"
- ],
- "decliners": [
- "WallStreetJournal"
- ],
- "active": [
- "WallStreetJournal"
- ]
+ "gainers": ["WallStreetJournal"],
+ "decliners": ["WallStreetJournal"],
+ "active": ["WallStreetJournal"]
},
- "overview": [
- "StockAnalysis"
- ],
- "holdings": [
- "StockAnalysis"
- ],
- "weights": [
- "FinancialModelingPrep"
- ],
- "news": [
- "NewsApi"
- ],
- "compare": [
- "StockAnalysis"
- ]
+ "overview": ["StockAnalysis"],
+ "holdings": ["StockAnalysis"],
+ "weights": ["FinancialModelingPrep"],
+ "news": ["NewsApi"],
+ "compare": ["StockAnalysis"]
},
"economy": {
- "overview": [
- "WallStreetJournal"
- ],
- "futures": [
- "WallStreetJournal",
- "Finviz"
- ],
- "map": [
- "Finviz"
- ],
- "bigmac": [
- "Nasdaq"
- ],
- "events": [
- "Nasdaq"
- ],
- "edebt": [
- "Wikipedia"
- ],
- "rtps": [
- "AlphaVantage"
- ],
- "valuation": [
- "Finviz"
- ],
- "performance": [
- "Finviz"
- ],
- "gdp": [
- "OECD"
- ],
- "rgdp": [
- "OECD"
- ],
- "fgdp": [
- "OECD"
- ],
- "debt": [
- "OECD"
- ],
- "cpi": [
- "FRED"
- ],
- "ccpi": [
- "OECD"
- ],
- "balance": [
- "OECD"
- ],
- "revenue": [
- "OECD"
- ],
- "spending": [
- "OECD"
- ],
- "trust": [
- "OECD"
- ],
- "treasury": [
- "EconDB"
- ],
- "fred": [
- "FRED"
- ],
- "index": [
- "YahooFinance"
- ]
+ "overview": ["WallStreetJournal"],
+ "futures": ["WallStreetJournal", "Finviz"],
+ "map": ["Finviz"],
+ "bigmac": ["Nasdaq"],
+ "events": ["Nasdaq"],
+ "edebt": ["Wikipedia"],
+ "rtps": ["AlphaVantage"],
+ "valuation": ["Finviz"],
+ "performance": ["Finviz"],
+ "gdp": ["OECD"],
+ "rgdp": ["OECD"],
+ "fgdp": ["OECD"],
+ "debt": ["OECD"],
+ "cpi": ["FRED"],
+ "ccpi": ["OECD"],
+ "balance": ["OECD"],
+ "revenue": ["OECD"],
+ "spending": ["OECD"],
+ "trust": ["OECD"],
+ "treasury": ["EconDB"],
+ "fred": ["FRED"],
+ "index": ["YahooFinance"]
},
"forex": {
- "load": [
- "YahooFinance",
- "AlphaVantage",
- "Polygon"
- ],
- "quote": [
- "YahooFinance",
- "AlphaVantage"
- ],
- "fwd": [
- "FXEmpire"
- ]
+ "load": ["YahooFinance", "AlphaVantage", "Polygon"],
+ "quote": ["YahooFinance", "AlphaVantage"],
+ "fwd": ["FXEmpire"]
},
"funds": {
- "country": [
- "MorningStar"
- ],
- "search": [
- "MorningStar"
- ],
- "load": [
- "MorningStar"
- ],
- "info": [
- "MorningStar"
- ],
- "plot": [
- "MorningStar"
- ],
- "sector": [
- "MorningStar"
- ],
- "carbon": [
- "MorningStar"
- ],
- "exclusion": [
- "MorningStar"
- ],
- "holdings": [
- "MorningStar"
- ],
- "alswe": [
- "Avanza"
- ],
- "infoswe": [
- "Avanza"
- ]
+ "country": ["MorningStar"],
+ "search": ["MorningStar"],
+ "load": ["MorningStar"],
+ "info": ["MorningStar"],
+ "plot": ["MorningStar"],
+ "sector": ["MorningStar"],
+ "carbon": ["MorningStar"],
+ "exclusion": ["MorningStar"],
+ "holdings": ["MorningStar"],
+ "alswe": ["Avanza"],
+ "infoswe": ["Avanza"]
},
"futures": {
- "search": [
- "YahooFinance"
- ],
- "historical": [
- "YahooFinance",
- "DataBento"
- ],
- "curve": [
- "YahooFinance"
- ]
+ "search": ["YahooFinance"],
+ "historical": ["YahooFinance", "DataBento"],
+ "curve": ["YahooFinance"]
},
"fixedincome": {
- "estr": [
- "FRED",
- "ECB"
- ],
- "sofr": [
- "FRED"
- ],
- "sonia": [
- "FRED"
- ],
- "ameribor": [
- "FRED"
- ],
- "fed": [
- "FRED"
- ],
- "iorb": [
- "FRED"
- ],
- "projection": [
- "FRED"
- ],
- "dwpcr": [
- "FRED"
- ],
- "ecb": [
- "FRED"
- ],
- "treasury": [
- "OECD"
- ],
- "usrates": [
- "FRED"
- ],
- "ycrv": [
- "FRED"
- ],
- "ecbycrv": [
- "ECB"
- ],
- "icebofa": [
- "FRED"
- ],
- "moody": [
- "FRED"
- ],
- "spot": [
- "FRED"
- ],
- "cp": [
- "FRED"
- ],
- "hqm": [
- "FRED"
- ],
- "icespread": [
- "FRED"
- ],
- "tmc": [
- "FRED"
- ],
- "ffrmc": [
- "FRED"
- ],
- "tbffr": [
- "FRED"
- ]
+ "estr": ["FRED", "ECB"],
+ "sofr": ["FRED"],
+ "sonia": ["FRED"],
+ "ameribor": ["FRED"],
+ "fed": ["FRED"],
+ "iorb": ["FRED"],
+ "projection": ["FRED"],
+ "dwpcr": ["FRED"],
+ "ecb": ["FRED"],
+ "treasury": ["OECD"],
+ "usrates": ["FRED"],
+ "ycrv": ["FRED"],
+ "ecbycrv": ["ECB"],
+ "icebofa": ["FRED"],
+ "moody": ["FRED"],
+ "spot": ["FRED"],
+ "cp": ["FRED"],
+ "hqm": ["FRED"],
+ "icespread": ["FRED"],
+ "tmc": ["FRED"],
+ "ffrmc": ["FRED"],
+ "tbffr": ["FRED"]
},
"portfolio": {
"po": {
- "maxsharpe": [
- "YahooFinance"
- ],
- "minrisk": [
- "YahooFinance"
- ],
- "maxutil": [
- "YahooFinance"
- ],
- "maxret": [
- "YahooFinance"
- ],
- "maxdiv": [
- "YahooFinance"
- ],
- "maxdecorr": [
- "YahooFinance"
- ],
- "blacklitterman": [
- "FinancialModelingPrep"
- ],
- "ef": [
- "YahooFinance"
- ],
- "riskparity": [
- "YahooFinance"
- ],
- "relriskparity": [
- "YahooFinance"
- ],
- "hrp": [
- "YahooFinance"
- ],
- "herc": [
- "YahooFinance"
- ],
- "nco": [
- "YahooFinance"
- ],
- "equal": [
- "YahooFinance"
- ],
- "mktcap": [
- "FinancialModelingPrep"
- ]
+ "maxsharpe": ["YahooFinance"],
+ "minrisk": ["YahooFinance"],
+ "maxutil": ["YahooFinance"],
+ "maxret": ["YahooFinance"],
+ "maxdiv": ["YahooFinance"],
+ "maxdecorr": ["YahooFinance"],
+ "blacklitterman": ["FinancialModelingPrep"],
+ "ef": ["YahooFinance"],
+ "riskparity": ["YahooFinance"],
+ "relriskparity": ["YahooFinance"],
+ "hrp": ["YahooFinance"],
+ "herc": ["YahooFinance"],
+ "nco": ["YahooFinance"],
+ "equal": ["YahooFinance"],
+ "mktcap": ["FinancialModelingPrep"]
}
},
"alternative": {
"oss": {
- "rossidx": [
- "RunaCapital"
- ],
- "rs": [
- "GitHub"
- ],
- "sh": [
- "GitHub"
- ],
- "tr": [
- "GitHub"
- ]
+ "rossidx": ["RunaCapital"],
+ "rs": ["GitHub"],
+ "sh": ["GitHub"],
+ "tr": ["GitHub"]
},
- "hn": [
- "HackerNews"
- ]
+ "hn": ["HackerNews"]
}
}
diff --git a/openbb_terminal/reports/templates/economy.ipynb b/openbb_terminal/reports/templates/economy.ipynb
index 5850a04baa88..7a7de2e7e874 100644
--- a/openbb_terminal/reports/templates/economy.ipynb
+++ b/openbb_terminal/reports/templates/economy.ipynb
@@ -1,771 +1,771 @@
{
- "cells": [
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "70ba2c8a",
- "metadata": {},
- "source": [
- "## Notebook setup\n"
- ]
+ "cells": [
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "70ba2c8a",
+ "metadata": {},
+ "source": [
+ "## Notebook setup\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "driven-billion",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "import io\n",
+ "import warnings\n",
+ "import datetime\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import base64\n",
+ "import pytz\n",
+ "\n",
+ "from IPython.display import HTML\n",
+ "\n",
+ "import openbb_terminal.config_terminal as cfg\n",
+ "from openbb_terminal.helper_funcs import get_user_timezone\n",
+ "from openbb_terminal.core.config.paths import REPOSITORY_DIRECTORY\n",
+ "from openbb_terminal import OpenBBFigure, theme\n",
+ "from openbb_terminal.helper_classes import TerminalStyle\n",
+ "\n",
+ "\n",
+ "warnings.filterwarnings(\"ignore\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4494cd3e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Suppressing sdk logs\n",
+ "from openbb_terminal.core.session.current_system import set_system_variable\n",
+ "\n",
+ "set_system_variable(\"LOGGING_SUPPRESS\", True)\n",
+ "\n",
+ "# Import the OpenBB SDK\n",
+ "from openbb_terminal.sdk import openbb, widgets"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f9feebc8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from openbb_terminal.core.session.current_user import get_current_user\n",
+ "\n",
+ "user = get_current_user()\n",
+ "\n",
+ "cfg.theme = TerminalStyle(\n",
+ " user.preferences.MPL_STYLE,\n",
+ " user.preferences.PMF_STYLE,\n",
+ " user.preferences.RICH_STYLE,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e6e39973",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "stylesheet = widgets.html_report_stylesheet()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "daef64ec",
+ "metadata": {
+ "tags": [
+ "parameters"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "# Parameters that will be replaced when calling this notebook\n",
+ "# Do not leave parameters blank as notebook will not run otherwise\n",
+ "report_name = \"economy_report\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1be26dae-cafe-4a22-80aa-eff296fc1a9b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "author = \"OpenBB\"\n",
+ "report_title = f\"Economy report\"\n",
+ "user_time_zone = pytz.timezone(get_user_timezone())\n",
+ "report_date = pd.Timestamp.now(tz=user_time_zone).strftime(\"%d %B, %Y\")\n",
+ "report_time = pd.Timestamp.now(tz=user_time_zone).strftime(\"%H:%M\")\n",
+ "report_timezone = pd.Timestamp.now(tz=user_time_zone).tzinfo\n",
+ "report_title, report_date, report_time, report_timezone"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "9363f19a",
+ "metadata": {},
+ "source": [
+ "## Data\n"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "0b9ec3f9",
+ "metadata": {},
+ "source": [
+ "Summary\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e3b15d6f-dc9e-4f97-aa07-37d949a4e4bb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "overview = openbb.economy.overview()\n",
+ "overview.set_index(list(overview.columns[0]), inplace=True)\n",
+ "overview = OpenBBFigure.to_table(overview, print_index=True, width=600)\n",
+ "\n",
+ "futures = openbb.economy.futures()\n",
+ "futures.set_index(list(futures.columns[0]), inplace=True)\n",
+ "futures[\"%Chg\"] = futures[\"%Chg\"].apply(lambda x: float(f\"{x:.2f}\"))\n",
+ "futures_fig = OpenBBFigure.to_table(futures, print_index=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "351d0451",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "try:\n",
+ " news = openbb.news(\"economy\")\n",
+ " news.columns = news.columns.str.title()\n",
+ " news = news.rename(\n",
+ " columns={\"Date\": \"Published\", \"Description\": \"Title\", \"Url\": \"Link\"}\n",
+ " )\n",
+ " news[\"Title\"] = news.apply(\n",
+ " lambda x: f'{x[\"Title\"]}', axis=1\n",
+ " )\n",
+ " news = news[[\"Title\", \"Published\"]]\n",
+ " news[\"Published\"] = pd.to_datetime(news[\"Published\"]).dt.strftime(\"%Y-%m-%d %H:%M\")\n",
+ " news = news.set_index(\"Published\")\n",
+ "except:\n",
+ " news = pd.DataFrame()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "64729474",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "rtps_data = openbb.economy.rtps()\n",
+ "subplots = OpenBBFigure.create_subplots(1, 2, horizontal_spacing=0.15)\n",
+ "openbb.economy.rtps_chart(external_axes=True).to_subplot(subplots, 1, 1)\n",
+ "\n",
+ "chg = futures[\"%Chg\"]\n",
+ "colors = [theme.up_color if x > 0 else theme.down_color for x in list(chg.values)]\n",
+ "subplots.add_bar(\n",
+ " y=chg.index,\n",
+ " x=chg.values,\n",
+ " orientation=\"h\",\n",
+ " marker_color=colors,\n",
+ " showlegend=False,\n",
+ " row=1,\n",
+ " col=2,\n",
+ ")\n",
+ "subplots.update_xaxes(title_text=\"Performance (%)\", row=1, col=1)\n",
+ "subplots.update_xaxes(title_text=\"Change %\", row=1, col=2)\n",
+ "subplots.update_layout(margin=dict(l=0, r=0, t=0, b=0), yaxis=dict(side=\"left\"))\n",
+ "chart_0 = subplots.to_html()"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "7315ac99",
+ "metadata": {},
+ "source": [
+ "Events\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a02c6166",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "events_1 = openbb.economy.events(\n",
+ " countries=\"United States\",\n",
+ " start_date=datetime.datetime.now().strftime(\"%Y-%m-%d\"),\n",
+ ")\n",
+ "if not events_1.empty:\n",
+ " events_1 = OpenBBFigure.to_table(\n",
+ " events_1.set_index(\"Date\"), print_index=True, height=200\n",
+ " )\n",
+ "\n",
+ "events_2 = openbb.economy.events(\n",
+ " countries=[\n",
+ " \"Germany\",\n",
+ " \"Spain\",\n",
+ " \"Italy\",\n",
+ " \"United Kingdom\",\n",
+ " \"France\",\n",
+ " \"Portugal\",\n",
+ " \"Greece\",\n",
+ " ],\n",
+ " start_date=datetime.datetime.now().strftime(\"%Y-%m-%d\"),\n",
+ ")\n",
+ "if not events_2.empty:\n",
+ " events_2 = OpenBBFigure.to_table(events_2.set_index(\"Date\"), print_index=True)\n",
+ "\n",
+ "events_3 = openbb.economy.events(\n",
+ " countries=\"China\",\n",
+ " start_date=datetime.datetime.now().strftime(\"%Y-%m-%d\"),\n",
+ ")\n",
+ "if not events_3.empty:\n",
+ " events_3 = OpenBBFigure.to_table(events_3.set_index(\"Date\"), print_index=True)"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "f1863bd0",
+ "metadata": {},
+ "source": [
+ "Yields\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8e332ca6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ycrv = openbb.fixedincome.ycrv(return_date=True)\n",
+ "\n",
+ "if (isinstance(ycrv, pd.DataFrame) and not ycrv.empty) or (\n",
+ " not isinstance(ycrv, pd.DataFrame) and ycrv\n",
+ "):\n",
+ " ycrv_data_1, _ = ycrv\n",
+ " ycrv_country_1 = \"United states\"\n",
+ "\n",
+ " ycrv_chart_1 = openbb.fixedincome.ycrv_chart(external_axes=True)\n",
+ "\n",
+ " if ycrv_chart_1:\n",
+ " ycrv_chart_1 = ycrv_chart_1.to_html()\n",
+ "\n",
+ " if not ycrv_data_1.empty:\n",
+ " ycrv_data_1.drop([\"Maturity\"], axis=1, inplace=True)\n",
+ " ycrv_data_1.index = [\n",
+ " \"1M\",\n",
+ " \"3M\",\n",
+ " \"6M\",\n",
+ " \"1Y\",\n",
+ " \"2Y\",\n",
+ " \"3Y\",\n",
+ " \"5Y\",\n",
+ " \"7Y\",\n",
+ " \"10Y\",\n",
+ " \"20Y\",\n",
+ " \"30Y\",\n",
+ " ]\n",
+ "else:\n",
+ " ycrv = None"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "31fb0f86",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "openbb.economy.treasury_maturities()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c4f987af",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "subplots = OpenBBFigure.create_subplots(\n",
+ " 2,\n",
+ " 2,\n",
+ " vertical_spacing=0.15,\n",
+ " subplot_titles=(\"UST 2y-10y\", \"UST 10y-30y\", \"Nominal vs TIPS\"),\n",
+ " specs=[[{}, {}], [{\"colspan\": 2}, None]],\n",
+ ")\n",
+ "openbb.economy.treasury_chart(\n",
+ " instruments=[\"nominal\"],\n",
+ " maturities=[\"2y\", \"10y\"],\n",
+ " frequency=\"daily\",\n",
+ " start_date=\"2020-01-01\",\n",
+ " external_axes=True,\n",
+ ").to_subplot(subplots, 1, 1)\n",
+ "\n",
+ "openbb.economy.treasury_chart(\n",
+ " instruments=[\"nominal\"],\n",
+ " maturities=[\"10y\", \"30y\"],\n",
+ " frequency=\"daily\",\n",
+ " start_date=\"2020-01-01\",\n",
+ " external_axes=True,\n",
+ ").to_subplot(subplots, 1, 2)\n",
+ "\n",
+ "openbb.economy.treasury_chart(\n",
+ " instruments=[\"nominal\", \"inflation\"],\n",
+ " maturities=[\"10y\"],\n",
+ " frequency=\"daily\",\n",
+ " start_date=\"2020-01-01\",\n",
+ " external_axes=True,\n",
+ ").to_subplot(subplots, 2, 1)\n",
+ "\n",
+ "ust = subplots.to_html()"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "7a3c421f",
+ "metadata": {},
+ "source": [
+ "Equity Market\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "12c98e06",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "valuation = OpenBBFigure.to_table(openbb.economy.valuation(), print_index=False)\n",
+ "performance = OpenBBFigure.to_table(openbb.economy.performance(), print_index=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "42f5570d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
+ "data = openbb.economy.index(\n",
+ " indices=[\"sp500\", \"dow_djus\", \"nasdaq100\", \"russell3000\", \"cboe_vix\"],\n",
+ " start_date=\"2000-03-09\",\n",
+ ")\n",
+ "\n",
+ "data = data.pct_change().dropna()\n",
+ "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
+ "for col in data.columns:\n",
+ " fig.add_scatter(\n",
+ " x=data.index,\n",
+ " y=data[col] * 100,\n",
+ " name=col,\n",
+ " )\n",
+ "\n",
+ "eqty_0 = fig.to_html()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "286a82d7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
+ "data = openbb.economy.index(\n",
+ " indices=[\"ftse100\", \"de_dax40\", \"fr_cac40\", \"it_mib40\", \"es_ibex35\"],\n",
+ " start_date=\"2000-01-01\",\n",
+ ")\n",
+ "\n",
+ "data = data.pct_change().dropna()\n",
+ "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
+ "for col in data.columns:\n",
+ " fig.add_scatter(\n",
+ " x=data.index,\n",
+ " y=data[col] * 100,\n",
+ " name=col,\n",
+ " )\n",
+ "\n",
+ "eqty_1 = fig.to_html()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e825e8ed",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
+ "data = openbb.economy.index(\n",
+ " indices=[\"jp_n225\", \"cn_csi300\", \"hk_china\", \"au_asx50\"], start_date=\"2014-01-01\"\n",
+ ")\n",
+ "\n",
+ "data = data.pct_change().dropna()\n",
+ "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
+ "for col in data.columns:\n",
+ " fig.add_scatter(\n",
+ " x=data.index,\n",
+ " y=data[col] * 100,\n",
+ " name=col,\n",
+ " )\n",
+ "\n",
+ "eqty_2 = fig.to_html()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8eb1327b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
+ "data = openbb.economy.index(\n",
+ " indices=[\"in_nse50\", \"br_bvsp\", \"za_jo\", \"mx_ipc\", \"ru_moex\"],\n",
+ " start_date=\"2013-01-01\",\n",
+ ")\n",
+ "\n",
+ "data = data.pct_change().dropna()\n",
+ "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
+ "for col in data.columns:\n",
+ " fig.add_scatter(\n",
+ " x=data.index,\n",
+ " y=data[col] * 100,\n",
+ " name=col,\n",
+ " )\n",
+ "\n",
+ "eqty_3 = fig.to_html()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "02630bd6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
+ "data = openbb.economy.index(indices=[\"arca_xoi\", \"arca_pse\"], start_date=\"2000-01-01\")\n",
+ "\n",
+ "data = data.pct_change().dropna()\n",
+ "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
+ "for col in data.columns:\n",
+ " fig.add_scatter(\n",
+ " x=data.index,\n",
+ " y=data[col] * 100,\n",
+ " name=col,\n",
+ " )\n",
+ "\n",
+ "eqty_4 = fig.to_html()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5a4c8963",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "bigmac_res = openbb.economy.bigmac()\n",
+ "\n",
+ "if (isinstance(bigmac_res, pd.DataFrame) and not bigmac_res.empty) or (\n",
+ " not isinstance(bigmac_res, pd.DataFrame) and bigmac_res\n",
+ "):\n",
+ " bigmac = openbb.economy.bigmac_chart(\n",
+ " country_codes=[\n",
+ " \"USA\",\n",
+ " \"CAN\",\n",
+ " \"ARG\",\n",
+ " \"PRT\",\n",
+ " \"NLD\",\n",
+ " \"FRA\",\n",
+ " \"UAE\",\n",
+ " \"LKA\",\n",
+ " \"VNM\",\n",
+ " \"RUS\",\n",
+ " \"SWE\",\n",
+ " \"GBR\",\n",
+ " ],\n",
+ " external_axes=True,\n",
+ " )\n",
+ " if bigmac:\n",
+ " bigmac.set_title(\"\")\n",
+ " bigmac = bigmac.to_html()\n",
+ "\n",
+ "else:\n",
+ " bigmac_res = pd.DataFrame()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1947a06c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "subplots = OpenBBFigure.create_subplots(1, 1, specs=[[{\"secondary_y\": True}]])\n",
+ "\n",
+ "openbb.economy.macro_chart(\n",
+ " parameters=[\"CONF\", \"IP\"], start_date=\"2010-01-01\", external_axes=True\n",
+ ").to_subplot(subplots, 1, 1, secondary_y=False)\n",
+ "subplots.update_yaxes(title_text=\"Confidence and IP\", secondary_y=False)\n",
+ "\n",
+ "\n",
+ "df, df_dict, _ = openbb.economy.macro(parameters=[\"CPI\"], start_date=\"2010-01-01\")\n",
+ "cpi_chg = df.pct_change(1) * 100\n",
+ "subplots.add_scatter(\n",
+ " x=cpi_chg.index,\n",
+ " y=cpi_chg.T.values[0],\n",
+ " name=\"CPI (% change)\",\n",
+ " mode=\"lines\",\n",
+ " line=dict(color=\"red\", dash=\"dash\"),\n",
+ " secondary_y=True,\n",
+ " yaxis=\"y2\",\n",
+ ")\n",
+ "subplots.update_yaxes(\n",
+ " title_text=\"CPI (% change)\",\n",
+ " secondary_y=True,\n",
+ " range=[-2, 2],\n",
+ " side=\"left\",\n",
+ " overlaying=\"y\",\n",
+ ")\n",
+ "subplots.horizontal_legend()\n",
+ "\n",
+ "macro_0 = subplots.to_html()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "971e4c51",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "fred = openbb.economy.fred(series_ids=[\"T10Y3M\"], start_date=\"1980-01-01\")\n",
+ "\n",
+ "if (isinstance(fred, pd.DataFrame) and not fred.empty) or (\n",
+ " not isinstance(fred, pd.DataFrame) and fred\n",
+ "):\n",
+ " df, df_dict = fred\n",
+ "\n",
+ " fig = OpenBBFigure.create_subplots(1, 1, specs=[[{\"secondary_y\": True}]])\n",
+ " fig.add_scatter(\n",
+ " x=df.index,\n",
+ " y=df[\"T10Y3M\"],\n",
+ " name=df_dict[\"T10Y3M\"][\"title\"],\n",
+ " line=dict(color=\"red\", dash=\"dash\"),\n",
+ " secondary_y=False,\n",
+ " )\n",
+ " openbb.economy.fred_chart(\n",
+ " series_ids=[\"A191RP1A027NBEA\"],\n",
+ " start_date=\"1980-01-01\",\n",
+ " external_axes=True,\n",
+ " ).to_subplot(fig, 1, 1, secondary_y=True)\n",
+ " fig.update_yaxes(secondary_y=True, side=\"left\", overlaying=\"y\")\n",
+ " fig.set_title(\"\")\n",
+ " fig.horizontal_legend()\n",
+ "\n",
+ " fred_0 = fig.to_html()\n",
+ "else:\n",
+ " fred = None"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "ac501a32-124d-4d21-aae1-a8d147bb1071",
+ "metadata": {},
+ "source": [
+ "## Render the report template to a file\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "abfe37e4-ea38-42c3-8fb5-7cceb233fb12",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "body = f\"\"\"\n",
+ "\n",
+ "\n",
+ "\"\"\"\n",
+ "\n",
+ "\n",
+ "img = (\n",
+ " str(REPOSITORY_DIRECTORY)\n",
+ " + \"/openbb_terminal/reports/templates/OpenBB_reports_logo.png\"\n",
+ ")\n",
+ "floppy_disk_img = (\n",
+ " str(REPOSITORY_DIRECTORY) + \"/openbb_terminal/reports/templates/floppy-disc.png\"\n",
+ ")\n",
+ "body += widgets.header(\n",
+ " img,\n",
+ " floppy_disk_img,\n",
+ " author,\n",
+ " report_date,\n",
+ " report_time,\n",
+ " report_timezone,\n",
+ " f\"ECONOMY REPORT: Leverage multiple sources to create custom reports.\",\n",
+ ")\n",
+ "\n",
+ "body += widgets.tablinks(\n",
+ " [\n",
+ " \"SUMMARY\",\n",
+ " \"Events\",\n",
+ " \"Yields\",\n",
+ " \"Equity Market\",\n",
+ " \"Macro Data\",\n",
+ " ]\n",
+ ")\n",
+ "\n",
+ "# Summary\n",
+ "htmlcode = widgets.row(\n",
+ " [widgets.h(3, \"Global markets (source: WSJ)\") + overview.to_html()]\n",
+ ")\n",
+ "\n",
+ "htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"Commodities (source: WSJ)\") + futures_fig.to_html()]\n",
+ " + [\n",
+ " widgets.h(3, \"Real-time sector performance (source: Alphavantage)\")\n",
+ " + rtps_data.to_html().replace(\"table\", 'table style=\"display:inline\"')\n",
+ " ]\n",
+ ")\n",
+ "htmlcode += widgets.row([chart_0])\n",
+ "\n",
+ "if not news.empty:\n",
+ " htmlcode += widgets.row(\n",
+ " [\n",
+ " widgets.h(3, \"Top news on 'economy' keyword (source: Feedparser)\")\n",
+ " + news.to_html(escape=False)\n",
+ " ]\n",
+ " )\n",
+ "\n",
+ "body += widgets.add_tab(\"SUMMARY\", htmlcode)\n",
+ "\n",
+ "# Events\n",
+ "htmlcode = widgets.row([widgets.h(3, \"Economic calendars (source: investing.com)\")])\n",
+ "htmlcode += widgets.row([widgets.h(3, \"United States\") + events_1.to_html()])\n",
+ "htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"Select European Countries\") + events_2.to_html()]\n",
+ ")\n",
+ "htmlcode += widgets.row([widgets.h(3, \"China\") + events_3.to_html()])\n",
+ "body += widgets.add_tab(\"Events\", htmlcode)\n",
+ "\n",
+ "# Yields\n",
+ "htmlcode = widgets.row([widgets.h(3, \"US treasuries (source: EconDB)\") + ust])\n",
+ "\n",
+ "if ycrv:\n",
+ " htmlcode += widgets.row(\n",
+ " [\n",
+ " widgets.h(3, f\"{ycrv_country_1} yield curve (source: FRED)\")\n",
+ " + (ycrv_chart_1 or \"\")\n",
+ " ]\n",
+ " )\n",
+ " htmlcode += widgets.row([widgets.h(3, \"\") + ycrv_data_1.to_html()])\n",
+ "\n",
+ "body += widgets.add_tab(\"Yields\", htmlcode)\n",
+ "\n",
+ "# Equity market\n",
+ "htmlcode = widgets.row(\n",
+ " [widgets.h(3, \"Valuation (source: Finviz)\") + valuation.to_html()]\n",
+ ")\n",
+ "htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"Performance (source: Finviz)\") + valuation.to_html()]\n",
+ ")\n",
+ "htmlcode += widgets.row([widgets.h(3, \"US markets (source: YahooFinance)\") + eqty_0])\n",
+ "htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"European markets (source: YahooFinance)\") + eqty_1]\n",
+ ")\n",
+ "htmlcode += widgets.row([widgets.h(3, \"APAC markets (source: YahooFinance)\") + eqty_2])\n",
+ "htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"Emerging markets (source: YahooFinance)\") + eqty_3]\n",
+ ")\n",
+ "htmlcode += widgets.row([widgets.h(3, \"ARCA (source: YahooFinance)\") + eqty_4])\n",
+ "body += widgets.add_tab(\"Equity Market\", htmlcode)\n",
+ "\n",
+ "# Macro\n",
+ "htmlcode = \"\"\n",
+ "if not bigmac_res.empty:\n",
+ " htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"Bigmac index (source: Nasdaq)\") + (bigmac or \"\")]\n",
+ " )\n",
+ "htmlcode += widgets.row([widgets.h(3, \"Leading indicators (source: EconDB)\") + macro_0])\n",
+ "if fred:\n",
+ " htmlcode += widgets.row(\n",
+ " [widgets.h(3, \"Recession indicator (source: FRED)\") + fred_0]\n",
+ " )\n",
+ "body += widgets.add_tab(\"Macro Data\", htmlcode)\n",
+ "\n",
+ "body += widgets.tab_clickable_and_save_evt()\n",
+ "report = widgets.html_report(title=report_name, stylesheet=stylesheet, body=body)\n",
+ "\n",
+ "# to save the results\n",
+ "with open(report_name + \".html\", \"w\", encoding=\"utf-8\") as fh:\n",
+ " fh.write(report)"
+ ]
+ }
+ ],
+ "metadata": {
+ "celltoolbar": "Tags",
+ "kernelspec": {
+ "display_name": "venv",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ },
+ "vscode": {
+ "interpreter": {
+ "hash": "381a209f752e9104bff95ec5e80679ea2e476866b80e4326f1ee6b7658af6049"
+ }
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "driven-billion",
- "metadata": {},
- "outputs": [],
- "source": [
- "import os\n",
- "import io\n",
- "import warnings\n",
- "import datetime\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "import base64\n",
- "import pytz\n",
- "\n",
- "from IPython.display import HTML\n",
- "\n",
- "import openbb_terminal.config_terminal as cfg\n",
- "from openbb_terminal.helper_funcs import get_user_timezone\n",
- "from openbb_terminal.core.config.paths import REPOSITORY_DIRECTORY\n",
- "from openbb_terminal import OpenBBFigure, theme\n",
- "from openbb_terminal.helper_classes import TerminalStyle\n",
- "\n",
- "\n",
- "warnings.filterwarnings(\"ignore\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "4494cd3e",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Suppressing sdk logs\n",
- "from openbb_terminal.core.session.current_system import set_system_variable\n",
- "\n",
- "set_system_variable(\"LOGGING_SUPPRESS\", True)\n",
- "\n",
- "# Import the OpenBB SDK\n",
- "from openbb_terminal.sdk import openbb, widgets"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "f9feebc8",
- "metadata": {},
- "outputs": [],
- "source": [
- "from openbb_terminal.core.session.current_user import get_current_user\n",
- "\n",
- "user = get_current_user()\n",
- "\n",
- "cfg.theme = TerminalStyle(\n",
- " user.preferences.MPL_STYLE,\n",
- " user.preferences.PMF_STYLE,\n",
- " user.preferences.RICH_STYLE,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "e6e39973",
- "metadata": {},
- "outputs": [],
- "source": [
- "stylesheet = widgets.html_report_stylesheet()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "daef64ec",
- "metadata": {
- "tags": [
- "parameters"
- ]
- },
- "outputs": [],
- "source": [
- "# Parameters that will be replaced when calling this notebook\n",
- "# Do not leave parameters blank as notebook will not run otherwise\n",
- "report_name = \"economy_report\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "1be26dae-cafe-4a22-80aa-eff296fc1a9b",
- "metadata": {},
- "outputs": [],
- "source": [
- "author = \"OpenBB\"\n",
- "report_title = f\"Economy report\"\n",
- "user_time_zone = pytz.timezone(get_user_timezone())\n",
- "report_date = pd.Timestamp.now(tz=user_time_zone).strftime(\"%d %B, %Y\")\n",
- "report_time = pd.Timestamp.now(tz=user_time_zone).strftime(\"%H:%M\")\n",
- "report_timezone = pd.Timestamp.now(tz=user_time_zone).tzinfo\n",
- "report_title, report_date, report_time, report_timezone"
- ]
- },
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "9363f19a",
- "metadata": {},
- "source": [
- "## Data\n"
- ]
- },
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "0b9ec3f9",
- "metadata": {},
- "source": [
- "Summary\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "e3b15d6f-dc9e-4f97-aa07-37d949a4e4bb",
- "metadata": {},
- "outputs": [],
- "source": [
- "overview = openbb.economy.overview()\n",
- "overview.set_index(list(overview.columns[0]), inplace=True)\n",
- "overview = OpenBBFigure.to_table(overview, print_index=True, width=600)\n",
- "\n",
- "futures = openbb.economy.futures()\n",
- "futures.set_index(list(futures.columns[0]), inplace=True)\n",
- "futures[\"%Chg\"] = futures[\"%Chg\"].apply(lambda x: float(f\"{x:.2f}\"))\n",
- "futures_fig = OpenBBFigure.to_table(futures, print_index=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "351d0451",
- "metadata": {},
- "outputs": [],
- "source": [
- "try:\n",
- " news = openbb.news(\"economy\")\n",
- " news.columns = news.columns.str.title()\n",
- " news = news.rename(\n",
- " columns={\"Date\": \"Published\", \"Description\": \"Title\", \"Url\": \"Link\"}\n",
- " )\n",
- " news[\"Title\"] = news.apply(\n",
- " lambda x: f'{x[\"Title\"]}', axis=1\n",
- " )\n",
- " news = news[[\"Title\", \"Published\"]]\n",
- " news[\"Published\"] = pd.to_datetime(news[\"Published\"]).dt.strftime(\"%Y-%m-%d %H:%M\")\n",
- " news = news.set_index(\"Published\")\n",
- "except:\n",
- " news = pd.DataFrame()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "64729474",
- "metadata": {},
- "outputs": [],
- "source": [
- "rtps_data = openbb.economy.rtps()\n",
- "subplots = OpenBBFigure.create_subplots(1, 2, horizontal_spacing=0.15)\n",
- "openbb.economy.rtps_chart(external_axes=True).to_subplot(subplots, 1, 1)\n",
- "\n",
- "chg = futures[\"%Chg\"]\n",
- "colors = [theme.up_color if x > 0 else theme.down_color for x in list(chg.values)]\n",
- "subplots.add_bar(\n",
- " y=chg.index,\n",
- " x=chg.values,\n",
- " orientation=\"h\",\n",
- " marker_color=colors,\n",
- " showlegend=False,\n",
- " row=1,\n",
- " col=2,\n",
- ")\n",
- "subplots.update_xaxes(title_text=\"Performance (%)\", row=1, col=1)\n",
- "subplots.update_xaxes(title_text=\"Change %\", row=1, col=2)\n",
- "subplots.update_layout(margin=dict(l=0, r=0, t=0, b=0), yaxis=dict(side=\"left\"))\n",
- "chart_0 = subplots.to_html()"
- ]
- },
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "7315ac99",
- "metadata": {},
- "source": [
- "Events\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "a02c6166",
- "metadata": {},
- "outputs": [],
- "source": [
- "events_1 = openbb.economy.events(\n",
- " countries=\"United States\",\n",
- " start_date=datetime.datetime.now().strftime(\"%Y-%m-%d\"),\n",
- ")\n",
- "if not events_1.empty:\n",
- " events_1 = OpenBBFigure.to_table(\n",
- " events_1.set_index(\"Date\"), print_index=True, height=200\n",
- " )\n",
- "\n",
- "events_2 = openbb.economy.events(\n",
- " countries=[\n",
- " \"Germany\",\n",
- " \"Spain\",\n",
- " \"Italy\",\n",
- " \"United Kingdom\",\n",
- " \"France\",\n",
- " \"Portugal\",\n",
- " \"Greece\",\n",
- " ],\n",
- " start_date=datetime.datetime.now().strftime(\"%Y-%m-%d\"),\n",
- ")\n",
- "if not events_2.empty:\n",
- " events_2 = OpenBBFigure.to_table(events_2.set_index(\"Date\"), print_index=True)\n",
- "\n",
- "events_3 = openbb.economy.events(\n",
- " countries=\"China\",\n",
- " start_date=datetime.datetime.now().strftime(\"%Y-%m-%d\"),\n",
- ")\n",
- "if not events_3.empty:\n",
- " events_3 = OpenBBFigure.to_table(events_3.set_index(\"Date\"), print_index=True)"
- ]
- },
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "f1863bd0",
- "metadata": {},
- "source": [
- "Yields\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "8e332ca6",
- "metadata": {},
- "outputs": [],
- "source": [
- "ycrv = openbb.fixedincome.ycrv(return_date=True)\n",
- "\n",
- "if (isinstance(ycrv, pd.DataFrame) and not ycrv.empty) or (\n",
- " not isinstance(ycrv, pd.DataFrame) and ycrv\n",
- "):\n",
- " ycrv_data_1, _ = ycrv\n",
- " ycrv_country_1 = \"United states\"\n",
- "\n",
- " ycrv_chart_1 = openbb.fixedincome.ycrv_chart(external_axes=True)\n",
- "\n",
- " if ycrv_chart_1:\n",
- " ycrv_chart_1 = ycrv_chart_1.to_html()\n",
- "\n",
- " if not ycrv_data_1.empty:\n",
- " ycrv_data_1.drop([\"Maturity\"], axis=1, inplace=True)\n",
- " ycrv_data_1.index = [\n",
- " \"1M\",\n",
- " \"3M\",\n",
- " \"6M\",\n",
- " \"1Y\",\n",
- " \"2Y\",\n",
- " \"3Y\",\n",
- " \"5Y\",\n",
- " \"7Y\",\n",
- " \"10Y\",\n",
- " \"20Y\",\n",
- " \"30Y\",\n",
- " ]\n",
- "else:\n",
- " ycrv = None"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "31fb0f86",
- "metadata": {},
- "outputs": [],
- "source": [
- "openbb.economy.treasury_maturities()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "c4f987af",
- "metadata": {},
- "outputs": [],
- "source": [
- "subplots = OpenBBFigure.create_subplots(\n",
- " 2,\n",
- " 2,\n",
- " vertical_spacing=0.15,\n",
- " subplot_titles=(\"UST 2y-10y\", \"UST 10y-30y\", \"Nominal vs TIPS\"),\n",
- " specs=[[{}, {}], [{\"colspan\": 2}, None]],\n",
- ")\n",
- "openbb.economy.treasury_chart(\n",
- " instruments=[\"nominal\"],\n",
- " maturities=[\"2y\", \"10y\"],\n",
- " frequency=\"daily\",\n",
- " start_date=\"2020-01-01\",\n",
- " external_axes=True,\n",
- ").to_subplot(subplots, 1, 1)\n",
- "\n",
- "openbb.economy.treasury_chart(\n",
- " instruments=[\"nominal\"],\n",
- " maturities=[\"10y\", \"30y\"],\n",
- " frequency=\"daily\",\n",
- " start_date=\"2020-01-01\",\n",
- " external_axes=True,\n",
- ").to_subplot(subplots, 1, 2)\n",
- "\n",
- "openbb.economy.treasury_chart(\n",
- " instruments=[\"nominal\", \"inflation\"],\n",
- " maturities=[\"10y\"],\n",
- " frequency=\"daily\",\n",
- " start_date=\"2020-01-01\",\n",
- " external_axes=True,\n",
- ").to_subplot(subplots, 2, 1)\n",
- "\n",
- "ust = subplots.to_html()"
- ]
- },
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "7a3c421f",
- "metadata": {},
- "source": [
- "Equity Market\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "12c98e06",
- "metadata": {},
- "outputs": [],
- "source": [
- "valuation = OpenBBFigure.to_table(openbb.economy.valuation(), print_index=False)\n",
- "performance = OpenBBFigure.to_table(openbb.economy.performance(), print_index=False)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "42f5570d",
- "metadata": {},
- "outputs": [],
- "source": [
- "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
- "data = openbb.economy.index(\n",
- " indices=[\"sp500\", \"dow_djus\", \"nasdaq100\", \"russell3000\", \"cboe_vix\"],\n",
- " start_date=\"2000-03-09\",\n",
- ")\n",
- "\n",
- "data = data.pct_change().dropna()\n",
- "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
- "for col in data.columns:\n",
- " fig.add_scatter(\n",
- " x=data.index,\n",
- " y=data[col] * 100,\n",
- " name=col,\n",
- " )\n",
- "\n",
- "eqty_0 = fig.to_html()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "286a82d7",
- "metadata": {},
- "outputs": [],
- "source": [
- "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
- "data = openbb.economy.index(\n",
- " indices=[\"ftse100\", \"de_dax40\", \"fr_cac40\", \"it_mib40\", \"es_ibex35\"],\n",
- " start_date=\"2000-01-01\",\n",
- ")\n",
- "\n",
- "data = data.pct_change().dropna()\n",
- "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
- "for col in data.columns:\n",
- " fig.add_scatter(\n",
- " x=data.index,\n",
- " y=data[col] * 100,\n",
- " name=col,\n",
- " )\n",
- "\n",
- "eqty_1 = fig.to_html()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "e825e8ed",
- "metadata": {},
- "outputs": [],
- "source": [
- "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
- "data = openbb.economy.index(\n",
- " indices=[\"jp_n225\", \"cn_csi300\", \"hk_china\", \"au_asx50\"], start_date=\"2014-01-01\"\n",
- ")\n",
- "\n",
- "data = data.pct_change().dropna()\n",
- "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
- "for col in data.columns:\n",
- " fig.add_scatter(\n",
- " x=data.index,\n",
- " y=data[col] * 100,\n",
- " name=col,\n",
- " )\n",
- "\n",
- "eqty_2 = fig.to_html()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "8eb1327b",
- "metadata": {},
- "outputs": [],
- "source": [
- "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
- "data = openbb.economy.index(\n",
- " indices=[\"in_nse50\", \"br_bvsp\", \"za_jo\", \"mx_ipc\", \"ru_moex\"],\n",
- " start_date=\"2013-01-01\",\n",
- ")\n",
- "\n",
- "data = data.pct_change().dropna()\n",
- "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
- "for col in data.columns:\n",
- " fig.add_scatter(\n",
- " x=data.index,\n",
- " y=data[col] * 100,\n",
- " name=col,\n",
- " )\n",
- "\n",
- "eqty_3 = fig.to_html()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "02630bd6",
- "metadata": {},
- "outputs": [],
- "source": [
- "fig = OpenBBFigure(yaxis_title=\"Cumulative returns (%)\")\n",
- "data = openbb.economy.index(indices=[\"arca_xoi\", \"arca_pse\"], start_date=\"2000-01-01\")\n",
- "\n",
- "data = data.pct_change().dropna()\n",
- "data = (1 + data.shift(periods=1, fill_value=0)).cumprod() - 1\n",
- "for col in data.columns:\n",
- " fig.add_scatter(\n",
- " x=data.index,\n",
- " y=data[col] * 100,\n",
- " name=col,\n",
- " )\n",
- "\n",
- "eqty_4 = fig.to_html()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "5a4c8963",
- "metadata": {},
- "outputs": [],
- "source": [
- "bigmac_res = openbb.economy.bigmac()\n",
- "\n",
- "if (isinstance(bigmac_res, pd.DataFrame) and not bigmac_res.empty) or (\n",
- " not isinstance(bigmac_res, pd.DataFrame) and bigmac_res\n",
- "):\n",
- " bigmac = openbb.economy.bigmac_chart(\n",
- " country_codes=[\n",
- " \"USA\",\n",
- " \"CAN\",\n",
- " \"ARG\",\n",
- " \"PRT\",\n",
- " \"NLD\",\n",
- " \"FRA\",\n",
- " \"UAE\",\n",
- " \"LKA\",\n",
- " \"VNM\",\n",
- " \"RUS\",\n",
- " \"SWE\",\n",
- " \"GBR\",\n",
- " ],\n",
- " external_axes=True,\n",
- " )\n",
- " if bigmac:\n",
- " bigmac.set_title(\"\")\n",
- " bigmac = bigmac.to_html()\n",
- "\n",
- "else:\n",
- " bigmac_res = pd.DataFrame()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "1947a06c",
- "metadata": {},
- "outputs": [],
- "source": [
- "subplots = OpenBBFigure.create_subplots(1, 1, specs=[[{\"secondary_y\": True}]])\n",
- "\n",
- "openbb.economy.macro_chart(\n",
- " parameters=[\"CONF\", \"IP\"], start_date=\"2010-01-01\", external_axes=True\n",
- ").to_subplot(subplots, 1, 1, secondary_y=False)\n",
- "subplots.update_yaxes(title_text=\"Confidence and IP\", secondary_y=False)\n",
- "\n",
- "\n",
- "df, df_dict, _ = openbb.economy.macro(parameters=[\"CPI\"], start_date=\"2010-01-01\")\n",
- "cpi_chg = df.pct_change(1) * 100\n",
- "subplots.add_scatter(\n",
- " x=cpi_chg.index,\n",
- " y=cpi_chg.T.values[0],\n",
- " name=\"CPI (% change)\",\n",
- " mode=\"lines\",\n",
- " line=dict(color=\"red\", dash=\"dash\"),\n",
- " secondary_y=True,\n",
- " yaxis=\"y2\",\n",
- ")\n",
- "subplots.update_yaxes(\n",
- " title_text=\"CPI (% change)\",\n",
- " secondary_y=True,\n",
- " range=[-2, 2],\n",
- " side=\"left\",\n",
- " overlaying=\"y\",\n",
- ")\n",
- "subplots.horizontal_legend()\n",
- "\n",
- "macro_0 = subplots.to_html()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "971e4c51",
- "metadata": {},
- "outputs": [],
- "source": [
- "fred = openbb.economy.fred(series_ids=[\"T10Y3M\"], start_date=\"1980-01-01\")\n",
- "\n",
- "if (isinstance(fred, pd.DataFrame) and not fred.empty) or (\n",
- " not isinstance(fred, pd.DataFrame) and fred\n",
- "):\n",
- " df, df_dict = fred\n",
- "\n",
- " fig = OpenBBFigure.create_subplots(1, 1, specs=[[{\"secondary_y\": True}]])\n",
- " fig.add_scatter(\n",
- " x=df.index,\n",
- " y=df[\"T10Y3M\"],\n",
- " name=df_dict[\"T10Y3M\"][\"title\"],\n",
- " line=dict(color=\"red\", dash=\"dash\"),\n",
- " secondary_y=False,\n",
- " )\n",
- " openbb.economy.fred_chart(\n",
- " series_ids=[\"A191RP1A027NBEA\"],\n",
- " start_date=\"1980-01-01\",\n",
- " external_axes=True,\n",
- " ).to_subplot(fig, 1, 1, secondary_y=True)\n",
- " fig.update_yaxes(secondary_y=True, side=\"left\", overlaying=\"y\")\n",
- " fig.set_title(\"\")\n",
- " fig.horizontal_legend()\n",
- "\n",
- " fred_0 = fig.to_html()\n",
- "else:\n",
- " fred = None"
- ]
- },
- {
- "attachments": {},
- "cell_type": "markdown",
- "id": "ac501a32-124d-4d21-aae1-a8d147bb1071",
- "metadata": {},
- "source": [
- "## Render the report template to a file\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "abfe37e4-ea38-42c3-8fb5-7cceb233fb12",
- "metadata": {},
- "outputs": [],
- "source": [
- "body = f\"\"\"\n",
- "\n",
- "\n",
- "\"\"\"\n",
- "\n",
- "\n",
- "img = (\n",
- " str(REPOSITORY_DIRECTORY)\n",
- " + \"/openbb_terminal/reports/templates/OpenBB_reports_logo.png\"\n",
- ")\n",
- "floppy_disk_img = (\n",
- " str(REPOSITORY_DIRECTORY) + \"/openbb_terminal/reports/templates/floppy-disc.png\"\n",
- ")\n",
- "body += widgets.header(\n",
- " img,\n",
- " floppy_disk_img,\n",
- " author,\n",
- " report_date,\n",
- " report_time,\n",
- " report_timezone,\n",
- " f\"ECONOMY REPORT: Leverage multiple sources to create custom reports.\",\n",
- ")\n",
- "\n",
- "body += widgets.tablinks(\n",
- " [\n",
- " \"SUMMARY\",\n",
- " \"Events\",\n",
- " \"Yields\",\n",
- " \"Equity Market\",\n",
- " \"Macro Data\",\n",
- " ]\n",
- ")\n",
- "\n",
- "# Summary\n",
- "htmlcode = widgets.row(\n",
- " [widgets.h(3, \"Global markets (source: WSJ)\") + overview.to_html()]\n",
- ")\n",
- "\n",
- "htmlcode += widgets.row(\n",
- " [widgets.h(3, \"Commodities (source: WSJ)\") + futures_fig.to_html()]\n",
- " + [\n",
- " widgets.h(3, \"Real-time sector performance (source: Alphavantage)\")\n",
- " + rtps_data.to_html().replace(\"table\", 'table style=\"display:inline\"')\n",
- " ]\n",
- ")\n",
- "htmlcode += widgets.row([chart_0])\n",
- "\n",
- "if not news.empty:\n",
- " htmlcode += widgets.row(\n",
- " [\n",
- " widgets.h(3, \"Top news on 'economy' keyword (source: Feedparser)\")\n",
- " + news.to_html(escape=False)\n",
- " ]\n",
- " )\n",
- "\n",
- "body += widgets.add_tab(\"SUMMARY\", htmlcode)\n",
- "\n",
- "# Events\n",
- "htmlcode = widgets.row([widgets.h(3, \"Economic calendars (source: investing.com)\")])\n",
- "htmlcode += widgets.row([widgets.h(3, \"United States\") + events_1.to_html()])\n",
- "htmlcode += widgets.row(\n",
- " [widgets.h(3, \"Select European Countries\") + events_2.to_html()]\n",
- ")\n",
- "htmlcode += widgets.row([widgets.h(3, \"China\") + events_3.to_html()])\n",
- "body += widgets.add_tab(\"Events\", htmlcode)\n",
- "\n",
- "# Yields\n",
- "htmlcode = widgets.row([widgets.h(3, \"US treasuries (source: EconDB)\") + ust])\n",
- "\n",
- "if ycrv:\n",
- " htmlcode += widgets.row(\n",
- " [\n",
- " widgets.h(3, f\"{ycrv_country_1} yield curve (source: FRED)\")\n",
- " + (ycrv_chart_1 or \"\")\n",
- " ]\n",
- " )\n",
- " htmlcode += widgets.row([widgets.h(3, \"\") + ycrv_data_1.to_html()])\n",
- "\n",
- "body += widgets.add_tab(\"Yields\", htmlcode)\n",
- "\n",
- "# Equity market\n",
- "htmlcode = widgets.row(\n",
- " [widgets.h(3, \"Valuation (source: Finviz)\") + valuation.to_html()]\n",
- ")\n",
- "htmlcode += widgets.row(\n",
- " [widgets.h(3, \"Performance (source: Finviz)\") + valuation.to_html()]\n",
- ")\n",
- "htmlcode += widgets.row([widgets.h(3, \"US markets (source: YahooFinance)\") + eqty_0])\n",
- "htmlcode += widgets.row(\n",
- " [widgets.h(3, \"European markets (source: YahooFinance)\") + eqty_1]\n",
- ")\n",
- "htmlcode += widgets.row([widgets.h(3, \"APAC markets (source: YahooFinance)\") + eqty_2])\n",
- "htmlcode += widgets.row(\n",
- " [widgets.h(3, \"Emerging markets (source: YahooFinance)\") + eqty_3]\n",
- ")\n",
- "htmlcode += widgets.row([widgets.h(3, \"ARCA (source: YahooFinance)\") + eqty_4])\n",
- "body += widgets.add_tab(\"Equity Market\", htmlcode)\n",
- "\n",
- "# Macro\n",
- "htmlcode = \"\"\n",
- "if not bigmac_res.empty:\n",
- " htmlcode += widgets.row(\n",
- " [widgets.h(3, \"Bigmac index (source: Nasdaq)\") + (bigmac or \"\")]\n",
- " )\n",
- "htmlcode += widgets.row([widgets.h(3, \"Leading indicators (source: EconDB)\") + macro_0])\n",
- "if fred:\n",
- " htmlcode += widgets.row(\n",
- " [widgets.h(3, \"Recession indicator (source: FRED)\") + fred_0]\n",
- " )\n",
- "body += widgets.add_tab(\"Macro Data\", htmlcode)\n",
- "\n",
- "body += widgets.tab_clickable_and_save_evt()\n",
- "report = widgets.html_report(title=report_name, stylesheet=stylesheet, body=body)\n",
- "\n",
- "# to save the results\n",
- "with open(report_name + \".html\", \"w\", encoding=\"utf-8\") as fh:\n",
- " fh.write(report)"
- ]
- }
- ],
- "metadata": {
- "celltoolbar": "Tags",
- "kernelspec": {
- "display_name": "venv",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- },
- "vscode": {
- "interpreter": {
- "hash": "381a209f752e9104bff95ec5e80679ea2e476866b80e4326f1ee6b7658af6049"
- }
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
+ "nbformat": 4,
+ "nbformat_minor": 5
}
diff --git a/openbb_terminal/sdk.py b/openbb_terminal/sdk.py
index dc4a271f7461..c074ac350e07 100644
--- a/openbb_terminal/sdk.py
+++ b/openbb_terminal/sdk.py
@@ -36,7 +36,7 @@ class OpenBBSDK:
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
+ `news`: Get news for a given term and source. [Source: Ultima Insights News Monitor]\n
`whoami`: Display user info.\n
"""
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_daily_transactions[USDC].yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_daily_transactions[USDC].yaml
deleted file mode 100644
index ac447df525e9..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_daily_transactions[USDC].yaml
+++ /dev/null
@@ -1,264 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "\n select\n date_trunc(''day'', block_timestamp) as timeframe,\n sum(case
- when symbol = ''U'' then amount_usd end) as U,sum(case when symbol = ''S'' then
- amount_usd end) as S,sum(case when symbol = ''D'' then amount_usd end) as D,sum(case
- when symbol = ''C'' then amount_usd end) as C\n from ethereum.udm_events\n where\n block_timestamp
- >= ''2020-06-01''\n -- and amount0_usd > ''0''\n group by 1\n order
- by timeframe desc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '472'
- Content-Type:
- - application/json
- User-Agent:
- - python-requests/2.28.1
- x-api-key:
- - f5857482-1185-4d7c-98f0-e537d2335130
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdNNNbBMSUm2MDQxSrZISzNPMU5LTjUyMDY1N042
- STVPNVHSUUpOTM5ITVGySkvMKU6tBQAhooQXRAAAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 10:14:44 GMT
- etag:
- - W/"44-q5TDVqI2cmbhDDLiGzKLvyQ4VxQ"
- fly-request-id:
- - 01GF0P7HDTDF3AYV3HM4R978WB-cdg
- keep-alive:
- - timeout=5
- ratelimit-limit:
- - '10000'
- ratelimit-remaining:
- - '9992'
- ratelimit-reset:
- - '84813'
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- User-Agent:
- - python-requests/2.28.1
- x-api-key:
- - f5857482-1185-4d7c-98f0-e537d2335130
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-e09ddc8142c8ff7d3fce203573c4e7e4?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKi5JLCktVrJSKirNy8vMS1eqBQAqTkzLFAAAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 10:14:45 GMT
- etag:
- - W/"14-gfn4m/4htgMx1Nnl9+2EBDZ+o8g"
- fly-request-id:
- - 01GF0P7HPPFFA2SW6Q8PE4P0CQ-ams
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- User-Agent:
- - python-requests/2.28.1
- x-api-key:
- - f5857482-1185-4d7c-98f0-e537d2335130
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-e09ddc8142c8ff7d3fce203573c4e7e4?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6pWKkotLs0pKVayio5WMjIwMtI1sNA1sFAwMLACIz0DAwMlnbzSnBw0IlYHSb05
- ierNSFRvSqJ6ExLVG5Oo3ohE9YakqDfXNSZVvQFp5htZkqiepPRgrmtEUnow1zUiKT2Y6xqRlB7M
- dY1ISg/mukYkpQdzXSOS0oO5rhGJ8WtEYvwakhi/hiTGryER8QsAAAD//0KUD+a6hiTGryGJ8WtI
- Yvwakhi/hiTGryGJ8WtIYvwakBi/pJXn5roGJMavAYnxa0Bi/BqQGL8GJMavAYnxa0BS/JrpGpMU
- v2a6pJXPZrpGJOVfMxLLZzMSy2czEstnMxLLZzMSy2czEstnMxLLZzNd0spnM13SymczXdLKZzNd
- 0spnMxLLZzNd0spnM13SymczXdLKZzNd0spnM13SymczXdLKZzNd0spnMxLb22Ykls9muqSVz2a6
- pJVvpiS2V01JLA9NSSwPTUksD01JLA9NSSwPTUksD01JLA9NSSwPTUksD01JLA9NSSwPTUksD01J
- LA9NSSwPTUksD01JLA9NSSwPTUksD01JLA9NSSwPTUksD01JLA9NSSwPTUksD01JLA9NdUlrr5rq
- ktZeNdUlrb1qqktae9WUxPLchMTy2YTE8tmExPLZhMTy2YTE8tmExPLZhMTy2YTE8tmExPLZhMTy
- 2YTE8tmExPLZhMTy2YTE8tmExPLZhMTy2YTE8tmExPLZhMTy2YTE8tmExPLZhMTy2YTE8tmExPLZ
- hMTy2YTE8tmExPLZhMTy2YTE8tmExPLZmMT2tjGJ5bkxieW5MYnluTGJ5bkxieW5MYnluTGJ5bkx
- ieW5MYnluTGJ5bkxieW5MYnluTGJ5bkxieW5MYnluTGJ5bkxieW5MYnluTGJ5bkxieW5MYnluTGJ
- 5bkxieW5MYnluTGJ5bkxieW5MYnluTGJ5bkxieW5MYnluRGJ5acRieWnEYnlpxGJ5acRieWnEYnl
- pxGJ5acRieWnEYnlpxGJ5acRieWnEYnlpxGJ5acRieWnEYnlpxGJ5acRieWnEYnlpxGJ5acRieUn
- aMkEKfPpRiSWn0Yklp9GJJafRiSWn0Yklp9GJJafRiSWn4YktocNSWwPG5LYHjYksTw3JLE8NySx
- PDcksTw3JLE8N8RangMAAAD//8rBuV7IkMTy3JDE8tyQxPLckMTy3JDE8tyQxPLckMTy3JDE8tyQ
- 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
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 10:14:55 GMT
- etag:
- - W/"9af7-WUxr4dUWiUQwMLKR+X8sug9PBVE"
- fly-request-id:
- - 01GF0P7VNPKXV4SB42QKE3PC7K-ams
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_daily_transactions[symbols0].yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_daily_transactions[symbols0].yaml
deleted file mode 100644
index 4e77ac87d5fd..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_daily_transactions[symbols0].yaml
+++ /dev/null
@@ -1,858 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "\n select\n date_trunc(''day'', block_timestamp) as timeframe,\n sum(case
- when symbol = ''DAI'' then amount_usd end) as DAI,sum(case when symbol = ''USDT''
- then amount_usd end) as USDT,sum(case when symbol = ''BUSD'' then amount_usd
- end) as BUSD,sum(case when symbol = ''USDC'' then amount_usd end) as USDC\n from ethereum.udm_events\n where\n block_timestamp
- >= ''2020-06-01''\n -- and amount0_usd > ''0''\n group by 1\n order
- by timeframe desc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '494'
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdNNNjdLtjRLS00yNDY0SzFINDI0NklONk5LTDZI
- S06xNFPSUUpOTM5ITVGyKikqTa0FAMwg9V1DAAAA
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:14 GMT
- etag:
- - W/"43-f3m9ZGaa4MiJolas/MEhJEbgGNM"
- fly-request-id:
- - 01GF0TQ8M18R7H6CAGSGB701HV-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-c76c96feb1316d0a2134cc3fac0fcd96?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- 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
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:14 GMT
- etag:
- - W/"118b7-6J6yPO9XYWSI8/cM9Xmd0wXzXXM"
- fly-request-id:
- - 01GF0TQ8RR7QQH3DT6517WVBC7-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_dapp_stats.yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_dapp_stats.yaml
deleted file mode 100644
index 10eecedf41df..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_dapp_stats.yaml
+++ /dev/null
@@ -1,184 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "select\n date_trunc(''week'', s.block_timestamp) as date,\n sum(t.fee_usd)
- as fee,\n count(distinct(s.from_address)) as n_users,\n count(distinct(s.amount_usd))
- as volume\n from ethereum.dex_swaps s\n join ethereum.transactions t\n on
- s.tx_id = t.tx_id\n where platform = ''curve''\n group by date\n order
- by date asc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '388'
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdO1TEuxSEwxTrZMtTQ2TEwyMzM0tjC2MDNMTUtM
- s7AwN1DSUUpOTM5ITVGySkvMKU6tBQAfnID9RAAAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:15 GMT
- etag:
- - W/"44-icLlpJusNrO2+YzTyfb2yGjlgZA"
- fly-request-id:
- - 01GF0TQ981WAH8WZEHRT3ZKWB4-lhr
- keep-alive:
- - timeout=5
- ratelimit-limit:
- - '10000'
- ratelimit-remaining:
- - '9977'
- ratelimit-reset:
- - '80102'
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-9fd8ad3c9e931ab661383861efaf8870?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKi5JLCktVrJSKirNy8vMS1eqBQAqTkzLFAAAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:15 GMT
- etag:
- - W/"14-gfn4m/4htgMx1Nnl9+2EBDZ+o8g"
- fly-request-id:
- - 01GF0TQ9HMM1QSYTWSKRRQHFBD-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-9fd8ad3c9e931ab661383861efaf8870?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- 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
- ZeZlFmekpijVAgB++H8Q2AoAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:25 GMT
- etag:
- - W/"ad8-sf5LVDKFh712tzShzGXcp7mL3EI"
- fly-request-id:
- - 01GF0TQKFSRXA7ZRQ6D05KBFG8-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_dapp_stats[uniswap-v3].yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_dapp_stats[uniswap-v3].yaml
deleted file mode 100644
index 38092dca6137..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_dapp_stats[uniswap-v3].yaml
+++ /dev/null
@@ -1,136 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "select\n date_trunc(''week'', s.block_timestamp) as date,\n sum(t.fee_usd)
- as fee,\n count(distinct(s.from_address)) as n_users,\n count(distinct(s.amount_usd))
- as volume\n from ethereum.dex_swaps s\n join ethereum.transactions t\n on
- s.tx_id = t.tx_id\n where platform = ''uniswap-v3''\n group by date\n order
- by date asc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '393'
- Content-Type:
- - application/json
- User-Agent:
- - python-requests/2.28.1
- x-api-key:
- - f5857482-1185-4d7c-98f0-e537d2335130
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdNNSzY2NjA3TDE2Nk1ONLOwSEs1MTQzT0pONk80
- TjEyNVDSUUpOTM5ITVGyKikqTa0FAFcJBi1DAAAA
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 10:22:18 GMT
- etag:
- - W/"43-YXSdVSomTVod7CBsfttMVpizbvI"
- fly-request-id:
- - 01GF0PNCBM4RXG8AD34ATNTAXS-cdg
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- User-Agent:
- - python-requests/2.28.1
- x-api-key:
- - f5857482-1185-4d7c-98f0-e537d2335130
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-fc33071d335ca688fe4167bcc7a3d250?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- 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
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 10:22:18 GMT
- etag:
- - W/"b4f-KgwzwsKNMhsr7nBbQ37PwRZfLQ8"
- fly-request-id:
- - 01GF0PNCGTNX1NPF2A1VWBAYBS-cdg
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_total_value_locked[0x0000000000000000000000000000000000000000-].yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_total_value_locked[0x0000000000000000000000000000000000000000-].yaml
deleted file mode 100644
index 0bb195d757a2..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_model/test_get_total_value_locked[0x0000000000000000000000000000000000000000-].yaml
+++ /dev/null
@@ -1,106 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "\n SELECT\n date_trunc(''day'', balance_date) as metric_date,\n symbol,\n amount_usd/1000000
- as amount_usd\n FROM\n ethereum.erc20_balances\n WHERE\n user_address
- = ''0x0000000000000000000000000000000000000000'' and\n symbol = ''USDC''
- AND\n balance_date >= getdate() - interval ''1 month''\n ORDER BY\n metric_date
- asc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '414'
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdM1NzNMNTE1Nk41tTA0STa1SLUwSUoxTDYxTjRI
- S0wzNlfSUUpOTM5ITVGyKikqTa0FAAtAnM1DAAAA
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:14 GMT
- etag:
- - W/"43-ChAWkttvmcKq7c9L9ujpGopGlsY"
- fly-request-id:
- - 01GF0TQ80W41K9Y0C5GFZMVEB2-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-761e4533e5814c58e84bd1c43a0faf37?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKkotLs0pKVayio7VUUrOzynNzfNJTErNAYko+bqGBHk6x7s4hrgq6SgFR/o6
- +fso6Sg5+vqH+oXEhwa7KME1hVQWpIL1pCSWpCrpKBWXFGXmpSvpKOWV5ialFoEUFpckFpWkpjiW
- KFkpGRkYGekaGugaGoQYGloZG1kZm+kZGBhEKekopeal4FRkAVNUkJie6gcx2cpQRwnEDc6sSlWy
- MjQAAZD9iSWlxUpWSmmZeZnFGakpSrUAu0TkMu0AAAA=
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:33:14 GMT
- etag:
- - W/"ed-fhfNu3Lmjm2FyGdzfm0tVbLc5Fk"
- fly-request-id:
- - 01GF0TQ8EDKNH5DB71B9A6TB41-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_daily_transactions.yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_daily_transactions.yaml
deleted file mode 100644
index d5666505feb2..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_daily_transactions.yaml
+++ /dev/null
@@ -1,858 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "\n select\n date_trunc(''day'', block_timestamp) as timeframe,\n sum(case
- when symbol = ''DAI'' then amount_usd end) as DAI,sum(case when symbol = ''USDT''
- then amount_usd end) as USDT,sum(case when symbol = ''BUSD'' then amount_usd
- end) as BUSD,sum(case when symbol = ''USDC'' then amount_usd end) as USDC\n from ethereum.udm_events\n where\n block_timestamp
- >= ''2020-06-01''\n -- and amount0_usd > ''0''\n group by 1\n order
- by timeframe desc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '494'
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdNNNjdLtjRLS00yNDY0SzFINDI0NklONk5LTDZI
- S06xNFPSUUpOTM5ITVGyKikqTa0FAMwg9V1DAAAA
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:35 GMT
- etag:
- - W/"43-f3m9ZGaa4MiJolas/MEhJEbgGNM"
- fly-request-id:
- - 01GF0TP2DPR60W86T6TTQT75NB-cdg
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-c76c96feb1316d0a2134cc3fac0fcd96?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- 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
- wJaVlBYrWSmlZeZlFmekpijVAgD9iAELtxgBAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:35 GMT
- etag:
- - W/"118b7-6J6yPO9XYWSI8/cM9Xmd0wXzXXM"
- fly-request-id:
- - 01GF0TP2KHAT73YC7592NKYGYG-ams
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_dapp_stats.yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_dapp_stats.yaml
deleted file mode 100644
index 318d64ddaa97..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_dapp_stats.yaml
+++ /dev/null
@@ -1,132 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "select\n date_trunc(''week'', s.block_timestamp) as date,\n sum(t.fee_usd)
- as fee,\n count(distinct(s.from_address)) as n_users,\n count(distinct(s.amount_usd))
- as volume\n from ethereum.dex_swaps s\n join ethereum.transactions t\n on
- s.tx_id = t.tx_id\n where platform = ''uniswap-v3''\n group by date\n order
- by date asc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '393'
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdNNSzY2NjA3TDE2Nk1ONLOwSEs1MTQzT0pONk80
- TjEyNVDSUUpOTM5ITVGyKikqTa0FAFcJBi1DAAAA
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:36 GMT
- etag:
- - W/"43-YXSdVSomTVod7CBsfttMVpizbvI"
- fly-request-id:
- - 01GF0TP32HHZQSJT8ZQ89A38KA-cdg
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-fc33071d335ca688fe4167bcc7a3d250?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6pWKkotLs0pKVayio5WMjIwMtQ1sNQ1NFYwMLACIz0DAwMlHWNjMzMLQz1TM2MT
- MwMDYxMdY2MdU0sLy1gdhCYjAzRNZsaWhsYWegampoaGhmYWxjomRjqGBqYmxii6zNF0WRhYWhqY
- 6JmaWZpZWJpb6pia6BiaWBpZwDUZGugamKBpMjI1MjAxMtMzNbI0NTU0M9YxNdYxMrU0NUXWZWiI
- rsvSzMLY3FTPyNzEwtIMZJeRjpGlmYkBii4LdF1mpuYmhoZ6xsZGBgYmFoY6poYgXYYIbxka6BqZ
- oukyM7CwNDA11jO3MDCxsDTRMTXXMTYwQgpBQ0NdA3QHWpgaWxqbGuoZGxoYWRiaWOiYmumYmBta
- IlllqGuA4UALQ2NDExNTPWNTM0NDIzMdcwMdQxNDI2MjhL8MdQ3RXWhkYG5mYmhprGdgbG5kZGSk
- Y2GiY2hkbG5hhqzNyAjNY0aG5sYmhoamemaWFsamlhY6FpY6hqaWxsZIMWaoa2SJps3QwtzQ0NzM
- WM/M3MLC0sJUx9JCx9DY0twcKcqMdA3M0LUZWVoaWxqb6JkbmBibWhrrWBrpGBobm1maIBxphJl+
- DQ3MDC2MDU31DAwtTAzMLHUsjXUMDSxMzJAcaaSLkYINzQ3NLAyMDPQMDI2MDEx1LM11jEyMTSzM
- kS0zQk/BhpamlpaWlqZ6xuaWJpZGhjqGBkY6RgZmBqYwRxrpGhjqGqBnMkMzcwMLI2NDPQsDMxOI
- A3UMjc1NDWDxBtZmiJ7NjIzNLE2NzM30DMwMjC2NzECuNDQ3MIUnY4g2dFcaGRiZmhpamOgZmZqb
- mILi2tBEx9Dc1AAelGB9RuhZzdDQ0NLAwtxSz9TQ2MwMFGsGJjqGxoYWlobQUAHrM8ZIy4bGlhbG
- BnpGZiamJqY6hoaGOoaGlqYWsMxmpGtgpGuA7koLM1NTYyNjPVMLEyMjQwNLHUOQK41NjMyRAsVI
- 1xDdleYWRmam5sZ6ppZGBqbmRkYgu3QMTc3MDWDpC2yfEborzYwMzA0MjfVMzS0tzIwsLXVA+cfQ
- yMzUEsWdRuh5ztQAlNNM9CxNDSzMLM2NQTlHx9DIwMwSVkYa6RoYY/rP2NTAzMDQTM/Y3NTE2MDU
- EGKfsbGFOVJaMcb0n6WRhZGxsbmeBaiAMDIGZQJTHSMjU2NzWIoG24fhP3MTUwMjcwM9c2NzMxNz
- UNo0stQxMjAxNEUKT2NdDP8ZGpqZmJlaGOpZGJlYmpqBymRDHSNDY1NjWF4w0jUwwSyYLYxNDc2N
- LPSMLC0MQGlExxBUCZiamBkh+c9EF6NoNjM3MzMzBeVXQxMzMwMjHUNTEDYzMkDVhx4PZiamlgag
- 4gFUvliYWOoYGpuB9BoaI8WfCWbxbGlgamFhbqhnYWlpaWhhZqZjaGIAyrOWlrDSz0jXwFTXAL30
- M7Y0NTQ2N9czNTW1tLSwMNYxBMWhoaGJOVK8m+oaYBZ/BiamlmZGepYmRgaWhqY6huZmoPA0QY4/
- U11D9PLPyMDEzMzMUs/MwNjC1NDEBGKfgaWZGZL/THWN0MsWIyNDE0tDC7A7DYzB+sx0DA0NTEyQ
- 4t1U1xi9cLE0MLEwAhXShqZmpgageDcy0jG2NEDOtmaYxbSxKahOMNYzNDc1AtUJoCrZEFxhIsoI
- M8xi2sTC3MzcyFjP3MjM2Mzc2ELH0Mxcx9DcyMQYKVWbYSunjQ1MzA30zEDZz9DAEBIqRoZmpkip
- 00wXs6Q2MTMxMzLWszQ0NbOwNDHUMTQDlUqmJgZI+swxU7WhkbmRkYGhnpmBqaGpuSko1kF1pYmp
- GVJqMcdM1YYmRmbmFuZ6BhbGZoZmoJwADlETAyNUfeip2tDCDFQG6VmYmlqam4EqWFAJY2JhaokU
- LuaYqdrQ3NzA1NxQz9TUzMTY0NRSx9AClItAjTFEPFhgtjsMDcyMTQ2N9YzMLY0sjI0NdQxBTQgD
- Uwvk3G6B2fIAzNjQ1EzP3MLIFNRaNNYBFbsWJrGxOkrJ+TmluXk+iUmpOcVKVtFKLo4hrko6Sm6u
- INIvPjTYNShYSUcpzN8n1NdVCa4hpLIgFay+JDM3tbgkMbdASUcprzQ3KbUICyNWR6m4JLGoJDXF
- sUTJCtSYNdI1NNA1NAgxNLQyMrIyMgQ1ZqOUdJRS81IIKypITE/1g9hlZaijBOIGZ1alKlkZGoAA
- 2LKS0mIlK6W0zLzM4ozUFKVaADfuoyhPCwAA
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:36 GMT
- etag:
- - W/"b4f-FL9M7yKwoZj9rMPMgI6HmQKZvD4"
- fly-request-id:
- - 01GF0TP37CDWJ7SKX1KNYFXFGV-cdg
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_total_value_locked.yaml b/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_total_value_locked.yaml
deleted file mode 100644
index 2e07fe1efe8b..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/cassettes/test_shroom_view/test_display_total_value_locked.yaml
+++ /dev/null
@@ -1,159 +0,0 @@
-interactions:
-- request:
- body: '{"sql": "\n SELECT\n date_trunc(''day'', balance_date) as metric_date,\n symbol,\n amount_usd/1000000
- as amount_usd\n FROM\n ethereum.erc20_balances\n WHERE\n user_address
- = ''0x0000000000000000000000000000000000000000'' and\n symbol = ''USDC''
- AND\n balance_date >= getdate() - interval ''1 month''\n ORDER BY\n metric_date
- asc\n ", "ttlMinutes": 15}'
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Length:
- - '414'
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: POST
- uri: https://node-api.flipsidecrypto.com/queries
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKsnPTs1TslIqLE0tqgwqzdM1NzNMNTE1Nk41tTA0STa1SLUwSUoxTDYxTjRI
- S0wzNlfSUUpOTM5ITVGySkvMKU6tBQCItla1RAAAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:36 GMT
- etag:
- - W/"44-s2PPX6EWKS6gFs7IgeKrrq0b9Rc"
- fly-request-id:
- - 01GF0TP3FVTJTTSM519PV4FVF9-cdg
- keep-alive:
- - timeout=5
- ratelimit-limit:
- - '10000'
- ratelimit-remaining:
- - '9978'
- ratelimit-reset:
- - '80141'
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-761e4533e5814c58e84bd1c43a0faf37?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKi5JLCktVrJSKirNy8vMS1eqBQAqTkzLFAAAAA==
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:36 GMT
- etag:
- - W/"14-gfn4m/4htgMx1Nnl9+2EBDZ+o8g"
- fly-request-id:
- - 01GF0TP3QGBX48JR6MK2Z6NCSB-ams
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- Accept:
- - application/json
- Accept-Encoding:
- - gzip, deflate
- Connection:
- - keep-alive
- Content-Type:
- - application/json
- x-api-key:
- - MOCK_AUTHORIZATION
- method: GET
- uri: https://node-api.flipsidecrypto.com/queries/queryRun-761e4533e5814c58e84bd1c43a0faf37?pageNumber=1&pageSize=100000
- response:
- body:
- string: !!binary |
- H4sIAAAAAAAE/6tWKkotLs0pKVayio7VUUrOzynNzfNJTErNAYko+bqGBHk6x7s4hrgq6SgFR/o6
- +fso6Sg5+vqH+oXEhwa7KME1hVQWpIL1pCSWpCrpKBWXFGXmpSvpKOWV5ialFoEUFpckFpWkpjiW
- KFkpGRkYGekaGugaGoQYGloZG1kZm+kZGBhEKekopeal4FRkAVNUkJie6gcx2cpQRwnEDc6sSlWy
- MjQAAZD9iSWlxUpWSmmZeZnFGakpSrUAu0TkMu0AAAA=
- headers:
- connection:
- - keep-alive
- content-encoding:
- - gzip
- content-type:
- - application/json; charset=utf-8
- date:
- - Mon, 10 Oct 2022 11:32:47 GMT
- etag:
- - W/"ed-fhfNu3Lmjm2FyGdzfm0tVbLc5Fk"
- fly-request-id:
- - 01GF0TPDQ1AEJBQYFPXF7599EH-lhr
- keep-alive:
- - timeout=5
- server:
- - Fly/54d1d920f (2022-09-30)
- transfer-encoding:
- - chunked
- vary:
- - Origin
- via:
- - 1.1 fly.io
- x-powered-by:
- - Express
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_daily_transactions[symbols0].csv b/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_daily_transactions[symbols0].csv
deleted file mode 100644
index dabf5e79b0f8..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_daily_transactions[symbols0].csv
+++ /dev/null
@@ -1,796 +0,0 @@
-timeframe,DAI,USDT,BUSD,USDC
-2022-08-08,696549.068261015,6883865.44947931,,60100842.9594408
-2022-08-07,55478227.0129458,142436767.74422,,391540772.566818
-2022-08-06,921149847.244623,234519469.130976,,2092821123.01755
-2022-08-05,1295899973.512,659450660.951105,,3255484885.3575
-2022-08-04,7709800798.75701,2547802927.26371,,9358731330.11925
-2022-08-03,11012564986.4206,2767309767.73299,,12443706934.9529
-2022-08-02,12811759128.9201,3016713400.96395,,15487985470.7385
-2022-08-01,8823228328.3265,3468668913.695,,15670761717.5337
-2022-07-31,3039224195.19408,1436666560.11098,,7970185422.99008
-2022-07-30,3218039634.22373,1769738140.45459,,8195611210.94511
-2022-07-29,10575816270.1378,3205585054.06391,,14973362401.8052
-2022-07-28,5536447093.80861,3981715344.23448,,13953930153.851
-2022-07-27,4490236804.71598,3619419502.19643,,12397757851.5011
-2022-07-26,3244173561.19432,3797482287.98411,,10143878333.8585
-2022-07-25,3113569214.52379,3361635360.53148,,13147446117.0178
-2022-07-24,3579767475.67209,1456223853.00139,,7547498794.7169
-2022-07-23,12807432327.2269,1813132393.89947,,11511115564.9638
-2022-07-22,5072528779.04504,3871243165.94748,643641564.095963,12417203085.8068
-2022-07-21,5160686207.445,3813592261.22715,629157800.88735,13441864275.8206
-2022-07-20,9717683256.14005,4002955570.27921,1159049726.29704,20700537880.2768
-2022-07-19,5028402602.2445,4520514344.82047,525139593.840689,11045993696.4138
-2022-07-18,3227854510.94078,3994251360.96276,1193617649.52338,14178611224.0926
-2022-07-17,3436900479.50879,1790283787.53514,119986173.042141,6546987180.27934
-2022-07-16,1367635576.61295,2310931520.4203,128367792.999903,6367839361.06222
-2022-07-15,6758703321.83494,3610116334.14735,1322948962.52974,12618815344.6228
-2022-07-14,3006422823.36289,3289585590.31125,779665624.965346,10067727046.0183
-2022-07-13,3828489501.89532,3441423598.11136,585989943.665163,11334267570.4135
-2022-07-12,5083016900.78775,3363215320.57461,650768267.552713,12083259728.2855
-2022-07-11,6179304657.16556,2702712865.24188,1190443390.04913,13832735855.4197
-2022-07-10,5817102886.20893,1562671635.16181,109718345.216767,9233911113.98243
-2022-07-09,6029183188.82781,1326079808.0162,374827662.435708,9289241423.42353
-2022-07-08,3140674637.60343,3051410272.97657,488023520.430931,12457455624.8892
-2022-07-07,4196965354.71779,3706753832.68082,324274105.762342,11660826607.961
-2022-07-06,1374097270.63586,3655739645.55223,881835035.181127,10471313891.7528
-2022-07-05,6605457225.24037,3649182338.60526,280777216.940619,12458441996.9406
-2022-07-04,707168953.473921,417674810.939526,,1952817046.31055
-2022-07-03,,,,
-2022-07-02,,,,
-2022-07-01,,,,
-2022-06-30,1943331295.8726,3160748166.19171,407483541.586193,6335179865.76898
-2022-06-29,4276192947.74726,4908104803.16038,847482758.154662,11858825915.6453
-2022-06-28,3094460678.8048,4319204111.34131,369289925.144288,9236689759.39326
-2022-06-27,2103560037.04045,3491502036.9742,385540443.629008,9154390420.15228
-2022-06-26,2300567584.85319,1658959798.85294,38228888.6321954,4558202076.37419
-2022-06-25,593867740.448034,1813989631.79779,291656865.566147,4207203361.2455
-2022-06-24,4753161601.29779,4888195572.23085,826853256.79178,12650816377.4945
-2022-06-23,4246939693.59827,4446188209.6336,1121077566.22768,11953930556.8142
-2022-06-22,1794817137.95205,5878056633.08216,1047653504.23131,10566689798.1941
-2022-06-21,3884784399.50408,6014500754.79117,1998316474.46779,11486733320.4321
-2022-06-20,3566123655.85468,9846691038.94227,764161484.90086,14865437109.5512
-2022-06-19,5380981503.61972,4379789876.43933,1260765933.08897,13975674101.2024
-2022-06-18,13376842600.1513,5670229681.70557,1192438003.23676,20488876955.6774
-2022-06-17,6119178680.5633,7059320543.84916,1769980045.58102,16986451274.163
-2022-06-16,4133408366.55031,8483863946.17641,1565833008.75848,15232973574.3018
-2022-06-15,5971959435.91127,11165023314.4898,3664459045.0298,29901401007.063
-2022-06-14,6693921646.50561,13525502740.3682,2370233945.35995,25343802071.893
-2022-06-13,10018934996.8789,14023446633.2144,3074027418.54999,38795371326.3182
-2022-06-12,5800205671.51764,3147880373.35771,577674536.796713,11497726609.6843
-2022-06-11,3140008691.54716,2742285603.01457,521527298.979933,7758183839.01235
-2022-06-10,1973815746.69573,3461369655.63198,555330021.662104,9175067520.95453
-2022-06-09,1554053061.57067,3235744595.77186,688149004.368769,8748831367.42219
-2022-06-08,211816480.688644,400378203.61287,117945520.303798,1101517682.65645
-2022-06-07,1435072648.64027,3364232565.74628,945013956.772079,4519970357.01152
-2022-06-06,1338719658.99798,3922670451.07235,971516282.030056,8918231579.47426
-2022-06-01,888148054.649171,2959197893.48107,545887687.526495,3542252698.90311
-2022-05-31,2298533560.31296,4848497906.55551,1231867687.11145,9587333779.70882
-2022-05-30,2521317115.21217,4214301821.01666,270984650.133637,13164808120.1363
-2022-05-29,257060342.660975,1201238699.99477,405770044.214284,2956031197.90368
-2022-05-28,1540246253.43324,1649405746.88301,438215981.232171,5453519789.57636
-2022-05-27,2647426053.33231,4768781363.59888,1251863348.37132,12972962474.9062
-2022-05-26,3286814237.67256,4611309937.39176,1483163809.99215,13245924414.7761
-2022-05-25,2140083455.9664,3470931834.13929,763992787.675034,12000434302.2047
-2022-05-24,2447041956.34332,3550709622.57756,217477762.768763,12443108065.9403
-2022-05-23,1649148702.77621,4283492288.381,805261360.917192,15588160816.5909
-2022-05-22,474181769.218894,1642768175.9701,671207937.177331,4845608919.26185
-2022-05-21,2454371668.60647,2260537568.71962,106308160.275547,6353393376.90221
-2022-05-20,5153129183.34468,5497383684.93384,137623152.047554,15106230879.8623
-2022-05-19,3070875419.24793,5327644193.47946,1505207636.04842,15638581862.0495
-2022-05-18,1111568627.736,4932217657.13416,939217729.15354,13225891112.849
-2022-05-17,212595621.370361,2581842869.75419,619376321.805174,2823479166.24682
-2022-05-16,1796681804.70777,6552907795.22871,2172199434.90015,16963268300.8597
-2022-05-15,3350184438.35331,2562112623.86598,297227817.867724,7854442349.34194
-2022-05-14,2059634281.54843,5426201756.56766,1593359718.50934,9108139399.06968
-2022-05-13,3137006905.76305,15156952655.2297,3868227850.34876,22929125962.172
-2022-05-12,10380621707.8624,33074227409.5953,4381966221.15216,43313952766.4695
-2022-05-11,8425296578.94272,21653846507.8059,4220754350.45912,31754652067.1365
-2022-05-10,3152253623.27522,13174824159.035,1190967797.04976,19959647510.2447
-2022-05-09,7157020478.40014,11289794813.6343,362052159.227394,24392870887.7522
-2022-05-08,6188328452.3321,6374559840.30725,811524488.514459,13240337983.1733
-2022-05-07,2018241548.70062,4268839439.25356,5114198279.3733,7194891783.2165
-2022-05-06,2933993127.07536,5995456155.59712,7181894166.98528,11144837420.3437
-2022-05-05,1766419730.08363,5474314671.37787,1164557696.86172,10554878076.9091
-2022-05-04,1654960398.23165,4493247009.16862,256188701.817401,10315094180.0796
-2022-05-03,269117.924174702,1843388.15213565,7840.100081066,5095231.11649359
-2022-05-02,12345.835604028,734000.305790821,543.611518765,1339773.69391452
-2022-05-01,,738387.788112833,,1079891.90458082
-2022-04-30,2297287288.84115,1879231670.87253,266311362.852483,5550110741.15987
-2022-04-29,1425065442.83286,4412693479.19355,1638809702.11955,8480560331.17216
-2022-04-28,1832128920.3195,5168160421.92276,437795129.967195,9319454399.88714
-2022-04-27,1083136121.84367,4078118848.8177,471442187.528315,6755003502.26006
-2022-04-26,1730157012.66095,5147119909.73921,686493198.107569,9177718246.98773
-2022-04-25,1502716188.65882,6307029359.92487,1101370208.3563,10776100473.9138
-2022-04-24,504983851.364299,2614028927.40107,272126922.702619,2704804459.50499
-2022-04-23,732531331.16035,2287189608.92392,53865126.017983,2594419040.73229
-2022-04-22,1271614733.44788,4983570476.04154,1920233889.34913,7222304459.91232
-2022-04-21,1061828735.60931,4988965011.16136,660363259.449558,7806652158.75309
-2022-04-20,1260064818.1416,4968883359.16947,1226787768.58256,10864462432.5095
-2022-04-19,699147895.495671,4182871249.45185,543627511.054257,7451118249.33172
-2022-04-18,,,,247474.972244322
-2022-04-17,2525384439.42036,2256571970.70283,9127718.11056824,5773794938.91803
-2022-04-16,446980068.369895,1805676410.34198,45331980.5027842,2503640930.25771
-2022-04-15,756773208.811889,3560115546.62495,171871440.316572,5557393360.56746
-2022-04-14,1323064919.54724,4029984871.72464,554592135.14439,7970572046.91305
-2022-04-13,1093087106.92093,4453802245.02984,887125136.67463,9515267387.48911
-2022-04-12,919100771.423777,5636647365.21301,1005343002.30889,9841270039.01335
-2022-04-11,2330779030.62203,6447003974.38265,701580193.773654,13145284071.7204
-2022-04-10,494380136.836548,2159928892.65247,268486868.532888,3061980829.98823
-2022-04-09,1485391618.05424,2298570633.45637,975418025.038012,3742089428.62799
-2022-04-08,1458342053.64275,4944539736.40174,332723847.751848,9646964191.82418
-2022-04-07,2186054541.98661,4407107743.86765,512462880.969004,8337803230.06056
-2022-04-06,2242227426.2128,7110724912.40087,866909860.814656,10350191234.7265
-2022-04-05,776395720.056537,4227360102.1638,798670747.153973,8757186760.97851
-2022-04-04,657482760.326543,3940632908.66443,301044103.693711,10268131401.4625
-2022-04-03,794959386.750565,1999469241.15043,208415588.538409,3262752151.76399
-2022-04-02,1253099707.72246,3006915436.24096,264936007.87314,5008468782.99416
-2022-04-01,1183454016.06363,5101736237.8389,1282538578.88821,9121705348.1619
-2022-03-31,2041533201.23621,5483419085.36223,430428728.536005,9537733672.9404
-2022-03-30,1209561384.73793,5324918126.13003,380605879.799079,9838326795.60175
-2022-03-29,2780699059.3809,5520691093.85118,252952005.32329,13105109704.0727
-2022-03-28,3185929977.55501,5800714919.86182,534833567.217266,11419532251.9388
-2022-03-27,893219593.88714,2649369308.30323,150762317.429929,3675967991.67686
-2022-03-26,975398939.265387,3415320365.35633,107407250.911986,4247804207.17423
-2022-03-25,2196399673.65963,7096510054.00182,945080242.938084,16945813154.3133
-2022-03-24,1714469575.53544,7786460758.26989,392734498.481742,10208039788.3524
-2022-03-23,1009173224.68805,5797161255.23752,371638197.958114,8834596016.01829
-2022-03-22,1604359744.23523,5171347560.80018,347076232.31309,11109120696.6518
-2022-03-21,1313543517.5575,4222215302.24796,344959437.414191,8952500779.20518
-2022-03-20,982488028.387372,2963725371.4261,132990038.427497,4644204689.56119
-2022-03-19,824714193.195814,3896795728.83525,369298420.720443,4860532803.91548
-2022-03-18,941097284.810001,5317622439.52913,530640664.506847,7691783239.02078
-2022-03-17,1951278573.23,4850513208.40084,551466668.800974,8586747106.57608
-2022-03-16,839024639.388055,4327282649.00866,655608883.517386,7176136174.89306
-2022-03-15,774452601.582944,4064564564.81502,452979024.690389,6013732188.05423
-2022-03-14,1118002682.73903,4833263247.5189,265338170.847161,9869477603.58913
-2022-03-13,658595260.035506,3302510031.04919,38414657.7728439,4183631568.6218
-2022-03-12,617331623.161178,2922575217.82031,292361099.592461,3785289402.59484
-2022-03-11,1011170499.14037,4806856244.7615,420352449.124927,8654437713.93054
-2022-03-10,776029363.026199,5291280973.51463,581434066.256173,8171944329.18353
-2022-03-09,949912383.783688,4110422035.10851,1306946061.96168,8199541168.54771
-2022-03-08,1416644372.45681,5662608895.66869,820957088.98157,10234033608.4291
-2022-03-07,1441997394.44318,5390417951.50365,2131759463.0168,10055406909.7088
-2022-03-06,1525258047.43718,3136431764.4943,1252469981.9229,5406646400.47898
-2022-03-05,3385809396.22287,2738038826.69268,86741755.52311,4366841872.57058
-2022-03-04,2267224268.11517,6226338862.2743,1179926721.35147,12095418010.828
-2022-03-03,1242209506.75247,6646867476.48019,712637499.146776,8779584166.28788
-2022-03-02,1830024211.48,5125372801.00284,1747455448.26715,10662402262.1459
-2022-03-01,1498339650.00006,7340903278.92353,563878255.12322,11165178417.5234
-2022-02-28,883978298.956209,7457031553.5785,1188636636.1285,7356978307.92457
-2022-02-27,577995815.161149,2803276640.50604,80412220.4439756,5337027341.10388
-2022-02-26,897693047.974731,2649592852.16859,92827570.5432283,4012825831.21491
-2022-02-25,2347908627.03195,6088954264.64337,2071308553.66297,11202301030.282
-2022-02-24,5999057860.36481,9286139266.19335,1824772931.84852,15116075447.2569
-2022-02-23,1028942021.47663,3819523650.36269,714049407.047257,6618646836.43473
-2022-02-22,1007152423.96478,6232871041.75661,987681840.543408,6587153662.44109
-2022-02-21,5799628217.33986,4834181499.87164,162602623.897236,8529056960.74527
-2022-02-20,1851868626.62865,2708079745.82876,186223128.017507,4581071768.57085
-2022-02-19,1213472147.4464,2309959713.19159,403355926.396557,3541931043.03986
-2022-02-18,1059384693.82179,5281039306.28912,1926050019.87344,6551727024.51967
-2022-02-17,1585283385.65774,4792696256.97161,918925130.158167,7874297385.62819
-2022-02-16,1289530609.20884,4506257642.77722,677032719.849259,5926819598.9408
-2022-02-15,1336363500.05729,4604377014.45188,991308429.223694,6525512252.3959
-2022-02-14,907690378.496442,4794608198.58783,361544535.739274,5692921839.47896
-2022-02-13,262367586.625162,2005443204.71265,23709153.6299159,2818628598.51361
-2022-02-12,839816606.417976,2789001049.025,697360867.570067,4298111633.74082
-2022-02-11,1730338300.77367,5339998860.46147,1755337443.63247,8428830077.68777
-2022-02-10,2056134933.66019,5571772730.40293,906125349.334113,8279997790.66682
-2022-02-09,811964733.303901,5316485660.37998,1400794834.39801,6696892518.38427
-2022-02-08,1324708356.40283,5569192125.99831,1845163403.58322,6520027585.5525
-2022-02-07,1442340545.8801,5814387507.20965,933171978.880003,8819268267.77265
-2022-02-06,775439669.294986,2035891840.33818,1688421536.87848,3578435445.37817
-2022-02-05,1109348869.92294,3201417644.68224,401404392.717797,5408170588.14839
-2022-02-04,874151128.976837,4299253599.72676,1080538633.41425,7007744584.87233
-2022-02-03,1077422699.17617,4334707884.03263,1470279437.24283,8029864416.1599
-2022-02-02,1911343294.54559,3509714999.79701,1117247493.16284,7260424317.7277
-2022-02-01,3311589265.14221,3507072438.75676,1836929542.58139,7756567339.42388
-2022-01-31,1223427509.49714,2461736879.92775,384262211.82383,3844603921.04435
-2022-01-30,1366175835.43257,3074019513.32745,218410399.086163,4221211356.74585
-2022-01-29,1601586119.87427,5250024145.23691,276910753.428953,6509061520.28036
-2022-01-28,4233083100.06128,11886069414.9858,2007045931.3014,15454033014.6702
-2022-01-27,3342705611.12887,8981581734.90539,1172791257.19952,11977455874.7442
-2022-01-26,2008843744.8935,6990838615.41941,1273280609.05598,11374228146.6445
-2022-01-25,2420251285.57853,6614269725.38099,705822107.172759,9334508090.23838
-2022-01-24,4124686672.31619,9373966317.14864,2362639166.00378,13855733788.0132
-2022-01-23,1184062707.98453,4760584574.9774,1263713468.48308,6522726897.20582
-2022-01-22,8082698021.01535,16379170734.4037,1130659149.82741,15937761228.191
-2022-01-21,6197204719.46752,8636070785.96914,1647618578.42518,18170843347.6328
-2022-01-20,1647072461.2352,6020502522.49607,1084544689.05451,8227730004.92812
-2022-01-19,1252365335.38158,5608842172.14709,775783847.153321,6821787944.99068
-2022-01-18,826247471.677817,5485515094.84823,577542789.832961,7231057952.5223
-2022-01-17,1388748418.05264,4524768232.95435,1160424731.84981,4676597476.70682
-2022-01-16,824511068.081144,2775300900.42247,82265161.1975697,3414934957.10682
-2022-01-15,976106787.906216,2885300002.03772,469651568.153699,3294998384.07307
-2022-01-14,2424339381.77256,4906848810.70173,684634026.535567,5684306678.01546
-2022-01-13,639453195.689038,4332752341.76715,322555202.315328,5842110670.42403
-2022-01-12,892045568.414802,6167630869.3242,487322457.999294,6697319755.80447
-2022-01-11,1056676048.61738,5620376772.21142,236192325.892109,5408054335.66305
-2022-01-10,1834782733.54601,5695817664.70711,384602589.492454,7937149173.9772
-2022-01-09,623569807.444202,3004179652.12067,780729905.900621,4477297398.5248
-2022-01-08,1374379394.75475,3620017259.08317,521441316.196113,5718286997.89884
-2022-01-07,2305795865.85812,10666594283.9532,940251247.150867,9639955144.04818
-2022-01-06,2088020555.25947,7870613173.07686,758308795.965044,8631037899.17863
-2022-01-05,1552440578.25139,7388018874.63421,1786789113.3403,8235313252.62371
-2022-01-04,1071335781.90278,5816327965.77174,1706203147.22099,6615407475.64949
-2022-01-03,711335694.380754,4732588106.32982,483094851.851051,4843149507.24098
-2022-01-02,1693101468.83744,3235590269.16563,306161156.092777,3118169693.43783
-2022-01-01,2064625236.46146,3827393327.63698,271114736.677353,8499235253.95334
-2021-12-31,2622829038.7964,5410208847.54358,1374776972.00226,8380671206.93344
-2021-12-30,7643748261.90107,7911540571.63773,733247893.887632,5970964801.78717
-2021-12-29,14248808194.2524,8744923096.38935,1706271184.72741,7180347377.67822
-2021-12-28,18591133538.0301,7084805627.05361,972658720.540426,7069697323.1318
-2021-12-27,8282922998.50193,5469192782.89576,628461036.314241,5426145704.99443
-2021-12-26,8562255017.5826,4163503232.68208,299992221.835625,3505548308.97337
-2021-12-25,2486520652.18038,4024461887.1005,934539616.792877,4766988315.01832
-2021-12-24,6499614904.42077,7977028672.22039,744316628.545004,7665671167.35802
-2021-12-23,21240810158.2149,9534402786.85765,622573783.400751,7954372446.29784
-2021-12-22,18673391781.0352,6772027649.09396,1066936750.87296,8335101541.9538
-2021-12-21,16284404238.6331,6017050132.55236,958361802.12612,8225286209.86266
-2021-12-20,11525822166.4095,6753882788.74133,1235247443.088,7103917209.76178
-2021-12-19,16016728315.4321,3304128497.35365,1545197938.52241,4885633599.13049
-2021-12-18,13943523692.6574,4092094462.36238,162144272.819658,6027710197.97488
-2021-12-17,24561106271.1019,5518157353.52649,1945816076.94263,8116695011.69308
-2021-12-16,16691550151.8463,7257937769.69625,1131333407.16399,8104676150.82448
-2021-12-15,24127435008.5916,7078678718.41478,920537311.018007,9612938808.00617
-2021-12-14,8463753394.23345,6161815063.69662,926023682.983387,7759529398.38571
-2021-12-13,39108110080.5329,7148006122.69172,643190234.129226,8944891636.47055
-2021-12-12,3580957879.84041,3225588359.30744,481912031.902114,4275827864.66957
-2021-12-11,11220578573.5706,3588241205.16729,407689875.840604,7079935813.66577
-2021-12-10,24489844038.5915,10375573332.5131,1562587179.53559,9569320030.73991
-2021-12-09,11192817341.0104,10889505223.4856,857748679.076964,8974724851.83023
-2021-12-08,9140631115.79411,6474345880.43993,1367384252.66395,7130719024.53687
-2021-12-07,6500826337.94671,7870847845.3267,1627549089.91082,7541939545.64719
-2021-12-06,9855565078.31874,11569275689.2187,4001062346.26661,12178867527.7093
-2021-12-05,1561510739.45309,6423204229.94424,1007616735.57657,9783651100.19811
-2021-12-04,5721891704.2736,13428977763.8095,1567846736.7747,14853780842.0171
-2021-12-03,1663363404.72675,8253509089.53377,1869267773.73425,8817139730.21949
-2021-12-02,1463618860.75532,8952853200.74415,1165556346.46115,7517328272.16139
-2021-12-01,1611312733.42124,9245033427.48347,1217192494.79788,7710214734.49977
-2021-11-30,1428631501.57531,10073059480.9198,2978951089.95691,9954105983.76776
-2021-11-29,1084722279.15998,5761966664.57151,1036908285.42466,6810703040.99944
-2021-11-28,3503921471.10068,4195097275.41338,646153283.486517,5097268613.43394
-2021-11-27,940030907.018831,4137936304.87196,528524535.172914,5224003624.83418
-2021-11-26,3592130921.95384,8571185936.05124,1359389002.83161,10885406626.0251
-2021-11-25,1437696045.95757,7060085922.82059,640264407.182259,6510954226.67345
-2021-11-24,1230660811.73408,7380848994.07616,834443908.062377,9200089800.04704
-2021-11-23,1587039110.12495,6590774731.01438,2518960125.8051,7609750724.0803
-2021-11-22,2049400759.41127,9000164529.96667,1291957234.60057,9197973533.78178
-2021-11-21,1722603765.41912,5221519001.95317,2090876141.5552,4981953674.7722
-2021-11-20,4597440686.02264,3830214914.21817,633998054.667352,6860092261.67561
-2021-11-19,1793898819.8447,6982470462.38052,2499334671.28648,9428338154.05625
-2021-11-18,3463930296.37064,8386037060.67099,1347638580.12242,12040452605.3755
-2021-11-17,3076376592.50062,8806606105.46844,2047216523.84092,8130648388.90892
-2021-11-16,2773695527.86625,10136333628.5685,1138655550.07759,11706107362.7211
-2021-11-15,2606637391.78781,7251571700.74001,871500008.174801,7699148510.51636
-2021-11-14,1485807386.61687,3465562789.33849,440362584.954425,4219247067.5226
-2021-11-13,1077166383.57652,4449203447.36717,736720811.357436,5412203417.90204
-2021-11-12,1963782055.33326,8420256805.96551,1699667427.99891,10182939449.7088
-2021-11-11,2023869262.34353,6277913935.10233,1299221355.99193,7823529204.68095
-2021-11-10,2834349277.8481,8482920265.37794,1636144111.2293,10490910506.1739
-2021-11-09,1917677080.38991,15099704265.4807,2378151863.02354,7912338034.98751
-2021-11-08,2615981811.52202,10332275281.7979,2560379855.79395,8676333965.07962
-2021-11-07,2104281402.85984,4383937069.79282,651752027.925388,4031717259.183
-2021-11-06,934501906.722915,4716982608.34576,1679463414.97037,4514573773.51104
-2021-11-05,2911330595.64593,8482693181.0652,615486490.937985,6281098836.3795
-2021-11-04,3677797110.61158,10811222147.8808,1927959219.41668,8319116556.08652
-2021-11-03,2793773704.1579,6969928518.96325,620225977.326198,7305802415.52228
-2021-11-02,1665216986.11274,7251552587.88829,3116868666.31115,8457690652.16107
-2021-11-01,1600374343.51066,7644717632.73768,2399518968.27762,7414535804.23788
-2021-10-31,2230442658.77027,4891364031.14979,1252172724.2381,4683665348.28523
-2021-10-30,2794305899.31901,5607149320.88696,1236433111.25193,8944460647.70995
-2021-10-29,2970563557.53894,11827080496.054,2386140622.24291,13745650551.4684
-2021-10-28,5521142497.08641,9520143678.00076,1510752597.82019,9978347079.32533
-2021-10-27,5266890661.72085,10060040846.779,1373816767.21362,8625958618.11682
-2021-10-26,9100405632.58685,7606670936.8543,794004828.241502,5964289628.08707
-2021-10-25,1450537764.27327,6849431181.41415,1079865850.93635,7118940353.92225
-2021-10-24,778075239.980223,4013503783.44765,489366688.111539,3600061587.71532
-2021-10-23,2125555706.7039,3648706633.56919,217537125.172155,3919571175.04865
-2021-10-22,1494015606.34848,7888448520.73596,1093398632.96643,6904258727.62909
-2021-10-21,2959274404.2811,9548609500.01974,2193441838.9735,10920828389.3929
-2021-10-20,2002331445.05039,8621208695.92862,1665151400.27,7373918627.36503
-2021-10-19,1230409584.62971,6500862218.64478,1033015876.52302,7012580039.51362
-2021-10-18,1053055474.42237,6459877023.35071,2425786816.87573,9204128238.92776
-2021-10-17,743916837.31409,3048853114.1994,367599171.987934,3345996590.07026
-2021-10-16,1528520539.38665,5416818362.30991,473684927.937401,5264783228.6909
-2021-10-15,2782434982.14082,8781111937.16252,1450989244.74147,8155437910.55764
-2021-10-14,1902785038.88365,7199943905.35057,1432110803.32222,6392281933.80967
-2021-10-13,3140575937.46246,6636869662.80349,1277957670.43674,9504140955.00377
-2021-10-12,1527948326.35463,7041191684.60693,1087603736.58001,6683962526.17029
-2021-10-11,1109324674.30092,7270408904.82258,630260275.089657,5485904032.51103
-2021-10-10,703630210.062448,3361025005.21128,840609155.628083,3763007704.70741
-2021-10-09,1010019493.49153,4425303048.26771,157184258.88934,3352140626.61961
-2021-10-08,1643478546.33012,7344364312.56255,928003412.166837,6835908497.96258
-2021-10-07,1212093312.87467,8262929332.03152,1372882007.81141,7753769000.19337
-2021-10-06,2572448977.21456,5769574903.40288,1756401866.02937,7125205968.22143
-2021-10-05,1076830825.469,6246223030.24547,457665210.881204,6315324576.60224
-2021-10-04,1242268857.41582,5362121766.16688,558101086.17893,6926358401.6015
-2021-10-03,729259960.646573,3165423645.16434,767286050.765993,4372474470.61927
-2021-10-02,629556529.21861,3918711912.65363,520387577.907148,4466524090.53417
-2021-10-01,1210244217.04561,6484480565.73397,864125800.403659,6735760939.54032
-2021-09-30,5706317953.62322,7375893887.37362,3250975607.69568,10100977983.2464
-2021-09-29,1027943328.06461,5445203741.95125,2323851818.38623,6810925376.90076
-2021-09-28,1029742582.93034,5692138019.75087,716634241.323011,7671294937.14746
-2021-09-27,2349873545.63009,7104154737.50892,1608826566.61765,11592044863.5462
-2021-09-26,848743779.969482,6470410200.31705,610171686.678789,5852497767.89491
-2021-09-25,671559910.626824,4175729554.3068,713389408.567562,4637320304.1739
-2021-09-24,1377105421.77932,8825623131.14134,330731975.894491,8096157269.42887
-2021-09-23,718211544.688131,7903242996.30975,75778627.4059893,5708069825.43339
-2021-09-22,2590637432.4516,6094739626.47435,357334013.382926,7308617178.41108
-2021-09-21,1608698838.76512,6818595170.70937,417353167.681837,9178784688.16273
-2021-09-20,3149102452.85511,8668458276.18677,1511746533.58857,9586792345.11209
-2021-09-19,437831322.459047,3326738020.77576,264147920.358027,2831626989.27651
-2021-09-18,566040259.219058,3443086180.80748,461642074.114907,2796823727.59429
-2021-09-17,754588909.578278,6385298616.5235,136968304.6908,5227252074.27969
-2021-09-16,894372962.377979,6322050081.59012,23717585.6987953,6575652568.63873
-2021-09-15,632157338.317045,5173275218.03389,1033140534.64289,4228016000.22972
-2021-09-14,726318413.947188,5276376755.07229,1290426369.91627,6916415314.96191
-2021-09-13,743837934.677886,6224826706.96919,1318902678.08474,6601229686.09593
-2021-09-12,478972957.219227,3358647640.50286,390509413.239199,3884262693.77366
-2021-09-11,1325623391.48124,3726783462.05806,179529074.362325,3285864080.94258
-2021-09-10,716107352.248007,6260178349.91933,1221610839.01252,7972443453.0617
-2021-09-09,583812050.046899,7521455561.41027,1379261113.59202,6217199277.33506
-2021-09-08,1302855587.17308,9568663905.88809,2393469031.36202,9710436592.54264
-2021-09-07,2032085702.2778,10494389324.3566,1860002163.99685,11864719305.4386
-2021-09-06,1179198090.10214,5896212366.45875,458518797.613576,5724705195.46833
-2021-09-05,686071883.792136,4038492919.87138,559840464.952254,3273141855.76778
-2021-09-04,733347985.70466,4025819350.65679,374257049.892911,3408125248.37688
-2021-09-03,1362280688.8959,8029815500.36917,609751787.036833,8773754975.82835
-2021-09-02,3538675125.24583,8678733013.211,777962764.994889,8747934430.01378
-2021-09-01,1236584779.41435,7503643157.30447,1659386525.31887,6715161274.40892
-2021-08-31,1017858218.93667,7538143110.8682,728591976.499734,7697894190.4378
-2021-08-30,765338780.608937,5933309201.63319,599841160.475655,5724430431.31379
-2021-08-29,611169247.125728,3860885141.67967,456912781.588571,3367708747.52647
-2021-08-28,495114875.594445,3286135108.17699,377744592.830853,2984682719.12305
-2021-08-27,824901884.96498,5847594531.22715,924272614.95901,5087933763.39915
-2021-08-26,823586099.28412,5954554947.53225,642438507.192619,5756930651.55469
-2021-08-25,854797951.410304,7716993940.93909,892580493.257672,6175542517.42457
-2021-08-24,1552694242.29095,17305406432.6781,1004260573.48498,5819173236.64359
-2021-08-23,1565522375.43873,8443029796.37711,896258757.543633,6261398424.49783
-2021-08-22,990632831.780256,4275020534.97821,1086987751.17172,4945132742.15307
-2021-08-21,881488333.540672,4728255594.31935,743212166.712212,4184626325.99146
-2021-08-20,1088545951.23406,9050235060.33999,1524595323.48083,8158741576.82278
-2021-08-19,1114545175.4354,6927626126.85137,1227978159.31751,7230194897.66985
-2021-08-18,1082349671.76621,7160580061.92269,1173295567.08682,7486140890.07537
-2021-08-17,1023471172.63891,7431312143.83049,1119770655.69584,6586201233.17791
-2021-08-16,1328228373.30465,8705865328.23661,1214340944.38776,5479094518.94275
-2021-08-15,644556567.537538,3723529124.9703,480410052.348448,3545412121.46008
-2021-08-14,932887178.866043,4971397959.52991,600244694.100314,3761391742.23466
-2021-08-13,797494220.228547,6977498193.14579,353044425.280766,6060075961.9396
-2021-08-12,2763145094.57072,6778162056.08898,1018843640.85338,6320929214.19146
-2021-08-11,909238114.030849,8053934015.48831,930543988.0234,5939554026.0355
-2021-08-10,1668910364.03694,6603829367.56996,782442216.36491,6461699590.72003
-2021-08-09,1764379331.3446,7845622909.45938,1644114190.99532,8399363738.12868
-2021-08-08,1263187090.10765,4413759585.02443,1214048214.50088,4668274159.09736
-2021-08-07,1164985171.25395,5421194390.46475,612886405.996758,6275685086.53528
-2021-08-06,968874077.259057,4130200528.07798,777427124.22461,4676096048.85322
-2021-08-05,1087579356.42449,7001338270.98389,323226276.668267,5004811972.99232
-2021-08-04,1037405886.23596,4027180664.27661,191035592.448372,4780825077.55706
-2021-08-03,1798531730.99366,4583398088.23083,343003105.541401,4954841639.52824
-2021-08-02,942462501.715839,5603541908.61822,832681357.487549,5441463568.43664
-2021-08-01,1161042390.82975,4723626836.09067,373405997.953738,4535576190.02763
-2021-07-31,2239778169.0371,4527630458.71187,455571492.75234,4148312204.53798
-2021-07-30,1043621937.71512,6065261719.21522,1018174696.09966,5538652504.01732
-2021-07-29,4810906902.93065,6153221592.19366,373223873.6529,5063777958.00561
-2021-07-28,3457924457.92027,6954277487.37716,962773397.449272,6478417305.13673
-2021-07-27,1171778056.7112,6075291403.80325,1943070515.1677,8525124964.54734
-2021-07-26,1658159277.81795,9778875382.49198,2091732428.04674,10496188082.6184
-2021-07-25,790704234.703682,3322120434.17589,738536674.910923,3854248603.46303
-2021-07-24,1675641179.23909,3959032296.8012,1417738490.88122,4277610256.32168
-2021-07-23,982354211.139159,4222423637.9647,917877891.53428,5407255202.86856
-2021-07-22,990841388.622983,5301567451.3339,682232056.296265,4834022015.91307
-2021-07-21,1152582047.21232,6039581542.38708,962431905.799981,7354880746.14719
-2021-07-20,2268655101.00458,5700012271.17896,719301322.522296,8052542362.59387
-2021-07-19,1043628836.71783,5305903478.94944,1433825381.14395,6679505895.80927
-2021-07-18,666623030.573861,2969617990.39194,288890541.63558,3650202389.71545
-2021-07-17,633412640.873535,3366543036.73154,329852372.604561,3969113451.89306
-2021-07-16,1714331829.42058,4317314807.13061,712836695.488135,7057475006.36775
-2021-07-15,1921174084.26366,5746977816.90301,6659327419.90642,9328023281.78495
-2021-07-14,1162383505.2457,5903857793.20293,1818636720.01345,6180969774.43362
-2021-07-13,1412483466.32572,7682803752.37025,1656290552.487,6851559098.85031
-2021-07-12,2505238268.88524,7173677956.57179,1010255598.82269,6830379738.44961
-2021-07-11,864638997.121625,2893216660.3361,137336383.427566,2666904092.14031
-2021-07-10,992590574.239854,3137451374.67079,222609176.221038,4626634392.61712
-2021-07-09,875170926.176999,5649094289.93897,727832355.940957,6818217893.70048
-2021-07-08,806539918.97947,6306128255.0944,732622026.296161,6523255433.15513
-2021-07-07,1870682770.46876,7230478114.44637,995778828.772256,5007126570.08426
-2021-07-06,1940251519.60841,5858309950.51541,579177432.180925,5753856891.23642
-2021-07-05,3282110784.23807,5304640948.82059,268262413.727426,4999428176.15581
-2021-07-04,1683060405.73802,3437070767.88212,357289623.32432,4260206222.6127
-2021-07-03,1033098740.65951,3617781061.28514,294622223.968039,3468530382.32728
-2021-07-02,1179530671.16061,5634129735.00685,1897159769.48632,5564934848.32082
-2021-07-01,1141951453.02971,6575667406.49111,1927926907.62107,6216454373.50742
-2021-06-30,3296681250.67054,6386414634.38232,491379752.144896,7886978456.7775
-2021-06-29,4074624791.1461,7242354153.73671,744104614.528604,10236172577.3112
-2021-06-28,1154288707.36494,7462151165.1123,1471576796.58167,11596274626.9202
-2021-06-27,932936338.795849,3520559992.67485,1021246796.60176,4284902632.06328
-2021-06-26,822192238.221211,3871498633.00369,790425078.182101,4199347372.11959
-2021-06-25,988833982.486823,5969138833.52926,1214228244.39449,9651013460.38636
-2021-06-24,993311904.726968,8815035527.41997,2996697678.9206,12921934529.9128
-2021-06-23,1535477248.55816,7038400415.84733,3027628268.93806,7333753780.95973
-2021-06-22,7171188206.43349,9473188556.626,2400417293.81005,11141152893.6387
-2021-06-21,5414829196.54965,9984758670.91185,2602976255.60659,13182246521.3784
-2021-06-20,960505929.386651,4200656444.45699,1077873060.74748,3595325053.84228
-2021-06-19,1912025333.62294,3995125982.79971,489072836.687756,4497636130.63846
-2021-06-18,2661869388.91899,6635770608.76908,1105489166.48505,7131448073.72032
-2021-06-17,2591322664.02987,6624525086.44973,1022865975.71887,5892454870.05422
-2021-06-16,1339548296.56228,6324977219.32157,859335189.940647,5987372172.16211
-2021-06-15,2528058865.5923,6947020937.93104,2048107213.49027,5226500931.98259
-2021-06-14,1567897983.1705,5483062366.56714,1149347167.39405,5923615092.98621
-2021-06-13,856084403.465014,3840826307.73955,183084919.444759,3958850698.111
-2021-06-12,1601971165.60043,3943120363.05858,273752107.966708,3971594143.44493
-2021-06-11,2519687188.44559,5917129926.77282,1210119618.82308,6131890572.86736
-2021-06-10,1172309952.21766,6334851162.02655,887677130.68624,4976051506.94376
-2021-06-09,2287687251.31258,6938993562.10332,2188266037.09509,7905712097.69297
-2021-06-08,1879067984.7413,7608200043.59342,1253022491.55276,7999984225.75543
-2021-06-07,1764604918.60303,7526529719.35394,1022792325.74212,6736928236.21726
-2021-06-06,628146790.20218,2695871326.31713,478348607.882189,2311052068.38185
-2021-06-05,1179410522.54275,4410123904.3361,252186190.770584,4141205826.16684
-2021-06-04,1516099318.47947,6725801322.76363,1799731248.37164,6704990008.40008
-2021-06-03,2052466545.99295,6706302424.61085,1175998855.36071,7654315480.58664
-2021-06-02,1679987480.70967,6093515940.16683,1395338519.34517,4702363620.37092
-2021-06-01,1998318243.21999,8504068380.7913,1365922701.29098,5405831892.00522
-2021-05-31,1107674236.88761,13990603553.9982,1333706351.66415,6101649785.97808
-2021-05-30,1370955639.94268,6361149067.68456,965699448.579417,9998658003.9821
-2021-05-29,2885147066.28035,6713908551.65196,1894194183.05817,11669177255.4494
-2021-05-28,1795104222.00813,7294135021.46097,1399847693.27668,8137749936.89341
-2021-05-27,2155302332.53429,8316380155.97756,3489259417.72748,9939637358.84602
-2021-05-26,4137089831.4904,10067444167.6387,1892420773.34177,9956003448.65535
-2021-05-25,3199630225.20924,9644122881.61618,1968618189.53696,9943075166.91402
-2021-05-24,3260184925.11593,10413809858.5463,3257743563.82756,12826744494.5096
-2021-05-23,7764187389.46212,12040410806.4439,1691874987.51982,16573929726.1532
-2021-05-22,1991443507.82015,7748975486.96312,1385871408.20368,11853561037.9348
-2021-05-21,3114880285.12248,12343307225.2772,4390470472.99914,16510513113.1034
-2021-05-20,7962180763.20853,14923584847.9367,4387168877.17955,17465194299.7751
-2021-05-19,10614876919.5996,22630770653.885,3954404722.44727,18820986596.6956
-2021-05-18,1803134921.50585,9398484140.87483,2177306735.59874,8059390609.1599
-2021-05-17,3225095685.43891,14266620778.9796,2647354789.66393,9388345339.33957
-2021-05-16,4930141570.85947,6828034194.66386,642655059.834928,6073166708.2871
-2021-05-15,1599062176.63598,6827920213.42543,735253030.030175,5830190207.11734
-2021-05-14,4084725573.79473,12377489395.5046,3068589133.59472,10404006285.9516
-2021-05-13,4441100455.49558,12845154345.7851,3050533194.43955,11442117884.9078
-2021-05-12,2478710464.68617,9716392089.69627,1783127347.47758,9292311852.27285
-2021-05-11,994012634.945119,9741912530.73543,2709956000.32779,6012371719.07536
-2021-05-10,2085691805.86004,13102947242.1916,2694594330.44349,6224043106.70857
-2021-05-09,2069750179.67996,6414102245.84244,3498823957.12624,4345076629.14035
-2021-05-08,1614218589.81453,7393688392.58686,1110580807.49392,4321971960.06161
-2021-05-07,2797664244.70093,8115895146.96804,2026178746.63249,5701072061.83816
-2021-05-06,3346669850.63558,8775350902.07045,1589380151.94912,7635345329.6438
-2021-05-05,3169592092.99078,8764071970.5569,2534972093.9961,9028893645.3016
-2021-05-04,2501624017.31125,8208851472.48297,2718987433.37931,6772585804.05686
-2021-05-03,3159316988.10425,7530004300.67268,2250883334.92514,8767786999.56267
-2021-05-02,1007276797.14004,3698948365.42004,1419206038.43439,3114985614.43086
-2021-05-01,1965061091.95335,4766604957.14309,1579798134.1954,4388262800.35498
-2021-04-30,1305370271.54616,7183781012.80162,2370572418.80866,5533778971.42965
-2021-04-29,1837920768.76303,7318155651.9557,1505650813.48191,5500392219.36782
-2021-04-28,2211092653.25049,7688088079.69574,2905441518.22442,4953126269.98837
-2021-04-27,1818184287.4073,7557853448.87339,147141592.852612,6247349585.20298
-2021-04-26,2743801236.19044,8976216695.7478,,7193348999.43803
-2021-04-25,1527686128.92083,3770445200.14132,,3100132047.42323
-2021-04-24,980220609.45577,4332506373.02716,,3752626337.04262
-2021-04-23,2666221511.02361,11607731157.8919,,7347227366.70476
-2021-04-22,1917864813.0739,7724107626.05337,,4421527536.31378
-2021-04-21,1973701041.02028,7479532286.4197,,6230858186.70419
-2021-04-20,1249752558.43228,7849209994.79876,,4962981789.70983
-2021-04-19,3505998908.44838,9390914584.66997,,8607404510.12022
-2021-04-18,2129685073.35716,9193836188.16743,,9439230020.34039
-2021-04-17,1514786085.07025,6005250973.52666,,3882201840.98336
-2021-04-16,1531203578.28153,10075167241.8419,,6582201662.08612
-2021-04-15,1754655673.3171,5695837870.3385,,3638083174.03301
-2021-04-14,1417468452.66829,8394391860.24847,,6487127510.08241
-2021-04-13,5620855703.59447,8322838732.64675,,6268045546.35926
-2021-04-12,1098001600.84633,6886336759.64591,,4768522335.61767
-2021-04-11,1278885763.49352,3295045221.51513,,2161220193.01508
-2021-04-10,939335073.947175,4522119664.29918,,2807923531.81344
-2021-04-09,763049692.340572,6931673268.21755,,3946680267.25443
-2021-04-08,1215900405.91603,6280009374.67176,,4321295549.12982
-2021-04-07,899803193.381729,9061687915.30815,,4808120867.77911
-2021-04-06,1561648552.85064,6098162794.55576,,4344370043.38028
-2021-04-05,2198646475.42627,4903562290.00291,,4067039569.81775
-2021-04-04,1737246215.30337,3431524877.38991,,2862846586.63757
-2021-04-03,1157082165.79789,4802862334.7296,,4686305376.06353
-2021-04-02,2353349516.69487,7014187056.07479,,4581403402.90425
-2021-04-01,1153225504.27775,7010168636.24701,,3883306992.92758
-2021-03-31,711142200.314837,6168912945.45178,,5014361588.62522
-2021-03-30,630087496.286026,5702210786.55746,,3606781038.74692
-2021-03-29,1121644351.08366,7262350071.519,,5656399121.25355
-2021-03-28,926006958.144035,3257850991.1779,,2606081184.43639
-2021-03-27,617356577.326792,3715995367.26044,,3900135024.07147
-2021-03-26,710925877.426646,5996235041.93547,,4163446719.63514
-2021-03-25,735305241.42262,6359644737.10426,,3738594045.78748
-2021-03-24,898697415.955741,6180280856.44364,,4138115722.44885
-2021-03-23,860534989.335731,5755241261.68204,,4689154350.76077
-2021-03-22,986745103.735344,5937546959.04865,,4012362870.53869
-2021-03-21,767634104.762926,4700478695.45039,,3077081278.40492
-2021-03-20,639791569.506987,5382975362.27074,,3070878686.28528
-2021-03-19,585410262.844447,5673080313.3023,,4419198498.44749
-2021-03-18,488212501.983629,6115506525.92924,,2476669555.48764
-2021-03-17,875159387.101089,6164292496.14711,,3422565452.76863
-2021-03-16,1123511781.51427,7366993114.50036,,4453863179.63914
-2021-03-15,1032156533.44252,8692654710.49887,,3656213692.38365
-2021-03-14,470272035.000021,4507501119.01769,,2228189863.25127
-2021-03-13,784358707.106473,4545463266.72041,,3683093701.64649
-2021-03-12,1087026497.24642,9271609257.97942,,5496995624.61376
-2021-03-11,948576578.59154,6325920806.50754,,2759193089.26543
-2021-03-10,749415218.782931,7201320373.34958,,4130087254.80774
-2021-03-09,1311740996.80603,8156415823.88339,,3950728962.46415
-2021-03-08,1037483449.87509,8823044514.44297,,5328191594.80659
-2021-03-07,2962805983.52249,6384724551.9317,,4490572121.20127
-2021-03-06,1132688563.18119,4276321241.92839,,2506095440.19493
-2021-03-05,1800188080.73072,5875259697.7049,,4428398658.19038
-2021-03-04,1769983297.73963,5414006195.8318,,3169059664.74763
-2021-03-03,1800193877.21902,5508244355.78261,,3474980018.66522
-2021-03-02,2116506353.61115,6192688755.7908,,3602186901.91906
-2021-03-01,1561707786.50212,6090201187.43751,,4408160747.05617
-2021-02-28,2692916045.61964,4431665221.8653,,3622959175.25561
-2021-02-27,827964098.35054,3349725279.99103,,2283828016.36308
-2021-02-26,1226498126.30676,6035343651.51297,,4513814153.21859
-2021-02-25,1071613446.30321,5858229905.51002,,4745064744.5727
-2021-02-24,1339152288.7562,7271641585.236,,5084199290.79487
-2021-02-23,3118618932.50271,9384094283.68205,,7027965550.29764
-2021-02-22,1423944697.2714,8660422831.08583,,5817133845.68988
-2021-02-21,566502200.111292,4430623094.61135,,2766181300.87434
-2021-02-20,1012434824.24227,5908150293.97118,,3770228022.09259
-2021-02-19,811381403.683768,6233436459.23738,,4816557421.1096
-2021-02-18,924078017.357096,6667091424.46595,,4118753664.06605
-2021-02-17,951245674.560827,6181809537.47404,,4491394866.5015
-2021-02-16,2557352536.98972,4629303023.23125,,3310804608.64887
-2021-02-15,1301707184.78318,5635607778.74594,,3124838209.62022
-2021-02-14,693539940.650414,3613350629.13917,,3001685202.0536
-2021-02-13,661842755.231354,3511324485.63083,,2951844400.77749
-2021-02-12,797540590.607597,4660404291.81775,,3262243273.32491
-2021-02-11,1326962487.09259,4376714976.83874,,2991881318.05851
-2021-02-10,847452950.449876,5958509367.21316,,3504875882.40867
-2021-02-09,1085338329.26855,8487391120.13588,,3658059497.16153
-2021-02-08,1599658888.28279,9431417917.35698,,5530574241.67227
-2021-02-07,987302929.826245,5772998732.01759,,2344871236.19642
-2021-02-06,722602551.869828,4731923502.52318,,2457095583.66651
-2021-02-05,776946127.834867,6752041769.26202,,3459678570.46459
-2021-02-04,41258994977.2036,24542626688.6431,,9374969292.16646
-2021-02-03,667762204.555955,15020058601.7389,,3766491233.30693
-2021-02-02,924645236.715338,6695846290.00727,,3246885519.6986
-2021-02-01,810093155.585882,5687714955.04519,,2532588808.06952
-2021-01-31,510829250.932742,3187734223.76653,,1896300973.60206
-2021-01-30,596461499.078267,4293982835.76321,,1585916294.49388
-2021-01-29,840070434.093391,8327796287.49599,,4415069094.1488
-2021-01-28,791626159.377342,6630041014.17317,,3344804118.68128
-2021-01-27,950122693.353738,5855521459.22693,,2439927526.60015
-2021-01-26,745277304.361538,6168744810.43635,,3220144177.49798
-2021-01-25,1037864062.33166,6104392450.59333,,3200631660.8015
-2021-01-24,1027973364.75875,3147811628.64846,,1601059158.5716
-2021-01-23,1483325426.35704,3484995779.84011,,1971111611.11381
-2021-01-22,1447398535.81432,6358015057.96711,,4727349708.79972
-2021-01-21,1212496681.15753,6279463936.26862,,3070596780.52712
-2021-01-20,810189737.207242,6135465714.28278,,2429593080.1965
-2021-01-19,1290126506.95297,7023296258.42498,,4212142477.50374
-2021-01-18,767267128.519842,3963652552.40571,,2024648435.21128
-2021-01-17,659870351.769219,3008689777.32626,,1826114694.88797
-2021-01-16,1029540274.68807,3618037540.65955,,2545111083.37576
-2021-01-15,2732534007.88839,5174192935.08796,,3836148844.51673
-2021-01-14,1569474903.54473,5748296308.35916,,3403004393.45291
-2021-01-13,977430938.827424,5820257116.71511,,2354458609.80916
-2021-01-12,753089899.230148,7331234612.73083,,3325519078.95743
-2021-01-11,2298089067.88397,8339959929.7348,,4248306574.09096
-2021-01-10,989591589.261725,4213398762.04635,,2004157862.19484
-2021-01-09,966463973.262987,4631780502.36488,,2083020971.35999
-2021-01-08,1312703788.33345,6591163461.66744,,3171522624.06782
-2021-01-07,1245046611.49436,6446845268.99275,,3883101240.17222
-2021-01-06,880427745.430905,7712978308.40386,,3295043564.71668
-2021-01-05,1115034937.50091,5710585628.42311,,2610135502.62758
-2021-01-04,3699694934.60426,6750540543.78998,,4777136920.00359
-2021-01-03,1203570714.8639,4188370094.82107,,4855111018.17212
-2021-01-02,3805558726.67436,4007211938.19048,,5823012527.526
-2021-01-01,1042479116.6737,4026636246.49589,,2418773740.80778
-2020-12-31,870668852.96535,4218602528.9978,,3110524984.91659
-2020-12-30,1311849960.78334,5335038497.71469,,3869044524.88047
-2020-12-29,632767557.150043,4804083109.78419,,2261444985.51558
-2020-12-28,775658544.866177,5201396686.8769,,1840816950.44517
-2020-12-27,1238060065.38411,3205962698.72714,,1507960316.44857
-2020-12-26,786377934.578806,2784851417.47931,,977784527.790812
-2020-12-25,368454788.103106,2686199355.09055,,952781098.992152
-2020-12-24,546296465.400708,4329179770.39878,,1669642191.67183
-2020-12-23,396389493.402262,5096216126.57026,,1585470046.64584
-2020-12-22,443008804.59263,4705675035.43737,,2015247336.25406
-2020-12-21,649965305.31777,4477596273.66617,,1688310806.16749
-2020-12-20,640645201.543457,2140273542.30765,,1068574869.41567
-2020-12-19,610337025.901337,3281577416.06906,,1674911769.41303
-2020-12-18,504551238.698294,4421633616.63579,,1875123386.36486
-2020-12-17,856245320.772788,6119215208.33408,,2178328191.6904
-2020-12-16,477318295.378558,4765236675.94864,,1647267650.25127
-2020-12-15,264773164.205435,4268582891.90326,,831418353.905078
-2020-12-14,217861110.742286,3633497951.36035,,876519087.025765
-2020-12-13,314461428.671788,1858997351.10413,,854433775.492254
-2020-12-12,614711605.137357,2094602341.01012,,1611601298.73798
-2020-12-11,663063970.0785,3468583419.92039,,1688333958.67632
-2020-12-10,384899462.49436,3052186499.74927,,1000001414.19972
-2020-12-09,673344419.270527,3777627598.85765,,1323799895.47643
-2020-12-08,320007369.952759,3523200573.56726,,1053209192.39135
-2020-12-07,349616334.18765,3319771973.67909,,1257139931.04892
-2020-12-06,3709979545.96611,1680539026.88785,,604372156.850386
-2020-12-05,345896937.547094,2048495581.90324,,824138326.679016
-2020-12-04,540276887.895542,3407873301.5125,,1125897704.67026
-2020-12-03,299509970.302166,3502786706.7217,,729618811.956542
-2020-12-02,831604666.295886,3240729540.81504,,1148286161.46074
-2020-12-01,688869191.590356,5368845851.85868,,1283950988.43709
-2020-11-30,1164146515.13918,4955201556.53423,,1482974854.45992
-2020-11-29,207638436.662779,1617874699.82957,,427172936.466704
-2020-11-28,228680423.815257,2092393441.72519,,1170744062.65835
-2020-11-27,2048671188.32271,3139399134.44214,,1510598441.74162
-2020-11-26,2020177561.77245,4757974165.26781,,1841214157.24063
-2020-11-25,307219125.558753,4039068869.18363,,1121446157.23482
-2020-11-24,387994963.595225,4416581003.03494,,1254409758.21043
-2020-11-23,397478471.510123,4377646534.92785,,1451590138.5476
-2020-11-22,393246637.377971,2480186934.05574,,1687706291.7521
-2020-11-21,1096178546.41295,2336264822.63801,,1326237057.17462
-2020-11-20,517910660.977637,3579277502.26814,,1202249065.43583
-2020-11-19,453916380.833236,3189006028.66181,,1387402921.62948
-2020-11-18,1234383377.71722,4376740227.38332,,2305349259.62255
-2020-11-17,891064703.200927,4228725171.28921,,2047749326.27098
-2020-11-16,487217309.654617,3539050166.44959,,1022876371.95035
-2020-11-15,479292770.047038,1573176894.37005,,690196197.427392
-2020-11-14,785532052.1419,1988532983.67091,,970520054.230058
-2020-11-13,329677754.365385,3002113674.34052,,1096536065.8891
-2020-11-12,343462163.512953,3425187511.33957,,907584628.419881
-2020-11-11,571207478.540364,3092945968.29708,,687859565.548839
-2020-11-10,351160558.646748,2949273582.95918,,853605483.080345
-2020-11-09,771147337.564133,3269190794.57706,,1723327050.50299
-2020-11-08,188998821.673,1491026022.3381,,437461530.788328
-2020-11-07,402370607.289834,2371253658.7184,,1136226504.11589
-2020-11-06,326637194.768342,3788297008.50671,,1405219886.07931
-2020-11-05,285173376.992229,3727153432.94054,,1407122787.25238
-2020-11-04,262404299.051546,2771849064.86509,,1009895693.39793
-2020-11-03,345239382.65063,3269137207.91577,,1047243732.78894
-2020-11-02,301611935.717296,3489265404.01164,,1552491852.62803
-2020-11-01,207717854.614644,1440454459.76,,515557614.165172
-2020-10-31,149274166.468597,1594603122.85322,,692089759.617507
-2020-10-30,444328987.717467,2908430116.70648,,981827938.777707
-2020-10-29,519964605.571401,2640702595.16694,,1276319788.97598
-2020-10-28,325964228.889405,3450385299.63544,,1572090486.38236
-2020-10-27,368789435.561733,3284388085.08125,,1409367520.10096
-2020-10-26,499445299.104612,15107996235.7149,,15287417045.0623
-2020-10-25,131949104.990413,1282034496.31683,,463545544.431128
-2020-10-24,290627130.822115,1724811943.59976,,613242190.702996
-2020-10-23,641379769.725349,2699684630.18066,,1315513780.45648
-2020-10-22,1006168433.53109,3650552403.40395,,2122427376.48635
-2020-10-21,555684502.538666,3304385086.66402,,2322373493.52654
-2020-10-20,351481806.280204,3055941200.82443,,1437436820.00626
-2020-10-19,379152330.832366,2512932454.88124,,1024540559.11923
-2020-10-18,166272330.798684,1362051178.49243,,705058119.562483
-2020-10-17,312728279.173516,1471990028.07797,,539750076.396767
-2020-10-16,410059344.918814,2636096623.78846,,871997590.975817
-2020-10-15,380510270.069438,2982568325.35434,,811010568.30342
-2020-10-14,481001026.986616,2843028121.12423,,979745549.933236
-2020-10-13,777018639.913946,2761798842.07925,,1589952124.86042
-2020-10-12,322243638.563923,2859627051.65253,,785114837.078162
-2020-10-11,319567899.554755,1957865698.74129,,1108123415.43363
-2020-10-10,307059201.043354,2555016335.5198,,1332028784.94504
-2020-10-09,545814108.614545,3234860317.47072,,1207513761.59504
-2020-10-08,241140866.966612,2843763880.73768,,1323785210.51581
-2020-10-07,215243599.405168,2398587054.45531,,1039107116.04222
-2020-10-06,455270223.663482,2943232461.8433,,1029062146.20299
-2020-10-05,258389501.627029,3548586183.2136,,1028788259.03613
-2020-10-04,244855525.468771,1250991679.33592,,553331513.453946
-2020-10-03,208606813.336852,1870967856.4316,,1000824990.3445
-2020-10-02,576305989.469408,2142227865.82991,,1333094298.69841
-2020-10-01,847167569.530513,2765472078.34891,,1266464962.12958
-2020-09-30,377108596.499142,2978057402.0579,,990800001.580167
-2020-09-29,873595530.347712,3056914261.83619,,929998790.781584
-2020-09-28,379803850.121942,4464598810.13375,,1198474867.60842
-2020-09-27,295894266.872321,2357793541.68913,,1019238528.53576
-2020-09-26,527803125.157748,2058155842.29144,,1013641020.1317
-2020-09-25,496314690.682942,3475036751.33906,,1027384550.57226
-2020-09-24,745521115.646239,3133627843.15172,,1278984780.53578
-2020-09-23,1119342426.06023,3259584188.0596,,1584649184.32504
-2020-09-22,567943930.642461,3098071843.40381,,952342566.312568
-2020-09-21,1147756305.66255,3946921055.88413,,1970425196.2254
-2020-09-20,1309310402.237,2058339791.16812,,1448770512.32467
-2020-09-19,3029299920.41271,3685780930.49258,,4066377919.12023
-2020-09-18,1341958750.46226,3435209485.10451,,1942584991.07448
-2020-09-17,1433281083.33327,3822678942.90498,,2268942903.8733
-2020-09-16,1416684082.96835,3796415602.51131,,1756732154.31077
-2020-09-15,2118929806.698,6926892138.26338,,2461880800.05501
-2020-09-14,1946093750.23001,4694359583.19079,,2894193933.40278
-2020-09-13,629459940.125008,2343599483.95209,,2102184942.02176
-2020-09-12,462668097.743929,2368865564.79601,,1474134992.03144
-2020-09-11,744593490.282546,3579774035.58086,,2394051195.82996
-2020-09-10,741802325.811396,3510581538.12526,,1762248772.94788
-2020-09-09,813703514.035211,3432305733.98022,,2235669399.31079
-2020-09-08,506662778.512757,3276767350.58279,,2148226806.7801
-2020-09-07,563757545.503048,2609166361.23156,,1566885156.3592
-2020-09-06,930447530.793985,2291388704.83284,,1668761950.24283
-2020-09-05,1769105470.1317,3382666982.5141,,2759487811.17366
-2020-09-04,1039128510.35204,4440009098.03494,,1752248806.30906
-2020-09-03,1700163728.4693,3907749773.291,,1564870953.23903
-2020-09-02,1157648536.36941,3788948998.39694,,1500054001.28297
-2020-09-01,662745564.804871,4486447247.99804,,1599867432.11359
-2020-08-31,580253618.688046,3762718669.77153,,1299226874.74522
-2020-08-30,626578390.344776,1969392450.3045,,671732146.711568
-2020-08-29,655726682.675795,2149613145.56153,,926098688.868187
-2020-08-28,399455986.387323,3201262472.85182,,1975304082.83836
-2020-08-27,327428368.737264,2817509634.16352,,964307515.538082
-2020-08-26,268315436.384074,2664221925.01747,,628402913.671879
-2020-08-25,474156456.728319,2677500711.52516,,607147370.060679
-2020-08-24,658375884.264639,2483148268.39026,,756788511.34472
-2020-08-23,339799957.014253,1445446659.87684,,438776377.878567
-2020-08-22,348960146.366621,1573682196.3085,,526167454.151106
-2020-08-21,207664840.878873,2584600757.71534,,637217150.915251
-2020-08-20,520496286.020346,6345717916.56032,,901066157.552314
-2020-08-19,415900203.485214,2606200494.78569,,720962874.525117
-2020-08-18,266706999.932927,2492443532.5994,,924108630.553404
-2020-08-17,404454296.861727,2942846990.33852,,843497075.340099
-2020-08-16,298631876.86201,1485504836.81623,,481326614.890438
-2020-08-15,336449199.121245,1841012011.12232,,592856428.098334
-2020-08-14,2929056952.7406,3389700022.35966,,2528594711.94817
-2020-08-13,588784786.438833,2852584403.878,,945727325.726555
-2020-08-12,688017143.165643,2410531318.59021,,1204390925.17796
-2020-08-11,920476074.743047,2666607057.31599,,830933636.33051
-2020-08-10,981614168.837874,4301500636.92393,,907817137.97979
-2020-08-09,358596353.268948,1129461096.6886,,321148162.756777
-2020-08-08,326147144.228446,1283586133.72823,,725504168.406256
-2020-08-07,1930804951.03717,2209625566.09226,,511543208.765666
-2020-08-06,365422184.398798,2643868468.31187,,388312900.507867
-2020-08-05,482721959.566259,2190058812.8025,,460399905.883484
-2020-08-04,589612692.259331,2652134028.52933,,571474551.508398
-2020-08-03,1051475047.01564,2503262601.6459,,800365051.085053
-2020-08-02,1002777818.08408,1758844102.08878,,589248500.509271
-2020-08-01,801190398.6493,1769704199.68794,,610019734.189969
-2020-07-31,1206090089.912,2306131949.09085,,1118320847.34184
-2020-07-30,1051103549.47672,2378358086.40453,,919096971.676341
-2020-07-29,2600848006.50713,2377905681.25826,,1005291767.60632
-2020-07-28,737710591.798317,2998309655.0573,,807807871.7675
-2020-07-27,1324118826.27108,3555429454.82145,,1309205308.72654
-2020-07-26,3060289301.97933,1691251429.24247,,1430743740.72916
-2020-07-25,1832212440.26231,1594714128.00986,,1167945851.81427
-2020-07-24,1039339893.9092,2365752503.82417,,952449142.158164
-2020-07-23,859681704.980994,2554795193.51562,,864882828.481764
-2020-07-22,1201325560.31342,2539192828.92315,,593977823.522511
-2020-07-21,543841271.35755,2161575186.94409,,674150057.963637
-2020-07-20,1136110834.46591,2481951927.16537,,782812546.096693
-2020-07-19,1085862331.55801,1173422003.49312,,880688519.559681
-2020-07-18,504526039.874633,1087603807.91272,,397935932.515481
-2020-07-17,280727473.155821,1777142978.04874,,371711438.778548
-2020-07-16,317678769.732066,1943294546.21561,,301549084.931817
-2020-07-15,198578881.429666,1920373273.67516,,325231543.855523
-2020-07-14,309870877.517936,2065438913.84144,,259959566.382675
-2020-07-13,174236708.459279,2044075682.49593,,204863001.902738
-2020-07-12,347452973.441247,1096004481.08873,,122167274.120207
-2020-07-11,400803354.724952,995736426.92085,,131608683.914069
-2020-07-10,268782761.637907,1698305364.33853,,303466985.486013
-2020-07-09,478660305.738267,1930239398.92993,,463881553.350342
-2020-07-08,1007993354.39396,2059498657.27854,,578432319.21357
-2020-07-07,830066509.581277,1750289030.10111,,490292997.376943
-2020-07-06,388603746.627248,2000614691.12072,,337162911.898644
-2020-07-05,258637406.240339,824902668.698209,,104864265.021507
-2020-07-04,350438439.845885,915060002.359619,,139058882.07701
-2020-07-03,621377895.157303,1614584976.84585,,516296043.117555
-2020-07-02,1475822995.99003,2031334903.18927,,853658836.123349
-2020-07-01,149408628.794773,1528957999.85455,,305497287.692205
-2020-06-30,184385133.356246,1597752424.64742,,438268555.107911
-2020-06-29,151027669.614743,3083988551.20636,,244909421.081816
-2020-06-28,156560933.714755,926783282.984805,,192974526.304037
-2020-06-27,111797223.022026,846110599.204021,,391379977.019199
-2020-06-26,56778226.4659574,1410563870.29233,,443226605.147979
-2020-06-25,171213909.649025,1482774356.76185,,242494392.696744
-2020-06-24,73380708.4534971,1909947721.31104,,323542005.754992
-2020-06-23,95052904.6756262,1913450970.10905,,334381464.298002
-2020-06-22,120167740.597209,2265511571.14187,,382634014.884123
-2020-06-21,157941188.877085,1373578865.6893,,459234118.161723
-2020-06-20,131144600.229261,1171983596.36401,,490079329.24464
-2020-06-19,227110803.946123,2207035147.98288,,686024019.482071
-2020-06-18,77757636.9476309,1987338567.88794,,358140414.897879
-2020-06-17,83619715.7227163,1776798750.43319,,399139040.672438
-2020-06-16,90876961.3044935,1844138074.5267,,250020518.737928
-2020-06-15,98336092.4098258,1693422266.54687,,473603273.16656
-2020-06-14,102070168.968083,693368537.058371,,89417655.3121603
-2020-06-13,19857950.2161893,777565158.119709,,69383673.5285428
-2020-06-12,38234892.7314093,1453962294.38682,,147585661.888336
-2020-06-11,95853116.2364415,1929452793.64916,,232724664.661915
-2020-06-10,34953740.5046151,1692766052.54051,,161651035.023086
-2020-06-09,38071537.8394386,1653898199.5357,,96160818.4320198
-2020-06-08,55704669.7669793,1610524297.61871,,127632484.517751
-2020-06-07,46968585.1684578,759743219.581454,,55754420.3525069
-2020-06-06,18697196.9677304,765188454.561608,,39279217.3735656
-2020-06-05,31340969.5323765,1414121354.15108,,157711040.238635
-2020-06-04,30976097.2300287,1519138912.56728,,109978927.577868
-2020-06-03,51464278.0705696,1438543726.02896,,140580250.756334
-2020-06-02,114634758.295448,2211029397.53199,,338737136.678718
-2020-06-01,99659329.6801661,1587389121.24091,,112604577.727763
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_dapp_stats.csv b/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_dapp_stats.csv
deleted file mode 100644
index a63ec984e018..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_dapp_stats.csv
+++ /dev/null
@@ -1,48 +0,0 @@
-timeframe,fees,n_users,volume
-2021-09-20,971128.408459335,748,7050
-2021-09-27,588703.487155636,617,4984
-2021-10-04,748750.544989823,646,4105
-2021-10-11,671126.179349037,660,4233
-2021-10-18,544587.085742359,628,3794
-2021-10-25,1047504.06142356,550,3246
-2021-11-01,851904.025967565,545,3199
-2021-11-08,1016698.39046912,514,3098
-2021-11-15,914313.524456732,584,3585
-2021-11-22,844123.222284278,511,3186
-2021-11-29,907963.495830892,520,3104
-2021-12-06,465022.877258617,565,3129
-2021-12-13,373827.035095027,497,2660
-2021-12-20,237897.984552777,433,2175
-2021-12-27,338424.386332529,460,2243
-2022-01-03,632744.124896926,548,2935
-2022-01-10,422800.375738491,472,2051
-2022-01-17,716326.950765755,743,3625
-2022-01-24,563906.915059515,584,3447
-2022-01-31,467942.882591503,481,2544
-2022-02-07,343161.100980691,549,2791
-2022-02-14,193537.186726091,459,2274
-2022-02-21,258402.924498461,538,2891
-2022-02-28,231332.920012526,613,3170
-2022-03-07,107379.360219845,656,3124
-2022-03-14,110841.945076548,589,2873
-2022-03-21,129460.539677929,617,2836
-2022-03-28,277589.960765738,643,2957
-2022-04-04,180779.014112563,623,2719
-2022-04-11,356645.21195269,608,3424
-2022-04-18,124905.774368535,444,2115
-2022-04-25,168294.545593294,408,2262
-2022-05-02,197472.132298427,583,2919
-2022-05-09,3816184.97104214,2221,20371
-2022-05-16,152821.867503225,653,4620
-2022-05-23,160341.602955583,633,5118
-2022-05-30,76570.848975358,277,1880
-2022-06-06,281859.794609131,1022,8292
-2022-06-13,949866.053896377,1538,18604
-2022-06-20,280758.206969026,694,8392
-2022-06-27,255340.861358492,630,7432
-2022-07-04,158798.730530248,562,6424
-2022-07-11,202236.12291037,523,6904
-2022-07-18,208600.885208027,596,7057
-2022-07-25,121446.872029091,556,6304
-2022-08-01,43570.523299292,430,3647
-2022-08-08,30.688926514,2,4
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_total_value_locked[0x0000000000000000000000000000000000000000-].csv b/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_total_value_locked[0x0000000000000000000000000000000000000000-].csv
deleted file mode 100644
index ba30fadc5c87..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/csv/test_shroom_model/test_get_total_value_locked[0x0000000000000000000000000000000000000000-].csv
+++ /dev/null
@@ -1 +0,0 @@
-metric_date,symbol,amount_usd
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/test_onchain_controller.py b/tests/openbb_terminal/cryptocurrency/onchain/test_onchain_controller.py
index 9ef907edeeb6..debbcaad5ebd 100644
--- a/tests/openbb_terminal/cryptocurrency/onchain/test_onchain_controller.py
+++ b/tests/openbb_terminal/cryptocurrency/onchain/test_onchain_controller.py
@@ -341,27 +341,6 @@ def test_call_func_expect_queue(expected_queue, func, queue):
[],
dict(),
),
- (
- "call_dt",
- [],
- "shroom_view.display_daily_transactions",
- [],
- dict(),
- ),
- (
- "call_ds",
- ["uniswap-v3"],
- "shroom_view.display_dapp_stats",
- [],
- dict(),
- ),
- (
- "call_tvl",
- ["0xa5407eae9ba41422680e2e00537571bcc53efbfd"],
- "shroom_view.display_total_value_locked",
- [],
- dict(),
- ),
],
)
def test_call_func(
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/test_shroom_model.py b/tests/openbb_terminal/cryptocurrency/onchain/test_shroom_model.py
deleted file mode 100644
index ed7130607802..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/test_shroom_model.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import pytest
-
-from openbb_terminal.cryptocurrency.onchain import shroom_model
-
-
-@pytest.fixture(scope="module")
-def vcr_config():
- return {
- "filter_headers": [
- ("User-Agent", None),
- ("x-api-key", "MOCK_AUTHORIZATION"),
- ],
- }
-
-
-@pytest.mark.vcr
-@pytest.mark.parametrize(
- "user_address, address_name",
- [
- ("0x0000000000000000000000000000000000000000", ""),
- ],
-)
-def test_get_total_value_locked(user_address, address_name, recorder):
- df = shroom_model.get_total_value_locked(
- user_address=user_address, address_name=address_name
- )
- recorder.capture(df)
-
-
-@pytest.mark.vcr
-@pytest.mark.parametrize(
- "symbols",
- [
- ["DAI", "USDT", "BUSD", "USDC"],
- ],
-)
-def test_get_daily_transactions(symbols, recorder):
- df = shroom_model.get_daily_transactions(symbols=symbols)
- recorder.capture(df)
-
-
-@pytest.mark.vcr
-@pytest.mark.skip(reason="Shroom functions broken.")
-def test_get_dapp_stats(recorder):
- df = shroom_model.get_dapp_stats(platform="curve")
- recorder.capture(df)
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/test_shroom_view.py b/tests/openbb_terminal/cryptocurrency/onchain/test_shroom_view.py
deleted file mode 100644
index 77b4c62e8039..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/test_shroom_view.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import pytest
-
-from openbb_terminal.cryptocurrency.onchain import shroom_view
-
-
-@pytest.fixture(scope="module")
-def vcr_config():
- return {
- "filter_headers": [
- ("User-Agent", None),
- ("x-api-key", "MOCK_AUTHORIZATION"),
- ],
- }
-
-
-@pytest.mark.vcr
-@pytest.mark.record_stdout
-def test_display_daily_transactions():
- shroom_view.display_daily_transactions()
-
-
-@pytest.mark.vcr
-@pytest.mark.record_stdout
-@pytest.mark.skip(reason="Shroom functions broken.")
-def test_display_dapp_stats():
- shroom_view.display_dapp_stats(platform="uniswap-v3")
-
-
-@pytest.mark.vcr
-@pytest.mark.record_stdout
-@pytest.mark.skip(reason="Shroom functions broken.")
-def test_display_total_value_locked():
- shroom_view.display_total_value_locked(
- user_address="0x0000000000000000000000000000000000000000", address_name=""
- )
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/txt/test_onchain_controller/test_print_help.txt b/tests/openbb_terminal/cryptocurrency/onchain/txt/test_onchain_controller/test_print_help.txt
index d1d814f29946..656a5bec7e37 100644
--- a/tests/openbb_terminal/cryptocurrency/onchain/txt/test_onchain_controller/test_print_help.txt
+++ b/tests/openbb_terminal/cryptocurrency/onchain/txt/test_onchain_controller/test_print_help.txt
@@ -10,9 +10,7 @@
ueat unique ethereum addresses which made a transaction [BitQuery]
ttcp top traded crypto pairs on given decentralized exchange [BitQuery]
baas bid, ask prices, average spread for given crypto pair [BitQuery]
- dt daily transactions of eth tokens [Shroom]
- ds stats of eth platform (daily users; fees) [Shroom]
- tvl total value locked of ERC20 tokens [Shroom]
+ query flipsidecrypto query [Shroom]
Ethereum address:
Address type:
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_daily_transactions.txt b/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_daily_transactions.txt
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_dapp_stats.txt b/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_dapp_stats.txt
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_total_value_locked.txt b/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_total_value_locked.txt
deleted file mode 100644
index 38918f82b057..000000000000
--- a/tests/openbb_terminal/cryptocurrency/onchain/txt/test_shroom_view/test_display_total_value_locked.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-No data found.
-