From eea170bdda54ff21f50caaa39bfd1aa78896baae Mon Sep 17 00:00:00 2001 From: James Maslek Date: Fri, 24 Feb 2023 10:33:45 -0500 Subject: [PATCH] Adding databento as a source (#4293) * First commit * Baby steps * Keys and sdk * Fix import for api key * Add SDK endpoints * Test + api checks * tests * roque print of api key * Changes * minor * custom timeout * improve timeouts --------- Co-authored-by: hjoaquim --- openbb_terminal/config_terminal.py | 3 + openbb_terminal/futures/databento_view.py | 118 ++ openbb_terminal/futures/futures_controller.py | 40 +- openbb_terminal/futures/sdk_helper.py | 31 + openbb_terminal/futures/yfinance_model.py | 2 +- openbb_terminal/helper_funcs.py | 19 +- openbb_terminal/keys_controller.py | 28 + openbb_terminal/keys_model.py | 72 +- .../miscellaneous/data_sources_default.json | 4 +- openbb_terminal/sdk.py | 3 +- .../sdk_core/models/forecast_sdk_model.py | 1 - .../sdk_core/models/futures_sdk_model.py | 4 +- .../sdk_core/models/keys_sdk_model.py | 2 + .../sdk_core/models/portfolio_sdk_model.py | 1 - openbb_terminal/sdk_core/sdk_init.py | 1 + openbb_terminal/sdk_core/trail_map.csv | 1099 +++++++++-------- .../sdk_core/trail_map_forecasting.csv | 78 +- .../sdk_core/trail_map_optimization.csv | 38 +- openbb_terminal/stocks/databento_model.py | 154 +++ openbb_terminal/stocks/stocks_helper.py | 8 + .../test_print_help.txt | 2 +- .../test_databento_model/test_stock_load.yaml | 118 ++ .../test_databento_model/test_stock_load.csv | 45 + .../stocks/test_databento_model.py | 35 + .../test_print_help.txt | 2 +- 25 files changed, 1266 insertions(+), 642 deletions(-) create mode 100644 openbb_terminal/futures/databento_view.py create mode 100644 openbb_terminal/futures/sdk_helper.py create mode 100644 openbb_terminal/stocks/databento_model.py create mode 100644 tests/openbb_terminal/stocks/cassettes/test_databento_model/test_stock_load.yaml create mode 100644 tests/openbb_terminal/stocks/csv/test_databento_model/test_stock_load.csv create mode 100644 tests/openbb_terminal/stocks/test_databento_model.py diff --git a/openbb_terminal/config_terminal.py b/openbb_terminal/config_terminal.py index 53791280034..117ecec303b 100644 --- a/openbb_terminal/config_terminal.py +++ b/openbb_terminal/config_terminal.py @@ -200,3 +200,6 @@ OPENBB_PERSONAL_ACCESS_TOKEN = ( # https://intrinio.com/starter-plan API_INTRINIO_KEY = os.getenv("OPENBB_API_INTRINIO_KEY") or "REPLACE_ME" + +# https://databento.com/ +API_DATABENTO_KEY = os.getenv("OPENBB_API_DATABENTO_KEY") or "REPLACE_ME" diff --git a/openbb_terminal/futures/databento_view.py b/openbb_terminal/futures/databento_view.py new file mode 100644 index 00000000000..e3d02ebe705 --- /dev/null +++ b/openbb_terminal/futures/databento_view.py @@ -0,0 +1,118 @@ +"""DataBento view""" +__docformat__ = "numpy" + +import os +from typing import List, Optional + +import mplfinance as mpf +from matplotlib import pyplot as plt + +from openbb_terminal.config_terminal import theme +from openbb_terminal.helper_funcs import ( + export_data, + is_valid_axes_count, + lambda_long_number_format_y_axis, + plot_autoscale, + print_rich_table, +) +from openbb_terminal.rich_config import console +from openbb_terminal.stocks import databento_model + + +def display_historical( + symbol: str, + start_date: Optional[str] = None, + end_date: Optional[str] = None, + raw: bool = False, + export: str = "", + sheet_name: Optional[str] = None, + external_axes: Optional[List[plt.Axes]] = None, +): + """Display historical futures [Source: DataBento] + + Parameters + ---------- + symbol: List[str] + Symbol to display + start_date: Optional[str] + Start date of the historical data with format YYYY-MM-DD + end_date: Optional[str] + End date of the historical data with format YYYY-MM-DD + raw: bool + Display futures timeseries in raw format + sheet_name: str + Optionally specify the name of the sheet the data is exported to. + export: str + Type of format to export data + external_axes : Optional[List[plt.Axes]], optional + External axes (1 axis is expected in the list), by default None + """ + data = databento_model.get_historical_futures( + symbol.upper(), start_date=start_date, end_date=end_date + ) + if data.empty: + console.print(f"No data found for {symbol}.") + return + # We check if there's Volume data to avoid errors and empty subplots + has_volume = False + if "Volume" in data.columns: + has_volume = bool(data["Volume"].sum() > 0) + + candle_chart_kwargs = { + "type": "candle", + "style": theme.mpf_style, + "volume": has_volume, + "addplot": [], + "xrotation": theme.xticks_rotation, + "scale_padding": {"left": 0.3, "right": 1, "top": 0.8, "bottom": 0.8}, + "update_width_config": { + "candle_linewidth": 0.6, + "candle_width": 0.8, + "volume_linewidth": 0.8, + "volume_width": 0.8, + }, + "warn_too_much_data": 10000, + } + if external_axes is None: + candle_chart_kwargs["returnfig"] = True + candle_chart_kwargs["figratio"] = (10, 7) + candle_chart_kwargs["figscale"] = 1.10 + candle_chart_kwargs["figsize"] = plot_autoscale() + candle_chart_kwargs["warn_too_much_data"] = 100_000 + + fig, ax = mpf.plot(data, **candle_chart_kwargs) + + if has_volume: + lambda_long_number_format_y_axis(data, "Volume", ax) + + fig.suptitle( + f"{symbol}", + x=0.055, + y=0.965, + horizontalalignment="left", + ) + theme.visualize_output(force_tight_layout=False) + elif (has_volume and is_valid_axes_count(external_axes, 2)) or ( + not has_volume and is_valid_axes_count(external_axes, 1) + ): + candle_chart_kwargs["ax"] = external_axes[0] + if has_volume: + candle_chart_kwargs["volume"] = external_axes[1] + mpf.plot(data, **candle_chart_kwargs) + + if raw: + print_rich_table( + data, + headers=list(data.columns), + show_index=True, + title="Futures timeseries", + ) + console.print() + + export_data( + export, + os.path.dirname(os.path.abspath(__file__)), + "historical_db", + data, + sheet_name, + ) diff --git a/openbb_terminal/futures/futures_controller.py b/openbb_terminal/futures/futures_controller.py index 26713534bea..1eea8f581a2 100644 --- a/openbb_terminal/futures/futures_controller.py +++ b/openbb_terminal/futures/futures_controller.py @@ -11,7 +11,7 @@ from typing import List, Optional from openbb_terminal import feature_flags as obbff from openbb_terminal.custom_prompt_toolkit import NestedCompleter from openbb_terminal.decorators import log_start_end -from openbb_terminal.futures import yfinance_model, yfinance_view +from openbb_terminal.futures import databento_view, yfinance_model, yfinance_view from openbb_terminal.helper_funcs import ( EXPORT_BOTH_RAW_DATA_AND_FIGURES, EXPORT_ONLY_RAW_DATA_ALLOWED, @@ -165,8 +165,8 @@ class FuturesController(BaseController): "--start", dest="start", type=valid_date, - help="Initial date. Default: 3 years ago", - default=(datetime.now() - timedelta(days=3 * 365)), + help="Initial date. Default: 2 years ago", + default=(datetime.now() - timedelta(days=2 * 365)), ) parser.add_argument( "-e", @@ -193,17 +193,29 @@ class FuturesController(BaseController): raw=True, ) if ns_parser: - yfinance_view.display_historical( - symbols=ns_parser.ticker.upper().split(","), - expiry=ns_parser.expiry, - start_date=ns_parser.start.strftime("%Y-%m-%d"), - end_date=ns_parser.end.strftime("%Y-%m-%d"), - raw=ns_parser.raw, - export=ns_parser.export, - sheet_name=" ".join(ns_parser.sheet_name) - if ns_parser.sheet_name - else None, - ) + if ns_parser.source == "YahooFinance": + yfinance_view.display_historical( + symbols=ns_parser.ticker.upper().split(","), + expiry=ns_parser.expiry, + start_date=ns_parser.start.strftime("%Y-%m-%d"), + end_date=ns_parser.end.strftime("%Y-%m-%d"), + raw=ns_parser.raw, + export=ns_parser.export, + sheet_name=" ".join(ns_parser.sheet_name) + if ns_parser.sheet_name + else None, + ) + if ns_parser.source == "DataBento": + databento_view.display_historical( + symbol=ns_parser.ticker, + start_date=ns_parser.start.strftime("%Y-%m-%d"), + end_date=ns_parser.end.strftime("%Y-%m-%d"), + raw=ns_parser.raw, + 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_curve(self, other_args: List[str]): diff --git a/openbb_terminal/futures/sdk_helper.py b/openbb_terminal/futures/sdk_helper.py new file mode 100644 index 00000000000..7115b782be1 --- /dev/null +++ b/openbb_terminal/futures/sdk_helper.py @@ -0,0 +1,31 @@ +"""SDK Helper Functions""" +__docformat__ = "numpy" + +from typing import List, Optional, Union + +import pandas as pd + +from openbb_terminal.futures import yfinance_model +from openbb_terminal.stocks import databento_model + + +def get_historical( + symbols: Union[str, List[str]], + start_date: str, + end_date: str, + source: Optional[str] = "YahooFinance", + expiry: Optional[str] = "", +) -> pd.DataFrame: + """Get historical futures data""" + if source == "YahooFinance": + if isinstance(symbols, str): + symbols = [symbols] + return yfinance_model.get_historical_futures( + symbols, expiry, start_date, end_date + ) + if source == "DataBento": + if isinstance(symbols, list): + print("DataBento only supports one symbol at a time. Using first symbol.") + symbols = symbols[0] + return databento_model.get_historical_futures(symbols, start_date, end_date) + return pd.DataFrame() diff --git a/openbb_terminal/futures/yfinance_model.py b/openbb_terminal/futures/yfinance_model.py index d9c76af35fb..d8989b99f8b 100644 --- a/openbb_terminal/futures/yfinance_model.py +++ b/openbb_terminal/futures/yfinance_model.py @@ -99,7 +99,7 @@ def get_historical_futures( Returns ------- pd.DataFrame - Dictionary with sector weightings allocation + Historical futures data """ if start_date is None: diff --git a/openbb_terminal/helper_funcs.py b/openbb_terminal/helper_funcs.py index 92ecb4ce37a..a74a444ad1a 100644 --- a/openbb_terminal/helper_funcs.py +++ b/openbb_terminal/helper_funcs.py @@ -44,10 +44,7 @@ from openbb_terminal import ( config_terminal as cfg, feature_flags as obbff, ) -from openbb_terminal.core.config.paths import ( - HOME_DIRECTORY, - USER_EXPORTS_DIRECTORY, -) +from openbb_terminal.core.config.paths import HOME_DIRECTORY, USER_EXPORTS_DIRECTORY from openbb_terminal.rich_config import console try: @@ -1967,7 +1964,9 @@ def check_start_less_than_end(start_date: str, end_date: str) -> bool: # Write an abstract helper to make requests from a url with potential headers and params -def request(url: str, method="GET", **kwargs) -> requests.Response: +def request( + url: str, method: str = "GET", timeout: int = 0, **kwargs +) -> requests.Response: """Abstract helper to make requests from a url with potential headers and params. Parameters @@ -1990,15 +1989,15 @@ def request(url: str, method="GET", **kwargs) -> requests.Response: # We want to add a user agent to the request, so check if there are any headers # If there are headers, check if there is a user agent, if not add one. # Some requests seem to work only with a specific user agent, so we want to be able to override it. - headers = kwargs.pop("headers") if "headers" in kwargs else {} + headers = kwargs.pop("headers", {}) + timeout = timeout or cfg.REQUEST_TIMEOUT + if "User-Agent" not in headers: headers["User-Agent"] = get_user_agent() if method.upper() == "GET": - return requests.get(url, headers=headers, timeout=cfg.REQUEST_TIMEOUT, **kwargs) + return requests.get(url, headers=headers, timeout=timeout, **kwargs) if method.upper() == "POST": - return requests.post( - url, headers=headers, timeout=cfg.REQUEST_TIMEOUT, **kwargs - ) + return requests.post(url, headers=headers, timeout=timeout, **kwargs) raise ValueError("Method must be GET or POST") diff --git a/openbb_terminal/keys_controller.py b/openbb_terminal/keys_controller.py index 164fab8a62c..e9dd9a61ff9 100644 --- a/openbb_terminal/keys_controller.py +++ b/openbb_terminal/keys_controller.py @@ -1140,6 +1140,34 @@ class KeysController(BaseController): # pylint: disable=too-many-public-methods key=ns_parser.key, persist=True, show_output=True ) + @log_start_end(log=logger) + def call_databento(self, other_args: List[str]): + """Process databento command""" + parser = argparse.ArgumentParser( + add_help=False, + formatter_class=argparse.ArgumentDefaultsHelpFormatter, + prog="databento", + description="Set DataBento API key.", + ) + parser.add_argument( + "-k", + "--key", + type=str, + dest="key", + help="key", + ) + if not other_args: + console.print("For your API Key, https://databento.com") + return + + if other_args and "-" not in other_args[0][0]: + other_args.insert(0, "-k") + ns_parser = self.parse_simple_args(parser, other_args) + if ns_parser: + self.status_dict["databento"] = keys_model.set_databento_key( + key=ns_parser.key, persist=True, show_output=True + ) + @log_start_end(log=logger) def call_openbb(self, other_args: List[str]): """Process openbb command""" diff --git a/openbb_terminal/keys_model.py b/openbb_terminal/keys_model.py index 1e4eb961cb8..c127c44dd93 100644 --- a/openbb_terminal/keys_model.py +++ b/openbb_terminal/keys_model.py @@ -58,6 +58,7 @@ API_DICT: Dict = { "quandl": "QUANDL", "polygon": "POLYGON", "intrinio": "INTRINIO", + "databento": "DATABENTO", "fred": "FRED", "news": "NEWSAPI", "tradier": "TRADIER", @@ -2592,7 +2593,7 @@ def set_intrinio_key(key: str, persist: bool = False, show_output: bool = False) def check_intrinio_key(show_output: bool = False) -> str: - """Check Polygon key + """Check Intrinio key Parameters ---------- @@ -2626,3 +2627,72 @@ def check_intrinio_key(show_output: bool = False) -> str: console.print(status.colorize()) return str(status) + + +def set_databento_key( + key: str, persist: bool = False, show_output: bool = False +) -> str: + """Set DataBento key + + Parameters + ---------- + key: str + API key + persist: bool, optional + If False, api key change will be contained to where it was changed. For example, a Jupyter notebook session. + If True, api key change will be global, i.e. it will affect terminal environment variables. + By default, False. + show_output: bool, optional + Display status string or not. By default, False. + + Returns + ------- + str + Status of key set + + Examples + -------- + >>> from openbb_terminal.sdk import openbb + >>> openbb.keys.databento(key="example_key") + """ + + set_key("OPENBB_API_DATABENTO_KEY", key, persist) + return check_databento_key(show_output) + + +def check_databento_key(show_output: bool = False) -> str: + """Check DataBento key + + Parameters + ---------- + show_output: bool + Display status string or not. By default, False. + + Returns + ------- + str + Status of key set + """ + + if cfg.API_DATABENTO_KEY == "REPLACE_ME": + logger.info("DataBento key not defined") + status = KeyStatus.NOT_DEFINED + else: + r = request( + "https://hist.databento.com/v0/metadata.list_datasets", + auth=(f"{cfg.API_DATABENTO_KEY}", ""), + ) + if r.status_code in [403, 401, 429]: + logger.warning("DataBento key defined, test failed") + status = KeyStatus.DEFINED_TEST_FAILED + elif r.status_code == 200: + logger.info("DataBento key defined, test passed") + status = KeyStatus.DEFINED_TEST_PASSED + else: + logger.warning("DataBento key defined, test inconclusive") + status = KeyStatus.DEFINED_TEST_INCONCLUSIVE + + if show_output: + console.print(status.colorize()) + + return str(status) diff --git a/openbb_terminal/miscellaneous/data_sources_default.json b/openbb_terminal/miscellaneous/data_sources_default.json index cc7d55fe5dd..cf6488e34cc 100644 --- a/openbb_terminal/miscellaneous/data_sources_default.json +++ b/openbb_terminal/miscellaneous/data_sources_default.json @@ -6,7 +6,7 @@ "candle": [], "codes": ["Polygon"], "news": ["Feedparser", "NewsApi"], - "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD", "Intrinio"], + "load": ["YahooFinance", "AlphaVantage", "Polygon", "EODHD", "Intrinio", "DataBento"], "th": { "symbol": ["FinanceDatabase"], "open": ["Bursa"], @@ -489,7 +489,7 @@ }, "futures": { "search": ["YahooFinance"], - "historical": ["YahooFinance"], + "historical": ["YahooFinance", "DataBento"], "curve": ["YahooFinance"] }, "portfolio": { diff --git a/openbb_terminal/sdk.py b/openbb_terminal/sdk.py index f9a9ed7d82a..eea400a56f2 100644 --- a/openbb_terminal/sdk.py +++ b/openbb_terminal/sdk.py @@ -297,7 +297,7 @@ class OpenBBSDK: Attributes: `curve`: Get curve futures [Source: Yahoo Finance]\n `curve_chart`: Display curve futures [Source: Yahoo Finance]\n - `historical`: Get historical futures [Source: Yahoo Finance]\n + `historical`: Get historical futures data\n `historical_chart`: Display historical futures [Source: Yahoo Finance]\n `search`: Get search futures [Source: Yahoo Finance]\n """ @@ -316,6 +316,7 @@ class OpenBBSDK: `coinbase`: Set Coinbase key\n `coinglass`: Set Coinglass key.\n `cpanic`: Set Cpanic key.\n + `databento`: Set DataBento key\n `degiro`: Set Degiro key\n `eodhd`: Set Eodhd key.\n `ethplorer`: Set Ethplorer key.\n diff --git a/openbb_terminal/sdk_core/models/forecast_sdk_model.py b/openbb_terminal/sdk_core/models/forecast_sdk_model.py index cfc9bb320cd..a6dd38ad969 100644 --- a/openbb_terminal/sdk_core/models/forecast_sdk_model.py +++ b/openbb_terminal/sdk_core/models/forecast_sdk_model.py @@ -77,7 +77,6 @@ class ForecastRoot(Category): 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/sdk_core/models/futures_sdk_model.py b/openbb_terminal/sdk_core/models/futures_sdk_model.py index 87f0f8771e1..fece0f27561 100644 --- a/openbb_terminal/sdk_core/models/futures_sdk_model.py +++ b/openbb_terminal/sdk_core/models/futures_sdk_model.py @@ -10,7 +10,7 @@ class FuturesRoot(Category): Attributes: `curve`: Get curve futures [Source: Yahoo Finance]\n `curve_chart`: Display curve futures [Source: Yahoo Finance]\n - `historical`: Get historical futures [Source: Yahoo Finance]\n + `historical`: Get historical futures data\n `historical_chart`: Display historical futures [Source: Yahoo Finance]\n `search`: Get search futures [Source: Yahoo Finance]\n """ @@ -21,6 +21,6 @@ class FuturesRoot(Category): super().__init__() self.curve = lib.futures_yfinance_model.get_curve_futures self.curve_chart = lib.futures_yfinance_view.display_curve - self.historical = lib.futures_yfinance_model.get_historical_futures + self.historical = lib.futures_sdk_model.get_historical self.historical_chart = lib.futures_yfinance_view.display_historical self.search = lib.futures_yfinance_model.get_search_futures diff --git a/openbb_terminal/sdk_core/models/keys_sdk_model.py b/openbb_terminal/sdk_core/models/keys_sdk_model.py index 27539200faf..a32c97e45c0 100644 --- a/openbb_terminal/sdk_core/models/keys_sdk_model.py +++ b/openbb_terminal/sdk_core/models/keys_sdk_model.py @@ -15,6 +15,7 @@ class KeysRoot(Category): `coinbase`: Set Coinbase key\n `coinglass`: Set Coinglass key.\n `cpanic`: Set Cpanic key.\n + `databento`: Set DataBento key\n `degiro`: Set Degiro key\n `eodhd`: Set Eodhd key.\n `ethplorer`: Set Ethplorer key.\n @@ -55,6 +56,7 @@ class KeysRoot(Category): self.coinbase = lib.keys_model.set_coinbase_key self.coinglass = lib.keys_model.set_coinglass_key self.cpanic = lib.keys_model.set_cpanic_key + self.databento = lib.keys_model.set_databento_key self.degiro = lib.keys_model.set_degiro_key self.eodhd = lib.keys_model.set_eodhd_key self.ethplorer = lib.keys_model.set_ethplorer_key diff --git a/openbb_terminal/sdk_core/models/portfolio_sdk_model.py b/openbb_terminal/sdk_core/models/portfolio_sdk_model.py index 0a9820696d1..85b602ae9ea 100644 --- a/openbb_terminal/sdk_core/models/portfolio_sdk_model.py +++ b/openbb_terminal/sdk_core/models/portfolio_sdk_model.py @@ -177,7 +177,6 @@ class PortfolioPortfolioOptimization(Category): 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/sdk_core/sdk_init.py b/openbb_terminal/sdk_core/sdk_init.py index 0ea6e809c0e..52b7652e5a3 100644 --- a/openbb_terminal/sdk_core/sdk_init.py +++ b/openbb_terminal/sdk_core/sdk_init.py @@ -252,6 +252,7 @@ from openbb_terminal.forex import ( 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 diff --git a/openbb_terminal/sdk_core/trail_map.csv b/openbb_terminal/sdk_core/trail_map.csv index 1baded0ee96..2b9452f0465 100644 --- a/openbb_terminal/sdk_core/trail_map.csv +++ b/openbb_terminal/sdk_core/trail_map.csv @@ -1,549 +1,550 @@ -trail,model,view -alt.covid.global_cases,alt_covid_model.get_global_cases, -alt.covid.global_deaths,alt_covid_model.get_global_deaths, -alt.covid.ov,alt_covid_model.get_covid_ov,alt_covid_view.display_covid_ov -alt.covid.slopes,alt_covid_model.get_case_slopes,alt_covid_view.display_case_slopes -alt.covid.stat,alt_covid_model.get_covid_stat,alt_covid_view.display_covid_stat -alt.hn,alt_hackernews_model.get_stories,alt_hackernews_view.display_stories -alt.oss._make_request,alt_oss_runa_model._make_request, -alt.oss._retry_session,alt_oss_runa_model._retry_session, -alt.oss.github_data,alt_oss_github_model.get_github_data, -alt.oss.history,alt_oss_github_model.get_stars_history,alt_oss_github_view.display_star_history -alt.oss.ross,alt_oss_runa_model.get_startups,alt_oss_runa_view.display_rossindex -alt.oss.search,alt_oss_github_model.search_repos, -alt.oss.summary,alt_oss_github_model.get_repo_summary,alt_oss_github_view.display_repo_summary -alt.oss.top,alt_oss_github_model.get_top_repos,alt_oss_github_view.display_top_repos -alt.realestate.get_estate_sales,alt_realestate_landRegistry_model.get_estate_sales, -alt.realestate.get_region_stats,alt_realestate_landRegistry_model.get_region_stats, -alt.realestate.get_towns_sold_prices,alt_realestate_landRegistry_model.get_towns_sold_prices, -crypto.candle,crypto_helpers.plot_candles, -crypto.chart,crypto_helpers.plot_chart, -crypto.dd.active,crypto_dd_glassnode_model.get_active_addresses,crypto_dd_glassnode_view.display_active_addresses -crypto.dd.all_binance_trading_pairs,crypto_dd_binance_model.get_all_binance_trading_pairs, -crypto.dd.ath,crypto_dd_sdk_helper.ath, -crypto.dd.atl,crypto_dd_sdk_helper.atl, -crypto.dd.balance,crypto_dd_binance_view.get_balance,crypto_dd_binance_view.display_balance -crypto.dd.basic,crypto_dd_coinpaprika_model.basic_coin_info,crypto_dd_coinpaprika_view.display_basic -crypto.dd.binance_available_quotes_for_each_coin,crypto_dd_binance_model.get_binance_available_quotes_for_each_coin, -crypto.dd.candle,crypto_dd_coinbase_model.get_candles, -crypto.dd.change,crypto_dd_glassnode_model.get_exchange_net_position_change,crypto_dd_glassnode_view.display_exchange_net_position_change -crypto.dd.check_valid_binance_str,crypto_dd_binance_model.check_valid_binance_str, -crypto.dd.close,crypto_dd_glassnode_model.get_close_price, -crypto.dd.coin,crypto_dd_coinpaprika_model.get_coin, -crypto.dd.coin_market_chart,crypto_dd_pycoingecko_model.get_coin_market_chart, -crypto.dd.dev,crypto_dd_sdk_helper.dev_stats, -crypto.dd.eb,crypto_dd_glassnode_model.get_exchange_balances,crypto_dd_glassnode_view.display_exchange_balances -crypto.dd.events,crypto_dd_coinpaprika_model.get_coin_events_by_id,crypto_dd_coinpaprika_view.display_events -crypto.dd.ex,crypto_dd_coinpaprika_model.get_coin_exchanges_by_id,crypto_dd_coinpaprika_view.display_exchanges -crypto.dd.exchanges,crypto_dd_ccxt_model.get_exchanges, -crypto.dd.fr,crypto_dd_messari_model.get_fundraising,crypto_dd_messari_view.display_fundraising -crypto.dd.get_mt,crypto_dd_messari_model.get_available_timeseries,crypto_dd_messari_view.display_messari_timeseries_list -crypto.dd.gh,crypto_dd_santiment_model.get_github_activity,crypto_dd_santiment_view.display_github_activity -crypto.dd.gov,crypto_dd_messari_model.get_governance,crypto_dd_messari_view.display_governance -crypto.dd.headlines,stocks_ba_finbrain_model.get_sentiment,crypto_dd_finbrain_view.display_crypto_sentiment_analysis -crypto.dd.inv,crypto_dd_messari_model.get_investors,crypto_dd_messari_view.display_investors -crypto.dd.links,crypto_dd_messari_model.get_links,crypto_dd_messari_view.display_links -crypto.dd.mcapdom,crypto_dd_messari_model.get_marketcap_dominance,crypto_dd_messari_view.display_marketcap_dominance -crypto.dd.mkt,crypto_dd_coinpaprika_model.get_coin_markets_by_id,crypto_dd_coinpaprika_view.display_markets -crypto.dd.mt,crypto_dd_messari_model.get_messari_timeseries,crypto_dd_messari_view.display_messari_timeseries -crypto.dd.news,crypto_ov_cryptopanic_model.get_news,crypto_dd_cryptopanic_view.display_news -crypto.dd.nonzero,crypto_dd_glassnode_model.get_non_zero_addresses,crypto_dd_glassnode_view.display_non_zero_addresses -crypto.dd.ob,crypto_dd_ccxt_model.get_orderbook,crypto_dd_ccxt_view.display_order_book -crypto.dd.oi,crypto_dd_coinglass_model.get_open_interest_per_exchange,crypto_dd_coinglass_view.display_open_interest -crypto.dd.pi,crypto_dd_messari_model.get_project_product_info,crypto_dd_messari_view.display_project_info -crypto.dd.pr,crypto_dd_pycoingecko_model.get_coin_potential_returns,crypto_dd_pycoingecko_view.display_coin_potential_returns -crypto.dd.ps,crypto_dd_coinpaprika_model.get_tickers_info_for_coin,crypto_dd_coinpaprika_view.display_price_supply -crypto.dd.rm,crypto_dd_messari_model.get_roadmap,crypto_dd_messari_view.display_roadmap -crypto.dd.score,crypto_dd_sdk_helper.score, -crypto.dd.show_available_pairs_for_given_symbol,crypto_dd_coinbase_model.show_available_pairs_for_given_symbol, -crypto.dd.social,crypto_dd_sdk_helper.social, -crypto.dd.stats,crypto_dd_coinbase_model.get_product_stats,crypto_dd_coinbase_view.display_stats -crypto.dd.team,crypto_dd_messari_model.get_team,crypto_dd_messari_view.display_team -crypto.dd.tk,crypto_dd_messari_model.get_tokenomics,crypto_dd_messari_view.display_tokenomics -crypto.dd.tokenomics,crypto_dd_pycoingecko_model.get_coin_tokenomics, -crypto.dd.trades,crypto_dd_ccxt_model.get_trades,crypto_dd_ccxt_view.display_trades -crypto.dd.trading_pair_info,crypto_dd_coinbase_model.get_trading_pair_info, -crypto.dd.trading_pairs,crypto_dd_binance_model._get_trading_pairs, -crypto.dd.twitter,crypto_dd_coinpaprika_model.get_coin_twitter_timeline,crypto_dd_coinpaprika_view.display_twitter -crypto.defi.anchor_data,crypto_defi_cryptosaurio_model.get_anchor_data,crypto_defi_cryptosaurio_view.display_anchor_data -crypto.defi.aterra,crypto_defi_terraengineer_model.get_history_asset_from_terra_address,crypto_defi_terraengineer_view.display_terra_asset_history -crypto.defi.ayr,crypto_defi_terraengineer_model.get_anchor_yield_reserve,crypto_defi_terraengineer_view.display_anchor_yield_reserve -crypto.defi.dtvl,crypto_defi_llama_model.get_defi_protocol,crypto_defi_llama_view.display_historical_tvl -crypto.defi.gacc,crypto_defi_terramoney_fcd_model.get_account_growth,crypto_defi_terramoney_fcd_view.display_account_growth -crypto.defi.gdapps,crypto_defi_llama_model.get_grouped_defi_protocols,crypto_defi_llama_view.display_grouped_defi_protocols -crypto.defi.gov_proposals,crypto_defi_terramoney_fcd_model.get_proposals,crypto_defi_terramoney_fcd_view.display_gov_proposals -crypto.defi.ldapps,crypto_defi_llama_model.get_defi_protocols,crypto_defi_llama_view.display_defi_protocols -crypto.defi.luna_supply,crypto_defi_smartstake_model.get_luna_supply_stats,crypto_defi_smartstake_view.display_luna_circ_supply_change -crypto.defi.newsletters,crypto_defi_substack_model.get_newsletters,crypto_defi_substack_view.display_newsletters -crypto.defi.pairs,crypto_defi_graph_model.get_uniswap_pool_recently_added,crypto_defi_graph_view.display_recently_added -crypto.defi.pools,crypto_defi_graph_model.get_uni_pools_by_volume,crypto_defi_graph_view.display_uni_pools -crypto.defi.sinfo,crypto_defi_terramoney_fcd_model.get_staking_account_info,crypto_defi_terramoney_fcd_view.display_account_staking_info -crypto.defi.sratio,crypto_defi_terramoney_fcd_model.get_staking_ratio_history,crypto_defi_terramoney_fcd_view.display_staking_ratio_history -crypto.defi.sreturn,crypto_defi_terramoney_fcd_model.get_staking_returns_history,crypto_defi_terramoney_fcd_view.display_staking_returns_history -crypto.defi.stats,crypto_defi_graph_model.get_uniswap_stats,crypto_defi_graph_view.display_uni_stats -crypto.defi.stvl,crypto_defi_llama_model.get_defi_tvl,crypto_defi_llama_view.display_defi_tvl -crypto.defi.swaps,crypto_defi_graph_model.get_last_uni_swaps,crypto_defi_graph_view.display_last_uni_swaps -crypto.defi.tokens,crypto_defi_graph_model.get_uni_tokens,crypto_defi_graph_view.display_uni_tokens -crypto.defi.validators,crypto_defi_terramoney_fcd_model.get_validators,crypto_defi_terramoney_fcd_view.display_validators -crypto.defi.vaults,crypto_defi_coindix_model.get_defi_vaults,crypto_defi_coindix_view.display_defi_vaults -crypto.disc.categories_keys,crypto_disc_pycoingecko_model.get_categories_keys, -crypto.disc.coin_list,crypto_disc_pycoingecko_model.get_coin_list, -crypto.disc.coins,crypto_disc_pycoingecko_model.get_coins,crypto_disc_pycoingecko_view.display_coins -crypto.disc.coins_for_given_exchange,crypto_disc_pycoingecko_model.get_coins_for_given_exchange, -crypto.disc.cpsearch,crypto_disc_coinpaprika_model.get_search_results,crypto_disc_coinpaprika_view.display_search_results -crypto.disc.gainers,crypto_disc_pycoingecko_model.get_gainers,crypto_disc_pycoingecko_view.display_gainers -crypto.disc.losers,crypto_disc_pycoingecko_model.get_losers,crypto_disc_pycoingecko_view.display_losers -crypto.disc.top_coins,crypto_disc_sdk_helpers.top_coins, -crypto.disc.top_dapps,crypto_disc_dappradar_model.get_top_dapps,crypto_disc_dappradar_view.display_top_dapps -crypto.disc.top_dexes,crypto_disc_dappradar_model.get_top_dexes,crypto_disc_dappradar_view.display_top_dexes -crypto.disc.top_games,crypto_disc_dappradar_model.get_top_games,crypto_disc_dappradar_view.display_top_games -crypto.disc.top_nfts,crypto_disc_dappradar_model.get_top_nfts,crypto_disc_dappradar_view.display_top_nfts -crypto.disc.trending,crypto_disc_pycoingecko_model.get_trending_coins,crypto_disc_pycoingecko_view.display_trending -crypto.find,crypto_models.find, -crypto.load,crypto_helpers.load, -crypto.nft.collections,crypto_nft_pricefloor_model.get_collections,crypto_nft_pricefloor_view.display_collections -crypto.nft.fp,crypto_nft_pricefloor_model.get_floor_price,crypto_nft_pricefloor_view.display_floor_price -crypto.nft.stats,crypto_nft_opensea_model.get_collection_stats,crypto_nft_opensea_view.display_collection_stats -crypto.onchain.baas,crypto_onchain_bitquery_model.get_spread_for_crypto_pair,crypto_onchain_bitquery_view.display_spread_for_crypto_pair -crypto.onchain.balance,crypto_onchain_ethplorer_model.get_address_info,crypto_onchain_ethplorer_view.display_address_info -crypto.onchain.btc_supply,crypto_onchain_blockchain_model.get_btc_circulating_supply,crypto_onchain_blockchain_view.display_btc_circulating_supply -crypto.onchain.btc_transac,crypto_onchain_blockchain_model.get_btc_confirmed_transactions,crypto_onchain_blockchain_view.display_btc_confirmed_transactions -crypto.onchain.btcsingleblock,crypto_onchain_blockchain_model.get_btc_single_block,crypto_onchain_blockchain_view.display_btc_single_block -crypto.onchain.dex_trades_monthly,crypto_onchain_bitquery_model.get_dex_trades_monthly, -crypto.onchain.dvcp,crypto_onchain_bitquery_model.get_daily_dex_volume_for_given_pair,crypto_onchain_bitquery_view.display_daily_volume_for_given_pair -crypto.onchain.erc20_tokens,crypto_onchain_bitquery_model.get_erc20_tokens, -crypto.onchain.gwei,crypto_onchain_ethgasstation_model.get_gwei_fees,crypto_onchain_ethgasstation_view.display_gwei_fees -crypto.onchain.hist,crypto_onchain_ethplorer_model.get_address_history,crypto_onchain_ethplorer_view.display_address_history -crypto.onchain.holders,crypto_onchain_ethplorer_model.get_top_token_holders,crypto_onchain_ethplorer_view.display_top_token_holders -crypto.onchain.hr,crypto_dd_glassnode_model.get_hashrate,crypto_dd_glassnode_view.display_hashrate -crypto.onchain.info,crypto_onchain_ethplorer_model.get_token_info,crypto_onchain_ethplorer_view.display_token_info -crypto.onchain.lt,crypto_onchain_bitquery_model.get_dex_trades_by_exchange,crypto_onchain_bitquery_view.display_dex_trades -crypto.onchain.prices,crypto_onchain_ethplorer_model.get_token_historical_price,crypto_onchain_ethplorer_view.display_token_historical_prices -crypto.onchain.query_graph,crypto_onchain_bitquery_model.query_graph, -crypto.onchain.th,crypto_onchain_ethplorer_model.get_token_history,crypto_onchain_ethplorer_view.display_token_history -crypto.onchain.token_decimals,crypto_onchain_ethplorer_model.get_token_decimals, -crypto.onchain.top,crypto_onchain_ethplorer_model.get_top_tokens,crypto_onchain_ethplorer_view.display_top_tokens -crypto.onchain.ttcp,crypto_onchain_bitquery_model.get_most_traded_pairs,crypto_onchain_bitquery_view.display_most_traded_pairs -crypto.onchain.tv,crypto_onchain_bitquery_model.get_token_volume_on_dexes,crypto_onchain_bitquery_view.display_dex_volume_for_token -crypto.onchain.tx,crypto_onchain_ethplorer_model.get_tx_info,crypto_onchain_ethplorer_view.display_tx_info -crypto.onchain.ueat,crypto_onchain_bitquery_model.get_ethereum_unique_senders,crypto_onchain_bitquery_view.display_ethereum_unique_senders -crypto.onchain.whales,crypto_onchain_whale_alert_model.get_whales_transactions,crypto_onchain_whale_alert_view.display_whales_transactions -crypto.ov.altindex,crypto_ov_blockchaincenter_model.get_altcoin_index,crypto_ov_blockchaincenter_view.display_altcoin_index -crypto.ov.btcrb,crypto_ov_glassnode_model.get_btc_rainbow,crypto_ov_glassnode_view.display_btc_rainbow -crypto.ov.categories,crypto_ov_pycoingecko_model.get_top_crypto_categories,crypto_ov_pycoingecko_view.display_categories -crypto.ov.cbpairs,crypto_ov_coinbase_model.get_trading_pairs,crypto_ov_coinbase_view.display_trading_pairs -crypto.ov.coin_list,crypto_dd_coinpaprika_model.get_coin_list, -crypto.ov.contracts,crypto_ov_coinpaprika_model.get_contract_platform,crypto_ov_coinpaprika_view.display_contracts -crypto.ov.cr,crypto_ov_loanscan_model.get_rates,crypto_ov_loanscan_view.display_crypto_rates -crypto.ov.crypto_hack,crypto_ov_rekt_model.get_crypto_hack, -crypto.ov.crypto_hack_slugs,crypto_ov_rekt_model.get_crypto_hack_slugs, -crypto.ov.crypto_hacks,crypto_ov_rekt_model.get_crypto_hacks,crypto_ov_rekt_view.display_crypto_hacks -crypto.ov.defi,crypto_ov_pycoingecko_model.get_global_defi_info,crypto_ov_pycoingecko_view.display_global_defi_info -crypto.ov.derivatives,crypto_ov_pycoingecko_model.get_derivatives,crypto_ov_pycoingecko_view.display_derivatives -crypto.ov.ewf,crypto_ov_withdrawalfees_model.get_overall_exchange_withdrawal_fees,crypto_ov_withdrawalfees_view.display_overall_exchange_withdrawal_fees -crypto.ov.exchanges,crypto_ov_sdk_helpers.exchanges, -crypto.ov.exmarkets,crypto_ov_coinpaprika_model.get_exchanges_market,crypto_ov_coinpaprika_view.display_exchange_markets -crypto.ov.exrates,crypto_ov_pycoingecko_model.get_exchange_rates,crypto_ov_pycoingecko_view.display_exchange_rates -crypto.ov.globe,crypto_ov_sdk_helpers.globe, -crypto.ov.hm,crypto_disc_pycoingecko_model.get_coins,crypto_ov_pycoingecko_view.display_crypto_heatmap -crypto.ov.hold,crypto_ov_pycoingecko_model.get_holdings_overview,crypto_ov_pycoingecko_view.display_holdings_overview -crypto.ov.indexes,crypto_ov_pycoingecko_model.get_indexes,crypto_ov_pycoingecko_view.display_indexes -crypto.ov.info,crypto_ov_coinpaprika_model.get_coins_info,crypto_ov_coinpaprika_view.display_all_coins_info -crypto.ov.markets,crypto_ov_coinpaprika_model.get_coins_market_info,crypto_ov_coinpaprika_view.display_all_coins_market_info -crypto.ov.news,crypto_ov_cryptopanic_model.get_news,crypto_ov_cryptopanic_view.display_news -crypto.ov.platforms,crypto_ov_coinpaprika_model.get_all_contract_platforms,crypto_ov_coinpaprika_view.display_all_platforms -crypto.ov.products,crypto_ov_pycoingecko_model.get_finance_products,crypto_ov_pycoingecko_view.display_products -crypto.ov.stables,crypto_ov_pycoingecko_model.get_stable_coins,crypto_ov_pycoingecko_view.display_stablecoins -crypto.ov.wf,crypto_ov_withdrawalfees_model.get_overall_withdrawal_fees,crypto_ov_withdrawalfees_view.display_overall_withdrawal_fees -crypto.ov.wfpe,crypto_ov_withdrawalfees_model.get_crypto_withdrawal_fees,crypto_ov_withdrawalfees_view.display_crypto_withdrawal_fees -crypto.price,crypto_pyth_model.get_price, -crypto.tools.apy,crypto_tools_model.calculate_apy,crypto_tools_view.display_apy -crypto.tools.il,crypto_tools_model.calculate_il,crypto_tools_view.display_il -econometrics.bgod,econometrics_regression_model.get_bgod,econometrics_regression_view.display_bgod -econometrics.bols,econometrics_regression_model.get_bols, -econometrics.bpag,econometrics_regression_model.get_bpag,econometrics_regression_view.display_bpag -econometrics.clean,econometrics_model.clean, -econometrics.coint,econometrics_model.get_coint_df,econometrics_view.display_cointegration_test -econometrics.comparison,econometrics_regression_model.get_comparison, -econometrics.dwat,econometrics_regression_model.get_dwat,econometrics_regression_view.display_dwat -econometrics.fdols,econometrics_regression_model.get_fdols, -econometrics.fe,econometrics_regression_model.get_fe, -econometrics.get_regression_data,econometrics_regression_model.get_regression_data, -econometrics.granger,econometrics_model.get_granger_causality,econometrics_view.display_granger -econometrics.load,common_model.load, -econometrics.norm,econometrics_model.get_normality,econometrics_view.display_norm -econometrics.ols,econometrics_regression_model.get_ols, -econometrics.options,econometrics_model.get_options,econometrics_view.show_options -econometrics.panel,econometrics_regression_model.get_regressions_results,econometrics_regression_view.display_panel -econometrics.pols,econometrics_regression_model.get_pols, -econometrics.re,econometrics_regression_model.get_re, -econometrics.root,econometrics_model.get_root,econometrics_view.display_root -economy.available_indices,economy_yfinance_model.get_available_indices, -economy.bigmac,economy_nasdaq_model.get_big_mac_indices,economy_nasdaq_view.display_big_mac_index -economy.country_codes,economy_nasdaq_model.get_country_codes, -economy.currencies,economy_wsj_model.global_currencies, -economy.events,economy_nasdaq_model.get_economic_calendar, -economy.fred,economy_fred_model.get_aggregated_series_data,economy_fred_view.display_fred_series -economy.fred_ids,economy_fred_model.get_series_ids, -economy.fred_notes,economy_fred_model.get_series_notes, -economy.future,economy_finviz_model.get_futures, -economy.futures,economy_sdk_helpers.futures, -economy.get_groups,economy_finviz_model.get_groups, -economy.glbonds,economy_wsj_model.global_bonds, -economy.index,economy_yfinance_model.get_indices,economy_yfinance_view.show_indices -economy.indices,economy_wsj_model.us_indices, -economy.macro,economy_econdb_model.get_aggregated_macro_data,economy_econdb_view.show_macro_data -economy.macro_countries,economy_econdb_model.get_macro_countries, -economy.macro_parameters,economy_econdb_model.get_macro_parameters, -economy.overview,economy_wsj_model.market_overview, -economy.perfmap,economy_finviz_model.get_performance_map, -economy.performance,economy_finviz_model.get_performance_data, -economy.rtps,economy_alphavantage_model.get_sector_data,economy_alphavantage_view.realtime_performance_sector -economy.search_index,economy_yfinance_model.get_search_indices, -economy.spectrum,economy_finviz_view.display_spectrum, -economy.treasury,economy_econdb_model.get_treasuries,economy_econdb_view.show_treasuries -economy.treasury_maturities,economy_econdb_model.get_treasury_maturities, -economy.usbonds,economy_wsj_model.us_bonds, -economy.valuation,economy_finviz_model.get_valuation_data, -economy.ycrv,economy_fred_model.get_yield_curve,economy_fred_view.display_yield_curve -etf.candle,stocks_helper.display_candle, -etf.compare,etf_stockanalysis_model.compare_etfs, -etf.disc.mover,etf_disc_wsj_model.etf_movers, -etf.etf_by_category,etf_financedatabase_model.get_etfs_by_category, -etf.etf_by_name,etf_stockanalysis_model.get_etfs_by_name, -etf.holdings,etf_stockanalysis_model.get_etf_holdings, -etf.ld,etf_financedatabase_model.get_etfs_by_description, -etf.ln,etf_financedatabase_model.get_etfs_by_name, -etf.load,stocks_helper.load, -etf.news,common_newsapi_model.get_news,common_newsapi_view.display_news -etf.overview,etf_stockanalysis_model.get_etf_overview, -etf.scr.screen,etf_scr_model.etf_screener,etf_scr_view.view_screener -etf.symbols,etf_stockanalysis_model.get_all_names_symbols, -etf.weights,etf_fmp_model.get_etf_sector_weightings, -forex.candle,forex_helper.display_candle, -forex.fwd,forex_fxempire_model.get_forward_rates, -forex.get_currency_list,forex_av_model.get_currency_list, -forex.load,forex_helper.load, -forex.oanda.calendar,forex_oanda_model.get_calendar_request,forex_oanda_view.calendar -forex.oanda.cancel,forex_oanda_model.cancel_pending_order_request,forex_oanda_view.cancel_pending_order -forex.oanda.candles,forex_oanda_model.get_candles_dataframe,forex_oanda_view.show_candles -forex.oanda.close,forex_oanda_model.close_trades_request,forex_oanda_view.close_trade -forex.oanda.listorders,forex_oanda_model.order_history_request,forex_oanda_view.list_orders -forex.oanda.openpositions,forex_oanda_model.open_positions_request,forex_oanda_view.get_open_positions -forex.oanda.opentrades,forex_oanda_model.open_trades_request,forex_oanda_view.get_open_trades -forex.oanda.order,forex_oanda_model.create_order_request,forex_oanda_view.create_order -forex.oanda.orderbook,forex_oanda_model.orderbook_plot_data_request,forex_oanda_view.get_order_book -forex.oanda.pending,forex_oanda_model.pending_orders_request,forex_oanda_view.get_pending_orders -forex.oanda.positionbook,forex_oanda_model.positionbook_plot_data_request,forex_oanda_view.get_position_book -forex.oanda.price,forex_oanda_model.fx_price_request,forex_oanda_view.get_fx_price -forex.oanda.summary,forex_oanda_model.account_summary_request,forex_oanda_view.get_account_summary -forex.quote,forex_sdk_helpers.quote, -futures.curve,futures_yfinance_model.get_curve_futures,futures_yfinance_view.display_curve -futures.historical,futures_yfinance_model.get_historical_futures,futures_yfinance_view.display_historical -futures.search,futures_yfinance_model.get_search_futures, -keys.av,keys_model.set_av_key, -keys.binance,keys_model.set_binance_key, -keys.bitquery,keys_model.set_bitquery_key, -keys.cmc,keys_model.set_cmc_key, -keys.coinbase,keys_model.set_coinbase_key, -keys.coinglass,keys_model.set_coinglass_key, -keys.cpanic,keys_model.set_cpanic_key, -keys.degiro,keys_model.set_degiro_key, -keys.eodhd,keys_model.set_eodhd_key, -keys.ethplorer,keys_model.set_ethplorer_key, -keys.finnhub,keys_model.set_finnhub_key, -keys.fmp,keys_model.set_fmp_key, -keys.fred,keys_model.set_fred_key, -keys.get_keys_info,keys_model.get_keys_info, -keys.github,keys_model.set_github_key, -keys.glassnode,keys_model.set_glassnode_key, -keys.messari,keys_model.set_messari_key, -keys.mykeys,keys_model.get_keys, -keys.news,keys_model.set_news_key, -keys.oanda,keys_model.set_oanda_key, -keys.openbb,keys_model.set_openbb_personal_access_token, -keys.polygon,keys_model.set_polygon_key, -keys.quandl,keys_model.set_quandl_key, -keys.reddit,keys_model.set_reddit_key, -keys.rh,keys_model.set_rh_key, -keys.santiment,keys_model.set_santiment_key, -keys.set_keys,keys_model.set_keys, -keys.shroom,keys_model.set_shroom_key, -keys.smartstake,keys_model.set_smartstake_key, -keys.stocksera,keys_model.set_stocksera_key, -keys.tokenterminal,keys_model.set_tokenterminal_key, -keys.tradier,keys_model.set_tradier_key, -keys.twitter,keys_model.set_twitter_key, -keys.walert,keys_model.set_walert_key, -login,sdk_session.login, -logout,sdk_session.logout, -news,common_feedparser_model.get_news, -portfolio.alloc.assets,portfolio_model.get_assets_allocation, -portfolio.alloc.countries,portfolio_model.get_countries_allocation, -portfolio.alloc.regions,portfolio_model.get_regions_allocation, -portfolio.alloc.sectors,portfolio_model.get_sectors_allocation, -portfolio.bench,portfolio_model.set_benchmark, -portfolio.distr,portfolio_model.get_distribution_returns,portfolio_view.display_distribution_returns -portfolio.dret,portfolio_model.get_daily_returns,portfolio_view.display_daily_returns -portfolio.es,portfolio_model.get_es, -portfolio.holdp,portfolio_model.get_holdings_percentage,portfolio_view.display_holdings_percentage -portfolio.holdv,portfolio_model.get_holdings_value,portfolio_view.display_holdings_value -portfolio.load,portfolio_model.generate_portfolio, -portfolio.maxdd,portfolio_model.get_maximum_drawdown,portfolio_view.display_maximum_drawdown -portfolio.metric.calmar,portfolio_model.get_calmar_ratio, -portfolio.metric.commonsense,portfolio_model.get_common_sense_ratio, -portfolio.metric.gaintopain,portfolio_model.get_gaintopain_ratio, -portfolio.metric.information,portfolio_model.get_information_ratio, -portfolio.metric.jensens,portfolio_model.get_jensens_alpha, -portfolio.metric.kelly,portfolio_model.get_kelly_criterion, -portfolio.metric.kurtosis,portfolio_model.get_kurtosis, -portfolio.metric.maxdrawdown,portfolio_model.get_maximum_drawdown_ratio, -portfolio.metric.payoff,portfolio_model.get_payoff_ratio, -portfolio.metric.profitfactor,portfolio_model.get_profit_factor, -portfolio.metric.rsquare,portfolio_model.get_r2_score, -portfolio.metric.sharpe,portfolio_model.get_sharpe_ratio, -portfolio.metric.skew,portfolio_model.get_skewness, -portfolio.metric.sortino,portfolio_model.get_sortino_ratio, -portfolio.metric.tail,portfolio_model.get_tail_ratio, -portfolio.metric.trackerr,portfolio_model.get_tracking_error, -portfolio.metric.volatility,portfolio_model.get_volatility, -portfolio.mret,portfolio_model.get_monthly_returns,portfolio_view.display_monthly_returns -portfolio.om,portfolio_model.get_omega,portfolio_view.display_omega -portfolio.perf,portfolio_model.get_performance_vs_benchmark, -portfolio.rbeta,portfolio_model.get_rolling_beta,portfolio_view.display_rolling_beta -portfolio.rsharpe,portfolio_model.get_rolling_sharpe,portfolio_view.display_rolling_sharpe -portfolio.rsort,portfolio_model.get_rolling_sortino,portfolio_view.display_rolling_sortino -portfolio.rvol,portfolio_model.get_rolling_volatility,portfolio_view.display_rolling_volatility -portfolio.show,portfolio_model.get_transactions, -portfolio.summary,portfolio_model.get_summary, -portfolio.var,portfolio_model.get_var, -portfolio.yret,portfolio_model.get_yearly_returns,portfolio_view.display_yearly_returns -qa.acf,common_qa_view.display_acf, -qa.bw,common_qa_view.display_bw, -qa.calculate_adjusted_var,common_qa_model.calculate_adjusted_var, -qa.cdf,common_qa_view.display_cdf, -qa.cusum,common_qa_view.display_cusum, -qa.decompose,common_qa_model.get_seasonal_decomposition, -qa.es,common_qa_model.get_es,common_qa_view.display_es -qa.hist,common_qa_view.display_hist, -qa.kurtosis,common_qa_rolling_model.get_kurtosis,common_qa_rolling_view.display_kurtosis -qa.line,common_qa_view.display_line, -qa.normality,common_qa_model.get_normality,common_qa_view.display_normality -qa.omega,common_qa_model.get_omega,common_qa_view.display_omega -qa.qqplot,common_qa_view.display_qqplot, -qa.quantile,common_qa_rolling_model.get_quantile,common_qa_rolling_view.display_quantile -qa.rolling,common_qa_rolling_model.get_rolling_avg,common_qa_rolling_view.display_mean_std -qa.sharpe,common_qa_model.get_sharpe,common_qa_view.display_sharpe -qa.skew,common_qa_rolling_model.get_skew,common_qa_rolling_view.display_skew -qa.sortino,common_qa_model.get_sortino,common_qa_view.display_sortino -qa.spread,common_qa_rolling_model.get_spread,common_qa_rolling_view.display_spread -qa.summary,common_qa_model.get_summary,common_qa_view.display_summary -qa.unitroot,common_qa_model.get_unitroot,common_qa_view.display_unitroot -qa.var,common_qa_model.get_var,common_qa_view.display_var -stocks.ba.bullbear,stocks_ba_stocktwits_model.get_bullbear, -stocks.ba.cnews,stocks_ba_finnhub_model.get_company_news, -stocks.ba.getdd,stocks_ba_reddit_model.get_due_dilligence, -stocks.ba.headlines,stocks_ba_finbrain_model.get_sentiment,stocks_ba_finbrain_view.display_sentiment_analysis -stocks.ba.infer,stocks_ba_twitter_model.load_analyze_tweets,stocks_ba_twitter_view.display_inference -stocks.ba.mentions,stocks_ba_google_model.get_mentions,stocks_ba_google_view.display_mentions -stocks.ba.messages,stocks_ba_stocktwits_model.get_messages, -stocks.ba.popular,stocks_ba_reddit_model.get_popular_tickers, -stocks.ba.queries,stocks_ba_google_model.get_queries, -stocks.ba.redditsent,stocks_ba_reddit_model.get_posts_about, -stocks.ba.regions,stocks_ba_google_model.get_regions,stocks_ba_google_view.display_regions -stocks.ba.rise,stocks_ba_google_model.get_rise, -stocks.ba.sentiment,stocks_ba_twitter_model.get_sentiment,stocks_ba_twitter_view.display_sentiment -stocks.ba.snews,stocks_ba_finnhub_model.get_headlines_sentiment,stocks_ba_finnhub_view.display_stock_price_headlines_sentiment -stocks.ba.spac,stocks_ba_reddit_model.get_spac, -stocks.ba.spacc,stocks_ba_reddit_model.get_spac_community, -stocks.ba.stalker,stocks_ba_stocktwits_model.get_stalker, -stocks.ba.text_sent,stocks_ba_reddit_model.get_sentiment, -stocks.ba.trending,stocks_ba_stocktwits_model.get_trending, -stocks.ba.watchlist,stocks_ba_reddit_model.get_watchlists, -stocks.ba.wsb,stocks_ba_reddit_model.get_wsb_community, -stocks.ca.balance,stocks_ca_marketwatch_model.get_balance_comparison, -stocks.ca.cashflow,stocks_ca_marketwatch_model.get_cashflow_comparison, -stocks.ca.hcorr,stocks_ca_yahoo_finance_model.get_correlation,stocks_ca_yahoo_finance_view.display_correlation -stocks.ca.hist,stocks_ca_yahoo_finance_model.get_historical,stocks_ca_yahoo_finance_view.display_historical -stocks.ca.income,stocks_ca_marketwatch_model.get_income_comparison,stocks_ca_marketwatch_view.display_income_comparison -stocks.ca.scorr,stocks_ca_finbrain_model.get_sentiment_correlation,stocks_ca_finbrain_view.display_sentiment_correlation -stocks.ca.screener,stocks_ca_finviz_compare_model.get_comparison_data, -stocks.ca.sentiment,stocks_ca_finbrain_model.get_sentiments,stocks_ca_finbrain_view.display_sentiment_compare -stocks.ca.similar,stocks_ca_sdk_helpers.get_similar, -stocks.ca.volume,stocks_ca_yahoo_finance_model.get_volume,stocks_ca_yahoo_finance_view.display_volume -stocks.candle,stocks_helper.display_candle, -stocks.disc.active,stocks_disc_yahoofinance_model.get_active, -stocks.disc.arkord,stocks_disc_ark_model.get_ark_orders, -stocks.disc.asc,stocks_disc_yahoofinance_model.get_asc, -stocks.disc.dividends,stocks_disc_nasdaq_model.get_dividend_cal, -stocks.disc.filings,stocks_fa_fmp_model.get_filings,stocks_disc_fmp_view.display_filings -stocks.disc.fipo,stocks_disc_finnhub_model.get_future_ipo, -stocks.disc.gainers,stocks_disc_yahoofinance_model.get_gainers, -stocks.disc.gtech,stocks_disc_yahoofinance_model.get_gtech, -stocks.disc.hotpenny,stocks_disc_shortinterest_model.get_today_hot_penny_stocks, -stocks.disc.ipo,stocks_disc_finnhub_model.get_ipo_calendar, -stocks.disc.losers,stocks_disc_yahoofinance_model.get_losers, -stocks.disc.lowfloat,stocks_disc_shortinterest_model.get_low_float, -stocks.disc.news,stocks_disc_seeking_alpha_model.get_news, -stocks.disc.pipo,stocks_disc_finnhub_model.get_past_ipo, -stocks.disc.rtat,stocks_disc_nasdaq_model.get_retail_tickers, -stocks.disc.trending,stocks_disc_seeking_alpha_model.get_trending_list, -stocks.disc.ugs,stocks_disc_yahoofinance_model.get_ugs, -stocks.disc.ulc,stocks_disc_yahoofinance_model.get_ulc, -stocks.disc.upcoming,stocks_disc_seeking_alpha_model.get_next_earnings, -stocks.dps.ctb,stocks_dps_ibkr_model.get_cost_to_borrow, -stocks.dps.dpotc,stocks_dps_finra_model.getTickerFINRAdata,stocks_dps_finra_view.darkpool_ats_otc -stocks.dps.ftd,stocks_dps_sec_model.get_fails_to_deliver,stocks_dps_sec_view.fails_to_deliver -stocks.dps.hsi,stocks_dps_shortinterest_model.get_high_short_interest, -stocks.dps.pos,stocks_dps_stockgrid_model.get_dark_pool_short_positions, -stocks.dps.prom,stocks_dps_finra_model.getATSdata,stocks_dps_finra_view.darkpool_otc -stocks.dps.psi_q,stocks_dps_quandl_model.get_short_interest,stocks_dps_quandl_view.short_interest -stocks.dps.psi_sg,stocks_dps_stockgrid_model.get_short_interest_volume,stocks_dps_stockgrid_view.short_interest_volume -stocks.dps.shorted,stocks_dps_yahoofinance_model.get_most_shorted, -stocks.dps.sidtc,stocks_dps_stockgrid_model.get_short_interest_days_to_cover, -stocks.dps.spos,stocks_dps_stockgrid_model.get_net_short_position,stocks_dps_stockgrid_view.net_short_position -stocks.fa.analysis,stocks_fa_eclect_us_model.get_filings_analysis, -stocks.fa.analyst,stocks_fa_finviz_model.get_analyst_data, -stocks.fa.balance,stocks_fa_sdk_helpers.get_balance_sheet, -stocks.fa.cal,stocks_fa_yahoo_finance_model.get_calendar_earnings, -stocks.fa.cash,stocks_fa_sdk_helpers.get_cash_flow, -stocks.fa.customer,stocks_fa_csimarket_model.get_customers, -stocks.fa.data,stocks_fa_finviz_model.get_data, -stocks.fa.dcf,stocks_fa_fmp_model.get_dcf, -stocks.fa.dcfc,stocks_fa_fmp_model.get_dcf, -stocks.fa.divs,stocks_fa_yahoo_finance_model.get_dividends,stocks_fa_yahoo_finance_view.display_dividends -stocks.fa.dupont,stocks_fa_av_model.get_dupont, -stocks.fa.earnings,stocks_fa_sdk_helpers.earnings, -stocks.fa.enterprise,stocks_fa_fmp_model.get_enterprise, -stocks.fa.epsfc,stocks_fa_seeking_alpha_model.get_estimates_eps, -stocks.fa.est,stocks_fa_business_insider_model.get_estimates, -stocks.fa.fama_coe,stocks_fa_dcf_model.get_fama_coe, -stocks.fa.fama_raw,stocks_fa_dcf_model.get_fama_raw, -stocks.fa.fraud,stocks_fa_av_model.get_fraud_ratios, -stocks.fa.growth,stocks_fa_fmp_model.get_financial_growth, -stocks.fa.historical_5,stocks_fa_dcf_model.get_historical_5, -stocks.fa.income,stocks_fa_sdk_helpers.get_income_statement, -stocks.fa.info,stocks_fa_yahoo_finance_model.get_info, -stocks.fa.key,stocks_fa_av_model.get_key_metrics, -stocks.fa.metrics,stocks_fa_fmp_model.get_key_metrics, -stocks.fa.mgmt,stocks_fa_business_insider_model.get_management, -stocks.fa.mktcap,stocks_fa_yahoo_finance_model.get_mktcap,stocks_fa_yahoo_finance_view.display_mktcap -stocks.fa.news,stocks_fa_finviz_model.get_news, -stocks.fa.overview,stocks_fa_av_model.get_overview, -stocks.fa.profile,stocks_fa_fmp_model.get_profile, -stocks.fa.pt,stocks_fa_business_insider_model.get_price_target_from_analysts,stocks_fa_business_insider_view.price_target_from_analysts -stocks.fa.rating,stocks_fa_fmp_model.get_rating, -stocks.fa.ratios,stocks_fa_fmp_model.get_key_ratios, -stocks.fa.revfc,stocks_fa_seeking_alpha_model.get_estimates_rev, -stocks.fa.rot,stocks_fa_finnhub_model.get_rating_over_time,stocks_fa_finnhub_view.rating_over_time -stocks.fa.score,stocks_fa_fmp_model.get_score, -stocks.fa.sec,stocks_fa_marketwatch_model.get_sec_filings, -stocks.fa.sec_fmp,stocks_fa_fmp_model.get_filings,stocks_fa_fmp_view.display_filings -stocks.fa.shrs,stocks_fa_yahoo_finance_model.get_shareholders, -stocks.fa.similar_dfs,stocks_fa_dcf_model.get_similar_dfs, -stocks.fa.splits,stocks_fa_yahoo_finance_model.get_splits,stocks_fa_yahoo_finance_view.display_splits -stocks.fa.supplier,stocks_fa_csimarket_model.get_suppliers, -stocks.gov.contracts,stocks_gov_quiverquant_model.get_contracts,stocks_gov_quiverquant_view.display_contracts -stocks.gov.government_trading,stocks_gov_quiverquant_model.get_government_trading, -stocks.gov.gtrades,stocks_gov_quiverquant_model.get_cleaned_government_trading,stocks_gov_quiverquant_view.display_government_trading -stocks.gov.histcont,stocks_gov_quiverquant_model.get_hist_contracts,stocks_gov_quiverquant_view.display_hist_contracts -stocks.gov.lastcontracts,stocks_gov_quiverquant_model.get_last_contracts,stocks_gov_quiverquant_view.display_last_contracts -stocks.gov.lasttrades,stocks_gov_quiverquant_model.get_last_government, -stocks.gov.lobbying,stocks_gov_quiverquant_model.get_lobbying, -stocks.gov.qtrcontracts,stocks_gov_quiverquant_model.get_qtr_contracts,stocks_gov_quiverquant_view.display_qtr_contracts -stocks.gov.topbuys,stocks_gov_quiverquant_model.get_government_buys,stocks_gov_quiverquant_view.display_government_buys -stocks.gov.toplobbying,stocks_gov_quiverquant_model.get_top_lobbying,stocks_gov_quiverquant_view.display_top_lobbying -stocks.gov.topsells,stocks_gov_quiverquant_model.get_government_sells,stocks_gov_quiverquant_view.display_government_sells -stocks.ins.act,stocks_insider_businessinsider_model.get_insider_activity,stocks_insider_businessinsider_view.insider_activity -stocks.ins.blcp,stocks_insider_sdk_helper.blcp, -stocks.ins.blcs,stocks_insider_sdk_helper.blcs, -stocks.ins.blip,stocks_insider_sdk_helper.blip, -stocks.ins.blis,stocks_insider_sdk_helper.blis, -stocks.ins.blop,stocks_insider_sdk_helper.blop, -stocks.ins.blos,stocks_insider_sdk_helper.blos, -stocks.ins.filter,stocks_insider_sdk_helper.insider_filter, -stocks.ins.lcb,stocks_insider_sdk_helper.lcb, -stocks.ins.lins,stocks_insider_finviz_model.get_last_insider_activity,stocks_insider_finviz_view.last_insider_activity -stocks.ins.lip,stocks_insider_sdk_helper.lip, -stocks.ins.lis,stocks_insider_sdk_helper.lis, -stocks.ins.lit,stocks_insider_sdk_helper.lit, -stocks.ins.lpsb,stocks_insider_sdk_helper.lpsb, -stocks.ins.print_insider_data,stocks_insider_openinsider_model.get_print_insider_data,stocks_insider_openinsider_view.print_insider_data -stocks.ins.stats,stocks_insider_sdk_helper.stats, -stocks.load,stocks_helper.load, -stocks.options.chains,stocks_options_sdk_helper.get_full_option_chain, -stocks.options.dte,stocks_options_yfinance_model.get_dte, -stocks.options.eodchain,stocks_options_intrinio_model.get_full_chain_eod, -stocks.options.expirations,stocks_options_sdk_helper.get_option_expirations, -stocks.options.generate_data,stocks_options_yfinance_model.generate_data, -stocks.options.grhist,stocks_options_screen_syncretism_model.get_historical_greeks,stocks_options_screen_syncretism_view.view_historical_greeks -stocks.options.hist,stocks_options_sdk_helper.hist, -stocks.options.info,stocks_options_barchart_model.get_options_info,stocks_options_barchart_view.print_options_data -stocks.options.last_price,stocks_options_tradier_model.get_last_price, -stocks.options.oi,stocks_options_view.plot_oi, -stocks.options.pcr,stocks_options_alphaquery_model.get_put_call_ratio,stocks_options_alphaquery_view.display_put_call_ratio -stocks.options.price,stocks_options_sdk_helper.get_option_current_price, -stocks.options.screen.check_presets,stocks_options_screen_syncretism_model.check_presets, -stocks.options.screen.screener_output,stocks_options_screen_syncretism_model.get_screener_output,stocks_options_screen_syncretism_view.view_screener_output -stocks.options.unu,stocks_options_fdscanner_model.unusual_options,stocks_options_fdscanner_view.display_options -stocks.options.voi,stocks_options_view.plot_voi, -stocks.options.vol,stocks_options_view.plot_vol, -stocks.options.vsurf,stocks_options_yfinance_model.get_iv_surface,stocks_options_yfinance_view.display_vol_surface -stocks.process_candle,stocks_helper.process_candle, -stocks.qa.beta,stocks_qa_beta_model.beta_model,stocks_qa_beta_view.beta_view -stocks.qa.capm,stocks_qa_factors_model.capm_information, -stocks.qa.fama_raw,stocks_qa_factors_model.get_fama_raw, -stocks.qa.historical_5,stocks_qa_factors_model.get_historical_5, -stocks.quote,stocks_model.get_quote, -stocks.screener.arktrades,stocks_screener_ark_model.get_ark_trades_by_ticker, -stocks.screener.historical,stocks_screener_yahoofinance_model.historical,stocks_screener_yahoofinance_view.historical -stocks.screener.screener_data,stocks_screener_finviz_model.get_screener_data,stocks_screener_finviz_view.screener -stocks.search,stocks_helper.search, -stocks.sia.countries,stocks_sia_financedatabase_model.get_countries, -stocks.sia.cpci,stocks_sia_financedatabase_model.get_companies_per_country_in_industry,stocks_sia_financedatabase_view.display_companies_per_country_in_industry -stocks.sia.cpcs,stocks_sia_financedatabase_model.get_companies_per_country_in_sector,stocks_sia_financedatabase_view.display_companies_per_country_in_sector -stocks.sia.cpic,stocks_sia_financedatabase_model.get_companies_per_industry_in_country,stocks_sia_financedatabase_view.display_companies_per_industry_in_country -stocks.sia.cpis,stocks_sia_financedatabase_model.get_companies_per_industry_in_sector,stocks_sia_financedatabase_view.display_companies_per_industry_in_sector -stocks.sia.cps,stocks_sia_financedatabase_model.get_companies_per_sector_in_country,stocks_sia_financedatabase_view.display_companies_per_sector_in_country -stocks.sia.filter_stocks,stocks_sia_financedatabase_model.filter_stocks, -stocks.sia.industries,stocks_sia_financedatabase_model.get_industries, -stocks.sia.maketcap,stocks_sia_financedatabase_model.get_marketcap, -stocks.sia.marketcap,stocks_sia_financedatabase_model.get_marketcap, -stocks.sia.sectors,stocks_sia_financedatabase_model.get_sectors, -stocks.sia.stocks_data,stocks_sia_stockanalysis_model.get_stocks_data, -stocks.ta.recom,stocks_ta_tradingview_model.get_tradingview_recommendation,stocks_ta_tradingview_view.print_recommendation -stocks.ta.rsp,stocks_ta_rsp_model.get_rsp,stocks_ta_rsp_view.display_rsp -stocks.ta.summary,stocks_ta_finbrain_model.get_technical_summary_report,stocks_ta_finbrain_view.technical_summary_report -stocks.ta.view,stocks_ta_finviz_model.get_finviz_image,stocks_ta_finviz_view.view -stocks.th.all,stocks_th_bursa_model.get_all,stocks_th_bursa_view.display_all -stocks.th.check_if_open,stocks_th_bursa_model.check_if_open, -stocks.th.closed,stocks_th_bursa_model.get_closed,stocks_th_bursa_view.display_closed -stocks.th.exchange,stocks_th_bursa_model.get_bursa,stocks_th_bursa_view.display_exchange -stocks.th.open,stocks_th_bursa_model.get_open,stocks_th_bursa_view.display_open -stocks.tob,stocks_cboe_model.get_top_of_book, -ta.ad,common_ta_volume_model.ad,common_ta_volume_view.display_ad -ta.adosc,common_ta_volume_model.adosc,common_ta_volume_view.display_adosc -ta.adx,common_ta_trend_indicators_model.adx,common_ta_trend_indicators_view.display_adx -ta.aroon,common_ta_trend_indicators_model.aroon,common_ta_trend_indicators_view.display_aroon -ta.atr,common_ta_volatility_model.atr,common_ta_volatility_view.display_atr -ta.bbands,common_ta_volatility_model.bbands,common_ta_volatility_view.display_bbands -ta.cci,common_ta_momentum_model.cci,common_ta_momentum_view.display_cci -ta.cg,common_ta_momentum_model.cg,common_ta_momentum_view.display_cg -ta.clenow,common_ta_momentum_model.clenow_momentum,common_ta_momentum_view.display_clenow_momentum -ta.demark,common_ta_momentum_model.demark_seq,common_ta_momentum_view.display_demark -ta.donchian,common_ta_volatility_model.donchian,common_ta_volatility_view.display_donchian -ta.ema,common_ta_overlap_model.ema, -ta.fib,common_ta_custom_indicators_model.calculate_fib_levels,common_ta_custom_indicators_view.fibonacci_retracement -ta.fisher,common_ta_momentum_model.fisher,common_ta_momentum_view.display_fisher -ta.hma,common_ta_overlap_model.hma, -ta.kc,common_ta_volatility_model.kc,common_ta_volatility_view.view_kc -ta.ma,common_ta_overlap_view.view_ma,common_ta_overlap_view.view_ma -ta.macd,common_ta_momentum_model.macd,common_ta_momentum_view.display_macd -ta.obv,common_ta_volume_model.obv,common_ta_volume_view.display_obv -ta.rsi,common_ta_momentum_model.rsi,common_ta_momentum_view.display_rsi -ta.sma,common_ta_overlap_model.sma, -ta.stoch,common_ta_momentum_model.stoch,common_ta_momentum_view.display_stoch -ta.vwap,common_ta_overlap_model.vwap,common_ta_overlap_view.view_vwap -ta.wma,common_ta_overlap_model.wma, -ta.zlma,common_ta_overlap_model.zlma, -whoami,sdk_session.whoami, +trail,model,view +alt.covid.global_cases,alt_covid_model.get_global_cases, +alt.covid.global_deaths,alt_covid_model.get_global_deaths, +alt.covid.ov,alt_covid_model.get_covid_ov,alt_covid_view.display_covid_ov +alt.covid.slopes,alt_covid_model.get_case_slopes,alt_covid_view.display_case_slopes +alt.covid.stat,alt_covid_model.get_covid_stat,alt_covid_view.display_covid_stat +alt.hn,alt_hackernews_model.get_stories,alt_hackernews_view.display_stories +alt.oss._make_request,alt_oss_runa_model._make_request, +alt.oss._retry_session,alt_oss_runa_model._retry_session, +alt.oss.github_data,alt_oss_github_model.get_github_data, +alt.oss.history,alt_oss_github_model.get_stars_history,alt_oss_github_view.display_star_history +alt.oss.ross,alt_oss_runa_model.get_startups,alt_oss_runa_view.display_rossindex +alt.oss.search,alt_oss_github_model.search_repos, +alt.oss.summary,alt_oss_github_model.get_repo_summary,alt_oss_github_view.display_repo_summary +alt.oss.top,alt_oss_github_model.get_top_repos,alt_oss_github_view.display_top_repos +alt.realestate.get_estate_sales,alt_realestate_landRegistry_model.get_estate_sales, +alt.realestate.get_region_stats,alt_realestate_landRegistry_model.get_region_stats, +alt.realestate.get_towns_sold_prices,alt_realestate_landRegistry_model.get_towns_sold_prices, +crypto.candle,crypto_helpers.plot_candles, +crypto.chart,crypto_helpers.plot_chart, +crypto.dd.active,crypto_dd_glassnode_model.get_active_addresses,crypto_dd_glassnode_view.display_active_addresses +crypto.dd.all_binance_trading_pairs,crypto_dd_binance_model.get_all_binance_trading_pairs, +crypto.dd.ath,crypto_dd_sdk_helper.ath, +crypto.dd.atl,crypto_dd_sdk_helper.atl, +crypto.dd.balance,crypto_dd_binance_view.get_balance,crypto_dd_binance_view.display_balance +crypto.dd.basic,crypto_dd_coinpaprika_model.basic_coin_info,crypto_dd_coinpaprika_view.display_basic +crypto.dd.binance_available_quotes_for_each_coin,crypto_dd_binance_model.get_binance_available_quotes_for_each_coin, +crypto.dd.candle,crypto_dd_coinbase_model.get_candles, +crypto.dd.change,crypto_dd_glassnode_model.get_exchange_net_position_change,crypto_dd_glassnode_view.display_exchange_net_position_change +crypto.dd.check_valid_binance_str,crypto_dd_binance_model.check_valid_binance_str, +crypto.dd.close,crypto_dd_glassnode_model.get_close_price, +crypto.dd.coin,crypto_dd_coinpaprika_model.get_coin, +crypto.dd.coin_market_chart,crypto_dd_pycoingecko_model.get_coin_market_chart, +crypto.dd.dev,crypto_dd_sdk_helper.dev_stats, +crypto.dd.eb,crypto_dd_glassnode_model.get_exchange_balances,crypto_dd_glassnode_view.display_exchange_balances +crypto.dd.events,crypto_dd_coinpaprika_model.get_coin_events_by_id,crypto_dd_coinpaprika_view.display_events +crypto.dd.ex,crypto_dd_coinpaprika_model.get_coin_exchanges_by_id,crypto_dd_coinpaprika_view.display_exchanges +crypto.dd.exchanges,crypto_dd_ccxt_model.get_exchanges, +crypto.dd.fr,crypto_dd_messari_model.get_fundraising,crypto_dd_messari_view.display_fundraising +crypto.dd.get_mt,crypto_dd_messari_model.get_available_timeseries,crypto_dd_messari_view.display_messari_timeseries_list +crypto.dd.gh,crypto_dd_santiment_model.get_github_activity,crypto_dd_santiment_view.display_github_activity +crypto.dd.gov,crypto_dd_messari_model.get_governance,crypto_dd_messari_view.display_governance +crypto.dd.headlines,stocks_ba_finbrain_model.get_sentiment,crypto_dd_finbrain_view.display_crypto_sentiment_analysis +crypto.dd.inv,crypto_dd_messari_model.get_investors,crypto_dd_messari_view.display_investors +crypto.dd.links,crypto_dd_messari_model.get_links,crypto_dd_messari_view.display_links +crypto.dd.mcapdom,crypto_dd_messari_model.get_marketcap_dominance,crypto_dd_messari_view.display_marketcap_dominance +crypto.dd.mkt,crypto_dd_coinpaprika_model.get_coin_markets_by_id,crypto_dd_coinpaprika_view.display_markets +crypto.dd.mt,crypto_dd_messari_model.get_messari_timeseries,crypto_dd_messari_view.display_messari_timeseries +crypto.dd.news,crypto_ov_cryptopanic_model.get_news,crypto_dd_cryptopanic_view.display_news +crypto.dd.nonzero,crypto_dd_glassnode_model.get_non_zero_addresses,crypto_dd_glassnode_view.display_non_zero_addresses +crypto.dd.ob,crypto_dd_ccxt_model.get_orderbook,crypto_dd_ccxt_view.display_order_book +crypto.dd.oi,crypto_dd_coinglass_model.get_open_interest_per_exchange,crypto_dd_coinglass_view.display_open_interest +crypto.dd.pi,crypto_dd_messari_model.get_project_product_info,crypto_dd_messari_view.display_project_info +crypto.dd.pr,crypto_dd_pycoingecko_model.get_coin_potential_returns,crypto_dd_pycoingecko_view.display_coin_potential_returns +crypto.dd.ps,crypto_dd_coinpaprika_model.get_tickers_info_for_coin,crypto_dd_coinpaprika_view.display_price_supply +crypto.dd.rm,crypto_dd_messari_model.get_roadmap,crypto_dd_messari_view.display_roadmap +crypto.dd.score,crypto_dd_sdk_helper.score, +crypto.dd.show_available_pairs_for_given_symbol,crypto_dd_coinbase_model.show_available_pairs_for_given_symbol, +crypto.dd.social,crypto_dd_sdk_helper.social, +crypto.dd.stats,crypto_dd_coinbase_model.get_product_stats,crypto_dd_coinbase_view.display_stats +crypto.dd.team,crypto_dd_messari_model.get_team,crypto_dd_messari_view.display_team +crypto.dd.tk,crypto_dd_messari_model.get_tokenomics,crypto_dd_messari_view.display_tokenomics +crypto.dd.tokenomics,crypto_dd_pycoingecko_model.get_coin_tokenomics, +crypto.dd.trades,crypto_dd_ccxt_model.get_trades,crypto_dd_ccxt_view.display_trades +crypto.dd.trading_pair_info,crypto_dd_coinbase_model.get_trading_pair_info, +crypto.dd.trading_pairs,crypto_dd_binance_model._get_trading_pairs, +crypto.dd.twitter,crypto_dd_coinpaprika_model.get_coin_twitter_timeline,crypto_dd_coinpaprika_view.display_twitter +crypto.defi.anchor_data,crypto_defi_cryptosaurio_model.get_anchor_data,crypto_defi_cryptosaurio_view.display_anchor_data +crypto.defi.aterra,crypto_defi_terraengineer_model.get_history_asset_from_terra_address,crypto_defi_terraengineer_view.display_terra_asset_history +crypto.defi.ayr,crypto_defi_terraengineer_model.get_anchor_yield_reserve,crypto_defi_terraengineer_view.display_anchor_yield_reserve +crypto.defi.dtvl,crypto_defi_llama_model.get_defi_protocol,crypto_defi_llama_view.display_historical_tvl +crypto.defi.gacc,crypto_defi_terramoney_fcd_model.get_account_growth,crypto_defi_terramoney_fcd_view.display_account_growth +crypto.defi.gdapps,crypto_defi_llama_model.get_grouped_defi_protocols,crypto_defi_llama_view.display_grouped_defi_protocols +crypto.defi.gov_proposals,crypto_defi_terramoney_fcd_model.get_proposals,crypto_defi_terramoney_fcd_view.display_gov_proposals +crypto.defi.ldapps,crypto_defi_llama_model.get_defi_protocols,crypto_defi_llama_view.display_defi_protocols +crypto.defi.luna_supply,crypto_defi_smartstake_model.get_luna_supply_stats,crypto_defi_smartstake_view.display_luna_circ_supply_change +crypto.defi.newsletters,crypto_defi_substack_model.get_newsletters,crypto_defi_substack_view.display_newsletters +crypto.defi.pairs,crypto_defi_graph_model.get_uniswap_pool_recently_added,crypto_defi_graph_view.display_recently_added +crypto.defi.pools,crypto_defi_graph_model.get_uni_pools_by_volume,crypto_defi_graph_view.display_uni_pools +crypto.defi.sinfo,crypto_defi_terramoney_fcd_model.get_staking_account_info,crypto_defi_terramoney_fcd_view.display_account_staking_info +crypto.defi.sratio,crypto_defi_terramoney_fcd_model.get_staking_ratio_history,crypto_defi_terramoney_fcd_view.display_staking_ratio_history +crypto.defi.sreturn,crypto_defi_terramoney_fcd_model.get_staking_returns_history,crypto_defi_terramoney_fcd_view.display_staking_returns_history +crypto.defi.stats,crypto_defi_graph_model.get_uniswap_stats,crypto_defi_graph_view.display_uni_stats +crypto.defi.stvl,crypto_defi_llama_model.get_defi_tvl,crypto_defi_llama_view.display_defi_tvl +crypto.defi.swaps,crypto_defi_graph_model.get_last_uni_swaps,crypto_defi_graph_view.display_last_uni_swaps +crypto.defi.tokens,crypto_defi_graph_model.get_uni_tokens,crypto_defi_graph_view.display_uni_tokens +crypto.defi.validators,crypto_defi_terramoney_fcd_model.get_validators,crypto_defi_terramoney_fcd_view.display_validators +crypto.defi.vaults,crypto_defi_coindix_model.get_defi_vaults,crypto_defi_coindix_view.display_defi_vaults +crypto.disc.categories_keys,crypto_disc_pycoingecko_model.get_categories_keys, +crypto.disc.coin_list,crypto_disc_pycoingecko_model.get_coin_list, +crypto.disc.coins,crypto_disc_pycoingecko_model.get_coins,crypto_disc_pycoingecko_view.display_coins +crypto.disc.coins_for_given_exchange,crypto_disc_pycoingecko_model.get_coins_for_given_exchange, +crypto.disc.cpsearch,crypto_disc_coinpaprika_model.get_search_results,crypto_disc_coinpaprika_view.display_search_results +crypto.disc.gainers,crypto_disc_pycoingecko_model.get_gainers,crypto_disc_pycoingecko_view.display_gainers +crypto.disc.losers,crypto_disc_pycoingecko_model.get_losers,crypto_disc_pycoingecko_view.display_losers +crypto.disc.top_coins,crypto_disc_sdk_helpers.top_coins, +crypto.disc.top_dapps,crypto_disc_dappradar_model.get_top_dapps,crypto_disc_dappradar_view.display_top_dapps +crypto.disc.top_dexes,crypto_disc_dappradar_model.get_top_dexes,crypto_disc_dappradar_view.display_top_dexes +crypto.disc.top_games,crypto_disc_dappradar_model.get_top_games,crypto_disc_dappradar_view.display_top_games +crypto.disc.top_nfts,crypto_disc_dappradar_model.get_top_nfts,crypto_disc_dappradar_view.display_top_nfts +crypto.disc.trending,crypto_disc_pycoingecko_model.get_trending_coins,crypto_disc_pycoingecko_view.display_trending +crypto.find,crypto_models.find, +crypto.load,crypto_helpers.load, +crypto.nft.collections,crypto_nft_pricefloor_model.get_collections,crypto_nft_pricefloor_view.display_collections +crypto.nft.fp,crypto_nft_pricefloor_model.get_floor_price,crypto_nft_pricefloor_view.display_floor_price +crypto.nft.stats,crypto_nft_opensea_model.get_collection_stats,crypto_nft_opensea_view.display_collection_stats +crypto.onchain.baas,crypto_onchain_bitquery_model.get_spread_for_crypto_pair,crypto_onchain_bitquery_view.display_spread_for_crypto_pair +crypto.onchain.balance,crypto_onchain_ethplorer_model.get_address_info,crypto_onchain_ethplorer_view.display_address_info +crypto.onchain.btc_supply,crypto_onchain_blockchain_model.get_btc_circulating_supply,crypto_onchain_blockchain_view.display_btc_circulating_supply +crypto.onchain.btc_transac,crypto_onchain_blockchain_model.get_btc_confirmed_transactions,crypto_onchain_blockchain_view.display_btc_confirmed_transactions +crypto.onchain.btcsingleblock,crypto_onchain_blockchain_model.get_btc_single_block,crypto_onchain_blockchain_view.display_btc_single_block +crypto.onchain.dex_trades_monthly,crypto_onchain_bitquery_model.get_dex_trades_monthly, +crypto.onchain.dvcp,crypto_onchain_bitquery_model.get_daily_dex_volume_for_given_pair,crypto_onchain_bitquery_view.display_daily_volume_for_given_pair +crypto.onchain.erc20_tokens,crypto_onchain_bitquery_model.get_erc20_tokens, +crypto.onchain.gwei,crypto_onchain_ethgasstation_model.get_gwei_fees,crypto_onchain_ethgasstation_view.display_gwei_fees +crypto.onchain.hist,crypto_onchain_ethplorer_model.get_address_history,crypto_onchain_ethplorer_view.display_address_history +crypto.onchain.holders,crypto_onchain_ethplorer_model.get_top_token_holders,crypto_onchain_ethplorer_view.display_top_token_holders +crypto.onchain.hr,crypto_dd_glassnode_model.get_hashrate,crypto_dd_glassnode_view.display_hashrate +crypto.onchain.info,crypto_onchain_ethplorer_model.get_token_info,crypto_onchain_ethplorer_view.display_token_info +crypto.onchain.lt,crypto_onchain_bitquery_model.get_dex_trades_by_exchange,crypto_onchain_bitquery_view.display_dex_trades +crypto.onchain.prices,crypto_onchain_ethplorer_model.get_token_historical_price,crypto_onchain_ethplorer_view.display_token_historical_prices +crypto.onchain.query_graph,crypto_onchain_bitquery_model.query_graph, +crypto.onchain.th,crypto_onchain_ethplorer_model.get_token_history,crypto_onchain_ethplorer_view.display_token_history +crypto.onchain.token_decimals,crypto_onchain_ethplorer_model.get_token_decimals, +crypto.onchain.top,crypto_onchain_ethplorer_model.get_top_tokens,crypto_onchain_ethplorer_view.display_top_tokens +crypto.onchain.ttcp,crypto_onchain_bitquery_model.get_most_traded_pairs,crypto_onchain_bitquery_view.display_most_traded_pairs +crypto.onchain.tv,crypto_onchain_bitquery_model.get_token_volume_on_dexes,crypto_onchain_bitquery_view.display_dex_volume_for_token +crypto.onchain.tx,crypto_onchain_ethplorer_model.get_tx_info,crypto_onchain_ethplorer_view.display_tx_info +crypto.onchain.ueat,crypto_onchain_bitquery_model.get_ethereum_unique_senders,crypto_onchain_bitquery_view.display_ethereum_unique_senders +crypto.onchain.whales,crypto_onchain_whale_alert_model.get_whales_transactions,crypto_onchain_whale_alert_view.display_whales_transactions +crypto.ov.altindex,crypto_ov_blockchaincenter_model.get_altcoin_index,crypto_ov_blockchaincenter_view.display_altcoin_index +crypto.ov.btcrb,crypto_ov_glassnode_model.get_btc_rainbow,crypto_ov_glassnode_view.display_btc_rainbow +crypto.ov.categories,crypto_ov_pycoingecko_model.get_top_crypto_categories,crypto_ov_pycoingecko_view.display_categories +crypto.ov.cbpairs,crypto_ov_coinbase_model.get_trading_pairs,crypto_ov_coinbase_view.display_trading_pairs +crypto.ov.coin_list,crypto_dd_coinpaprika_model.get_coin_list, +crypto.ov.contracts,crypto_ov_coinpaprika_model.get_contract_platform,crypto_ov_coinpaprika_view.display_contracts +crypto.ov.cr,crypto_ov_loanscan_model.get_rates,crypto_ov_loanscan_view.display_crypto_rates +crypto.ov.crypto_hack,crypto_ov_rekt_model.get_crypto_hack, +crypto.ov.crypto_hack_slugs,crypto_ov_rekt_model.get_crypto_hack_slugs, +crypto.ov.crypto_hacks,crypto_ov_rekt_model.get_crypto_hacks,crypto_ov_rekt_view.display_crypto_hacks +crypto.ov.defi,crypto_ov_pycoingecko_model.get_global_defi_info,crypto_ov_pycoingecko_view.display_global_defi_info +crypto.ov.derivatives,crypto_ov_pycoingecko_model.get_derivatives,crypto_ov_pycoingecko_view.display_derivatives +crypto.ov.ewf,crypto_ov_withdrawalfees_model.get_overall_exchange_withdrawal_fees,crypto_ov_withdrawalfees_view.display_overall_exchange_withdrawal_fees +crypto.ov.exchanges,crypto_ov_sdk_helpers.exchanges, +crypto.ov.exmarkets,crypto_ov_coinpaprika_model.get_exchanges_market,crypto_ov_coinpaprika_view.display_exchange_markets +crypto.ov.exrates,crypto_ov_pycoingecko_model.get_exchange_rates,crypto_ov_pycoingecko_view.display_exchange_rates +crypto.ov.globe,crypto_ov_sdk_helpers.globe, +crypto.ov.hm,crypto_disc_pycoingecko_model.get_coins,crypto_ov_pycoingecko_view.display_crypto_heatmap +crypto.ov.hold,crypto_ov_pycoingecko_model.get_holdings_overview,crypto_ov_pycoingecko_view.display_holdings_overview +crypto.ov.indexes,crypto_ov_pycoingecko_model.get_indexes,crypto_ov_pycoingecko_view.display_indexes +crypto.ov.info,crypto_ov_coinpaprika_model.get_coins_info,crypto_ov_coinpaprika_view.display_all_coins_info +crypto.ov.markets,crypto_ov_coinpaprika_model.get_coins_market_info,crypto_ov_coinpaprika_view.display_all_coins_market_info +crypto.ov.news,crypto_ov_cryptopanic_model.get_news,crypto_ov_cryptopanic_view.display_news +crypto.ov.platforms,crypto_ov_coinpaprika_model.get_all_contract_platforms,crypto_ov_coinpaprika_view.display_all_platforms +crypto.ov.products,crypto_ov_pycoingecko_model.get_finance_products,crypto_ov_pycoingecko_view.display_products +crypto.ov.stables,crypto_ov_pycoingecko_model.get_stable_coins,crypto_ov_pycoingecko_view.display_stablecoins +crypto.ov.wf,crypto_ov_withdrawalfees_model.get_overall_withdrawal_fees,crypto_ov_withdrawalfees_view.display_overall_withdrawal_fees +crypto.ov.wfpe,crypto_ov_withdrawalfees_model.get_crypto_withdrawal_fees,crypto_ov_withdrawalfees_view.display_crypto_withdrawal_fees +crypto.price,crypto_pyth_model.get_price, +crypto.tools.apy,crypto_tools_model.calculate_apy,crypto_tools_view.display_apy +crypto.tools.il,crypto_tools_model.calculate_il,crypto_tools_view.display_il +econometrics.bgod,econometrics_regression_model.get_bgod,econometrics_regression_view.display_bgod +econometrics.bols,econometrics_regression_model.get_bols, +econometrics.bpag,econometrics_regression_model.get_bpag,econometrics_regression_view.display_bpag +econometrics.clean,econometrics_model.clean, +econometrics.coint,econometrics_model.get_coint_df,econometrics_view.display_cointegration_test +econometrics.comparison,econometrics_regression_model.get_comparison, +econometrics.dwat,econometrics_regression_model.get_dwat,econometrics_regression_view.display_dwat +econometrics.fdols,econometrics_regression_model.get_fdols, +econometrics.fe,econometrics_regression_model.get_fe, +econometrics.get_regression_data,econometrics_regression_model.get_regression_data, +econometrics.granger,econometrics_model.get_granger_causality,econometrics_view.display_granger +econometrics.load,common_model.load, +econometrics.norm,econometrics_model.get_normality,econometrics_view.display_norm +econometrics.ols,econometrics_regression_model.get_ols, +econometrics.options,econometrics_model.get_options,econometrics_view.show_options +econometrics.panel,econometrics_regression_model.get_regressions_results,econometrics_regression_view.display_panel +econometrics.pols,econometrics_regression_model.get_pols, +econometrics.re,econometrics_regression_model.get_re, +econometrics.root,econometrics_model.get_root,econometrics_view.display_root +economy.available_indices,economy_yfinance_model.get_available_indices, +economy.bigmac,economy_nasdaq_model.get_big_mac_indices,economy_nasdaq_view.display_big_mac_index +economy.country_codes,economy_nasdaq_model.get_country_codes, +economy.currencies,economy_wsj_model.global_currencies, +economy.events,economy_nasdaq_model.get_economic_calendar, +economy.fred,economy_fred_model.get_aggregated_series_data,economy_fred_view.display_fred_series +economy.fred_ids,economy_fred_model.get_series_ids, +economy.fred_notes,economy_fred_model.get_series_notes, +economy.future,economy_finviz_model.get_futures, +economy.futures,economy_sdk_helpers.futures, +economy.get_groups,economy_finviz_model.get_groups, +economy.glbonds,economy_wsj_model.global_bonds, +economy.index,economy_yfinance_model.get_indices,economy_yfinance_view.show_indices +economy.indices,economy_wsj_model.us_indices, +economy.macro,economy_econdb_model.get_aggregated_macro_data,economy_econdb_view.show_macro_data +economy.macro_countries,economy_econdb_model.get_macro_countries, +economy.macro_parameters,economy_econdb_model.get_macro_parameters, +economy.overview,economy_wsj_model.market_overview, +economy.perfmap,economy_finviz_model.get_performance_map, +economy.performance,economy_finviz_model.get_performance_data, +economy.rtps,economy_alphavantage_model.get_sector_data,economy_alphavantage_view.realtime_performance_sector +economy.search_index,economy_yfinance_model.get_search_indices, +economy.spectrum,economy_finviz_view.display_spectrum, +economy.treasury,economy_econdb_model.get_treasuries,economy_econdb_view.show_treasuries +economy.treasury_maturities,economy_econdb_model.get_treasury_maturities, +economy.usbonds,economy_wsj_model.us_bonds, +economy.valuation,economy_finviz_model.get_valuation_data, +economy.ycrv,economy_fred_model.get_yield_curve,economy_fred_view.display_yield_curve +etf.candle,stocks_helper.display_candle, +etf.compare,etf_stockanalysis_model.compare_etfs, +etf.disc.mover,etf_disc_wsj_model.etf_movers, +etf.etf_by_category,etf_financedatabase_model.get_etfs_by_category, +etf.etf_by_name,etf_stockanalysis_model.get_etfs_by_name, +etf.holdings,etf_stockanalysis_model.get_etf_holdings, +etf.ld,etf_financedatabase_model.get_etfs_by_description, +etf.ln,etf_financedatabase_model.get_etfs_by_name, +etf.load,stocks_helper.load, +etf.news,common_newsapi_model.get_news,common_newsapi_view.display_news +etf.overview,etf_stockanalysis_model.get_etf_overview, +etf.scr.screen,etf_scr_model.etf_screener,etf_scr_view.view_screener +etf.symbols,etf_stockanalysis_model.get_all_names_symbols, +etf.weights,etf_fmp_model.get_etf_sector_weightings, +forex.candle,forex_helper.display_candle, +forex.fwd,forex_fxempire_model.get_forward_rates, +forex.get_currency_list,forex_av_model.get_currency_list, +forex.load,forex_helper.load, +forex.oanda.calendar,forex_oanda_model.get_calendar_request,forex_oanda_view.calendar +forex.oanda.cancel,forex_oanda_model.cancel_pending_order_request,forex_oanda_view.cancel_pending_order +forex.oanda.candles,forex_oanda_model.get_candles_dataframe,forex_oanda_view.show_candles +forex.oanda.close,forex_oanda_model.close_trades_request,forex_oanda_view.close_trade +forex.oanda.listorders,forex_oanda_model.order_history_request,forex_oanda_view.list_orders +forex.oanda.openpositions,forex_oanda_model.open_positions_request,forex_oanda_view.get_open_positions +forex.oanda.opentrades,forex_oanda_model.open_trades_request,forex_oanda_view.get_open_trades +forex.oanda.order,forex_oanda_model.create_order_request,forex_oanda_view.create_order +forex.oanda.orderbook,forex_oanda_model.orderbook_plot_data_request,forex_oanda_view.get_order_book +forex.oanda.pending,forex_oanda_model.pending_orders_request,forex_oanda_view.get_pending_orders +forex.oanda.positionbook,forex_oanda_model.positionbook_plot_data_request,forex_oanda_view.get_position_book +forex.oanda.price,forex_oanda_model.fx_price_request,forex_oanda_view.get_fx_price +forex.oanda.summary,forex_oanda_model.account_summary_request,forex_oanda_view.get_account_summary +forex.quote,forex_sdk_helpers.quote, +futures.curve,futures_yfinance_model.get_curve_futures,futures_yfinance_view.display_curve +futures.historical,futures_sdk_model.get_historical,futures_yfinance_view.display_historical +futures.search,futures_yfinance_model.get_search_futures, +keys.av,keys_model.set_av_key, +keys.binance,keys_model.set_binance_key, +keys.bitquery,keys_model.set_bitquery_key, +keys.cmc,keys_model.set_cmc_key, +keys.coinbase,keys_model.set_coinbase_key, +keys.coinglass,keys_model.set_coinglass_key, +keys.cpanic,keys_model.set_cpanic_key, +keys.databento,keys_model.set_databento_key, +keys.degiro,keys_model.set_degiro_key, +keys.eodhd,keys_model.set_eodhd_key, +keys.ethplorer,keys_model.set_ethplorer_key, +keys.finnhub,keys_model.set_finnhub_key, +keys.fmp,keys_model.set_fmp_key, +keys.fred,keys_model.set_fred_key, +keys.get_keys_info,keys_model.get_keys_info, +keys.github,keys_model.set_github_key, +keys.glassnode,keys_model.set_glassnode_key, +keys.messari,keys_model.set_messari_key, +keys.mykeys,keys_model.get_keys, +keys.news,keys_model.set_news_key, +keys.oanda,keys_model.set_oanda_key, +keys.openbb,keys_model.set_openbb_personal_access_token, +keys.polygon,keys_model.set_polygon_key, +keys.quandl,keys_model.set_quandl_key, +keys.reddit,keys_model.set_reddit_key, +keys.rh,keys_model.set_rh_key, +keys.santiment,keys_model.set_santiment_key, +keys.set_keys,keys_model.set_keys, +keys.shroom,keys_model.set_shroom_key, +keys.smartstake,keys_model.set_smartstake_key, +keys.stocksera,keys_model.set_stocksera_key, +keys.tokenterminal,keys_model.set_tokenterminal_key, +keys.tradier,keys_model.set_tradier_key, +keys.twitter,keys_model.set_twitter_key, +keys.walert,keys_model.set_walert_key, +login,sdk_session.login, +logout,sdk_session.logout, +news,common_feedparser_model.get_news, +portfolio.alloc.assets,portfolio_model.get_assets_allocation, +portfolio.alloc.countries,portfolio_model.get_countries_allocation, +portfolio.alloc.regions,portfolio_model.get_regions_allocation, +portfolio.alloc.sectors,portfolio_model.get_sectors_allocation, +portfolio.bench,portfolio_model.set_benchmark, +portfolio.distr,portfolio_model.get_distribution_returns,portfolio_view.display_distribution_returns +portfolio.dret,portfolio_model.get_daily_returns,portfolio_view.display_daily_returns +portfolio.es,portfolio_model.get_es, +portfolio.holdp,portfolio_model.get_holdings_percentage,portfolio_view.display_holdings_percentage +portfolio.holdv,portfolio_model.get_holdings_value,portfolio_view.display_holdings_value +portfolio.load,portfolio_model.generate_portfolio, +portfolio.maxdd,portfolio_model.get_maximum_drawdown,portfolio_view.display_maximum_drawdown +portfolio.metric.calmar,portfolio_model.get_calmar_ratio, +portfolio.metric.commonsense,portfolio_model.get_common_sense_ratio, +portfolio.metric.gaintopain,portfolio_model.get_gaintopain_ratio, +portfolio.metric.information,portfolio_model.get_information_ratio, +portfolio.metric.jensens,portfolio_model.get_jensens_alpha, +portfolio.metric.kelly,portfolio_model.get_kelly_criterion, +portfolio.metric.kurtosis,portfolio_model.get_kurtosis, +portfolio.metric.maxdrawdown,portfolio_model.get_maximum_drawdown_ratio, +portfolio.metric.payoff,portfolio_model.get_payoff_ratio, +portfolio.metric.profitfactor,portfolio_model.get_profit_factor, +portfolio.metric.rsquare,portfolio_model.get_r2_score, +portfolio.metric.sharpe,portfolio_model.get_sharpe_ratio, +portfolio.metric.skew,portfolio_model.get_skewness, +portfolio.metric.sortino,portfolio_model.get_sortino_ratio, +portfolio.metric.tail,portfolio_model.get_tail_ratio, +portfolio.metric.trackerr,portfolio_model.get_tracking_error, +portfolio.metric.volatility,portfolio_model.get_volatility, +portfolio.mret,portfolio_model.get_monthly_returns,portfolio_view.display_monthly_returns +portfolio.om,portfolio_model.get_omega,portfolio_view.display_omega +portfolio.perf,portfolio_model.get_performance_vs_benchmark, +portfolio.rbeta,portfolio_model.get_rolling_beta,portfolio_view.display_rolling_beta +portfolio.rsharpe,portfolio_model.get_rolling_sharpe,portfolio_view.display_rolling_sharpe +portfolio.rsort,portfolio_model.get_rolling_sortino,portfolio_view.display_rolling_sortino +portfolio.rvol,portfolio_model.get_rolling_volatility,portfolio_view.display_rolling_volatility +portfolio.show,portfolio_model.get_transactions, +portfolio.summary,portfolio_model.get_summary, +portfolio.var,portfolio_model.get_var, +portfolio.yret,portfolio_model.get_yearly_returns,portfolio_view.display_yearly_returns +qa.acf,common_qa_view.display_acf, +qa.bw,common_qa_view.display_bw, +qa.calculate_adjusted_var,common_qa_model.calculate_adjusted_var, +qa.cdf,common_qa_view.display_cdf, +qa.cusum,common_qa_view.display_cusum, +qa.decompose,common_qa_model.get_seasonal_decomposition, +qa.es,common_qa_model.get_es,common_qa_view.display_es +qa.hist,common_qa_view.display_hist, +qa.kurtosis,common_qa_rolling_model.get_kurtosis,common_qa_rolling_view.display_kurtosis +qa.line,common_qa_view.display_line, +qa.normality,common_qa_model.get_normality,common_qa_view.display_normality +qa.omega,common_qa_model.get_omega,common_qa_view.display_omega +qa.qqplot,common_qa_view.display_qqplot, +qa.quantile,common_qa_rolling_model.get_quantile,common_qa_rolling_view.display_quantile +qa.rolling,common_qa_rolling_model.get_rolling_avg,common_qa_rolling_view.display_mean_std +qa.sharpe,common_qa_model.get_sharpe,common_qa_view.display_sharpe +qa.skew,common_qa_rolling_model.get_skew,common_qa_rolling_view.display_skew +qa.sortino,common_qa_model.get_sortino,common_qa_view.display_sortino +qa.spread,common_qa_rolling_model.get_spread,common_qa_rolling_view.display_spread +qa.summary,common_qa_model.get_summary,common_qa_view.display_summary +qa.unitroot,common_qa_model.get_unitroot,common_qa_view.display_unitroot +qa.var,common_qa_model.get_var,common_qa_view.display_var +stocks.ba.bullbear,stocks_ba_stocktwits_model.get_bullbear, +stocks.ba.cnews,stocks_ba_finnhub_model.get_company_news, +stocks.ba.getdd,stocks_ba_reddit_model.get_due_dilligence, +stocks.ba.headlines,stocks_ba_finbrain_model.get_sentiment,stocks_ba_finbrain_view.display_sentiment_analysis +stocks.ba.infer,stocks_ba_twitter_model.load_analyze_tweets,stocks_ba_twitter_view.display_inference +stocks.ba.mentions,stocks_ba_google_model.get_mentions,stocks_ba_google_view.display_mentions +stocks.ba.messages,stocks_ba_stocktwits_model.get_messages, +stocks.ba.popular,stocks_ba_reddit_model.get_popular_tickers, +stocks.ba.queries,stocks_ba_google_model.get_queries, +stocks.ba.redditsent,stocks_ba_reddit_model.get_posts_about, +stocks.ba.regions,stocks_ba_google_model.get_regions,stocks_ba_google_view.display_regions +stocks.ba.rise,stocks_ba_google_model.get_rise, +stocks.ba.sentiment,stocks_ba_twitter_model.get_sentiment,stocks_ba_twitter_view.display_sentiment +stocks.ba.snews,stocks_ba_finnhub_model.get_headlines_sentiment,stocks_ba_finnhub_view.display_stock_price_headlines_sentiment +stocks.ba.spac,stocks_ba_reddit_model.get_spac, +stocks.ba.spacc,stocks_ba_reddit_model.get_spac_community, +stocks.ba.stalker,stocks_ba_stocktwits_model.get_stalker, +stocks.ba.text_sent,stocks_ba_reddit_model.get_sentiment, +stocks.ba.trending,stocks_ba_stocktwits_model.get_trending, +stocks.ba.watchlist,stocks_ba_reddit_model.get_watchlists, +stocks.ba.wsb,stocks_ba_reddit_model.get_wsb_community, +stocks.ca.balance,stocks_ca_marketwatch_model.get_balance_comparison, +stocks.ca.cashflow,stocks_ca_marketwatch_model.get_cashflow_comparison, +stocks.ca.hcorr,stocks_ca_yahoo_finance_model.get_correlation,stocks_ca_yahoo_finance_view.display_correlation +stocks.ca.hist,stocks_ca_yahoo_finance_model.get_historical,stocks_ca_yahoo_finance_view.display_historical +stocks.ca.income,stocks_ca_marketwatch_model.get_income_comparison,stocks_ca_marketwatch_view.display_income_comparison +stocks.ca.scorr,stocks_ca_finbrain_model.get_sentiment_correlation,stocks_ca_finbrain_view.display_sentiment_correlation +stocks.ca.screener,stocks_ca_finviz_compare_model.get_comparison_data, +stocks.ca.sentiment,stocks_ca_finbrain_model.get_sentiments,stocks_ca_finbrain_view.display_sentiment_compare +stocks.ca.similar,stocks_ca_sdk_helpers.get_similar, +stocks.ca.volume,stocks_ca_yahoo_finance_model.get_volume,stocks_ca_yahoo_finance_view.display_volume +stocks.candle,stocks_helper.display_candle, +stocks.disc.active,stocks_disc_yahoofinance_model.get_active, +stocks.disc.arkord,stocks_disc_ark_model.get_ark_orders, +stocks.disc.asc,stocks_disc_yahoofinance_model.get_asc, +stocks.disc.dividends,stocks_disc_nasdaq_model.get_dividend_cal, +stocks.disc.filings,stocks_fa_fmp_model.get_filings,stocks_disc_fmp_view.display_filings +stocks.disc.fipo,stocks_disc_finnhub_model.get_future_ipo, +stocks.disc.gainers,stocks_disc_yahoofinance_model.get_gainers, +stocks.disc.gtech,stocks_disc_yahoofinance_model.get_gtech, +stocks.disc.hotpenny,stocks_disc_shortinterest_model.get_today_hot_penny_stocks, +stocks.disc.ipo,stocks_disc_finnhub_model.get_ipo_calendar, +stocks.disc.losers,stocks_disc_yahoofinance_model.get_losers, +stocks.disc.lowfloat,stocks_disc_shortinterest_model.get_low_float, +stocks.disc.news,stocks_disc_seeking_alpha_model.get_news, +stocks.disc.pipo,stocks_disc_finnhub_model.get_past_ipo, +stocks.disc.rtat,stocks_disc_nasdaq_model.get_retail_tickers, +stocks.disc.trending,stocks_disc_seeking_alpha_model.get_trending_list, +stocks.disc.ugs,stocks_disc_yahoofinance_model.get_ugs, +stocks.disc.ulc,stocks_disc_yahoofinance_model.get_ulc, +stocks.disc.upcoming,stocks_disc_seeking_alpha_model.get_next_earnings, +stocks.dps.ctb,stocks_dps_ibkr_model.get_cost_to_borrow, +stocks.dps.dpotc,stocks_dps_finra_model.getTickerFINRAdata,stocks_dps_finra_view.darkpool_ats_otc +stocks.dps.ftd,stocks_dps_sec_model.get_fails_to_deliver,stocks_dps_sec_view.fails_to_deliver +stocks.dps.hsi,stocks_dps_shortinterest_model.get_high_short_interest, +stocks.dps.pos,stocks_dps_stockgrid_model.get_dark_pool_short_positions, +stocks.dps.prom,stocks_dps_finra_model.getATSdata,stocks_dps_finra_view.darkpool_otc +stocks.dps.psi_q,stocks_dps_quandl_model.get_short_interest,stocks_dps_quandl_view.short_interest +stocks.dps.psi_sg,stocks_dps_stockgrid_model.get_short_interest_volume,stocks_dps_stockgrid_view.short_interest_volume +stocks.dps.shorted,stocks_dps_yahoofinance_model.get_most_shorted, +stocks.dps.sidtc,stocks_dps_stockgrid_model.get_short_interest_days_to_cover, +stocks.dps.spos,stocks_dps_stockgrid_model.get_net_short_position,stocks_dps_stockgrid_view.net_short_position +stocks.fa.analysis,stocks_fa_eclect_us_model.get_filings_analysis, +stocks.fa.analyst,stocks_fa_finviz_model.get_analyst_data, +stocks.fa.balance,stocks_fa_sdk_helpers.get_balance_sheet, +stocks.fa.cal,stocks_fa_yahoo_finance_model.get_calendar_earnings, +stocks.fa.cash,stocks_fa_sdk_helpers.get_cash_flow, +stocks.fa.customer,stocks_fa_csimarket_model.get_customers, +stocks.fa.data,stocks_fa_finviz_model.get_data, +stocks.fa.dcf,stocks_fa_fmp_model.get_dcf, +stocks.fa.dcfc,stocks_fa_fmp_model.get_dcf, +stocks.fa.divs,stocks_fa_yahoo_finance_model.get_dividends,stocks_fa_yahoo_finance_view.display_dividends +stocks.fa.dupont,stocks_fa_av_model.get_dupont, +stocks.fa.earnings,stocks_fa_sdk_helpers.earnings, +stocks.fa.enterprise,stocks_fa_fmp_model.get_enterprise, +stocks.fa.epsfc,stocks_fa_seeking_alpha_model.get_estimates_eps, +stocks.fa.est,stocks_fa_business_insider_model.get_estimates, +stocks.fa.fama_coe,stocks_fa_dcf_model.get_fama_coe, +stocks.fa.fama_raw,stocks_fa_dcf_model.get_fama_raw, +stocks.fa.fraud,stocks_fa_av_model.get_fraud_ratios, +stocks.fa.growth,stocks_fa_fmp_model.get_financial_growth, +stocks.fa.historical_5,stocks_fa_dcf_model.get_historical_5, +stocks.fa.income,stocks_fa_sdk_helpers.get_income_statement, +stocks.fa.info,stocks_fa_yahoo_finance_model.get_info, +stocks.fa.key,stocks_fa_av_model.get_key_metrics, +stocks.fa.metrics,stocks_fa_fmp_model.get_key_metrics, +stocks.fa.mgmt,stocks_fa_business_insider_model.get_management, +stocks.fa.mktcap,stocks_fa_yahoo_finance_model.get_mktcap,stocks_fa_yahoo_finance_view.display_mktcap +stocks.fa.news,stocks_fa_finviz_model.get_news, +stocks.fa.overview,stocks_fa_av_model.get_overview, +stocks.fa.profile,stocks_fa_fmp_model.get_profile, +stocks.fa.pt,stocks_fa_business_insider_model.get_price_target_from_analysts,stocks_fa_business_insider_view.price_target_from_analysts +stocks.fa.rating,stocks_fa_fmp_model.get_rating, +stocks.fa.ratios,stocks_fa_fmp_model.get_key_ratios, +stocks.fa.revfc,stocks_fa_seeking_alpha_model.get_estimates_rev, +stocks.fa.rot,stocks_fa_finnhub_model.get_rating_over_time,stocks_fa_finnhub_view.rating_over_time +stocks.fa.score,stocks_fa_fmp_model.get_score, +stocks.fa.sec,stocks_fa_marketwatch_model.get_sec_filings, +stocks.fa.sec_fmp,stocks_fa_fmp_model.get_filings,stocks_fa_fmp_view.display_filings +stocks.fa.shrs,stocks_fa_yahoo_finance_model.get_shareholders, +stocks.fa.similar_dfs,stocks_fa_dcf_model.get_similar_dfs, +stocks.fa.splits,stocks_fa_yahoo_finance_model.get_splits,stocks_fa_yahoo_finance_view.display_splits +stocks.fa.supplier,stocks_fa_csimarket_model.get_suppliers, +stocks.gov.contracts,stocks_gov_quiverquant_model.get_contracts,stocks_gov_quiverquant_view.display_contracts +stocks.gov.government_trading,stocks_gov_quiverquant_model.get_government_trading, +stocks.gov.gtrades,stocks_gov_quiverquant_model.get_cleaned_government_trading,stocks_gov_quiverquant_view.display_government_trading +stocks.gov.histcont,stocks_gov_quiverquant_model.get_hist_contracts,stocks_gov_quiverquant_view.display_hist_contracts +stocks.gov.lastcontracts,stocks_gov_quiverquant_model.get_last_contracts,stocks_gov_quiverquant_view.display_last_contracts +stocks.gov.lasttrades,stocks_gov_quiverquant_model.get_last_government, +stocks.gov.lobbying,stocks_gov_quiverquant_model.get_lobbying, +stocks.gov.qtrcontracts,stocks_gov_quiverquant_model.get_qtr_contracts,stocks_gov_quiverquant_view.display_qtr_contracts +stocks.gov.topbuys,stocks_gov_quiverquant_model.get_government_buys,stocks_gov_quiverquant_view.display_government_buys +stocks.gov.toplobbying,stocks_gov_quiverquant_model.get_top_lobbying,stocks_gov_quiverquant_view.display_top_lobbying +stocks.gov.topsells,stocks_gov_quiverquant_model.get_government_sells,stocks_gov_quiverquant_view.display_government_sells +stocks.ins.act,stocks_insider_businessinsider_model.get_insider_activity,stocks_insider_businessinsider_view.insider_activity +stocks.ins.blcp,stocks_insider_sdk_helper.blcp, +stocks.ins.blcs,stocks_insider_sdk_helper.blcs, +stocks.ins.blip,stocks_insider_sdk_helper.blip, +stocks.ins.blis,stocks_insider_sdk_helper.blis, +stocks.ins.blop,stocks_insider_sdk_helper.blop, +stocks.ins.blos,stocks_insider_sdk_helper.blos, +stocks.ins.filter,stocks_insider_sdk_helper.insider_filter, +stocks.ins.lcb,stocks_insider_sdk_helper.lcb, +stocks.ins.lins,stocks_insider_finviz_model.get_last_insider_activity,stocks_insider_finviz_view.last_insider_activity +stocks.ins.lip,stocks_insider_sdk_helper.lip, +stocks.ins.lis,stocks_insider_sdk_helper.lis, +stocks.ins.lit,stocks_insider_sdk_helper.lit, +stocks.ins.lpsb,stocks_insider_sdk_helper.lpsb, +stocks.ins.print_insider_data,stocks_insider_openinsider_model.get_print_insider_data,stocks_insider_openinsider_view.print_insider_data +stocks.ins.stats,stocks_insider_sdk_helper.stats, +stocks.load,stocks_helper.load, +stocks.options.chains,stocks_options_sdk_helper.get_full_option_chain, +stocks.options.dte,stocks_options_yfinance_model.get_dte, +stocks.options.eodchain,stocks_options_intrinio_model.get_full_chain_eod, +stocks.options.expirations,stocks_options_sdk_helper.get_option_expirations, +stocks.options.generate_data,stocks_options_yfinance_model.generate_data, +stocks.options.grhist,stocks_options_screen_syncretism_model.get_historical_greeks,stocks_options_screen_syncretism_view.view_historical_greeks +stocks.options.hist,stocks_options_sdk_helper.hist, +stocks.options.info,stocks_options_barchart_model.get_options_info,stocks_options_barchart_view.print_options_data +stocks.options.last_price,stocks_options_tradier_model.get_last_price, +stocks.options.oi,stocks_options_view.plot_oi, +stocks.options.pcr,stocks_options_alphaquery_model.get_put_call_ratio,stocks_options_alphaquery_view.display_put_call_ratio +stocks.options.price,stocks_options_sdk_helper.get_option_current_price, +stocks.options.screen.check_presets,stocks_options_screen_syncretism_model.check_presets, +stocks.options.screen.screener_output,stocks_options_screen_syncretism_model.get_screener_output,stocks_options_screen_syncretism_view.view_screener_output +stocks.options.unu,stocks_options_fdscanner_model.unusual_options,stocks_options_fdscanner_view.display_options +stocks.options.voi,stocks_options_view.plot_voi, +stocks.options.vol,stocks_options_view.plot_vol, +stocks.options.vsurf,stocks_options_yfinance_model.get_iv_surface,stocks_options_yfinance_view.display_vol_surface +stocks.process_candle,stocks_helper.process_candle, +stocks.qa.beta,stocks_qa_beta_model.beta_model,stocks_qa_beta_view.beta_view +stocks.qa.capm,stocks_qa_factors_model.capm_information, +stocks.qa.fama_raw,stocks_qa_factors_model.get_fama_raw, +stocks.qa.historical_5,stocks_qa_factors_model.get_historical_5, +stocks.quote,stocks_model.get_quote, +stocks.screener.arktrades,stocks_screener_ark_model.get_ark_trades_by_ticker, +stocks.screener.historical,stocks_screener_yahoofinance_model.historical,stocks_screener_yahoofinance_view.historical +stocks.screener.screener_data,stocks_screener_finviz_model.get_screener_data,stocks_screener_finviz_view.screener +stocks.search,stocks_helper.search, +stocks.sia.countries,stocks_sia_financedatabase_model.get_countries, +stocks.sia.cpci,stocks_sia_financedatabase_model.get_companies_per_country_in_industry,stocks_sia_financedatabase_view.display_companies_per_country_in_industry +stocks.sia.cpcs,stocks_sia_financedatabase_model.get_companies_per_country_in_sector,stocks_sia_financedatabase_view.display_companies_per_country_in_sector +stocks.sia.cpic,stocks_sia_financedatabase_model.get_companies_per_industry_in_country,stocks_sia_financedatabase_view.display_companies_per_industry_in_country +stocks.sia.cpis,stocks_sia_financedatabase_model.get_companies_per_industry_in_sector,stocks_sia_financedatabase_view.display_companies_per_industry_in_sector +stocks.sia.cps,stocks_sia_financedatabase_model.get_companies_per_sector_in_country,stocks_sia_financedatabase_view.display_companies_per_sector_in_country +stocks.sia.filter_stocks,stocks_sia_financedatabase_model.filter_stocks, +stocks.sia.industries,stocks_sia_financedatabase_model.get_industries, +stocks.sia.maketcap,stocks_sia_financedatabase_model.get_marketcap, +stocks.sia.marketcap,stocks_sia_financedatabase_model.get_marketcap, +stocks.sia.sectors,stocks_sia_financedatabase_model.get_sectors, +stocks.sia.stocks_data,stocks_sia_stockanalysis_model.get_stocks_data, +stocks.ta.recom,stocks_ta_tradingview_model.get_tradingview_recommendation,stocks_ta_tradingview_view.print_recommendation +stocks.ta.rsp,stocks_ta_rsp_model.get_rsp,stocks_ta_rsp_view.display_rsp +stocks.ta.summary,stocks_ta_finbrain_model.get_technical_summary_report,stocks_ta_finbrain_view.technical_summary_report +stocks.ta.view,stocks_ta_finviz_model.get_finviz_image,stocks_ta_finviz_view.view +stocks.th.all,stocks_th_bursa_model.get_all,stocks_th_bursa_view.display_all +stocks.th.check_if_open,stocks_th_bursa_model.check_if_open, +stocks.th.closed,stocks_th_bursa_model.get_closed,stocks_th_bursa_view.display_closed +stocks.th.exchange,stocks_th_bursa_model.get_bursa,stocks_th_bursa_view.display_exchange +stocks.th.open,stocks_th_bursa_model.get_open,stocks_th_bursa_view.display_open +stocks.tob,stocks_cboe_model.get_top_of_book, +ta.ad,common_ta_volume_model.ad,common_ta_volume_view.display_ad +ta.adosc,common_ta_volume_model.adosc,common_ta_volume_view.display_adosc +ta.adx,common_ta_trend_indicators_model.adx,common_ta_trend_indicators_view.display_adx +ta.aroon,common_ta_trend_indicators_model.aroon,common_ta_trend_indicators_view.display_aroon +ta.atr,common_ta_volatility_model.atr,common_ta_volatility_view.display_atr +ta.bbands,common_ta_volatility_model.bbands,common_ta_volatility_view.display_bbands +ta.cci,common_ta_momentum_model.cci,common_ta_momentum_view.display_cci +ta.cg,common_ta_momentum_model.cg,common_ta_momentum_view.display_cg +ta.clenow,common_ta_momentum_model.clenow_momentum,common_ta_momentum_view.display_clenow_momentum +ta.demark,common_ta_momentum_model.demark_seq,common_ta_momentum_view.display_demark +ta.donchian,common_ta_volatility_model.donchian,common_ta_volatility_view.display_donchian +ta.ema,common_ta_overlap_model.ema, +ta.fib,common_ta_custom_indicators_model.calculate_fib_levels,common_ta_custom_indicators_view.fibonacci_retracement +ta.fisher,common_ta_momentum_model.fisher,common_ta_momentum_view.display_fisher +ta.hma,common_ta_overlap_model.hma, +ta.kc,common_ta_volatility_model.kc,common_ta_volatility_view.view_kc +ta.ma,common_ta_overlap_view.view_ma,common_ta_overlap_view.view_ma +ta.macd,common_ta_momentum_model.macd,common_ta_momentum_view.display_macd +ta.obv,common_ta_volume_model.obv,common_ta_volume_view.display_obv +ta.rsi,common_ta_momentum_model.rsi,common_ta_momentum_view.display_rsi +ta.sma,common_ta_overlap_model.sma, +ta.stoch,common_ta_momentum_model.stoch,common_ta_momentum_view.display_stoch +ta.vwap,common_ta_overlap_model.vwap,common_ta_overlap_view.view_vwap +ta.wma,common_ta_overlap_model.wma, +ta.zlma,common_ta_overlap_model.zlma, +whoami,sdk_session.whoami, diff --git a/openbb_terminal/sdk_core/trail_map_forecasting.csv b/openbb_terminal/sdk_core/trail_map_forecasting.csv index 3fabf7d3d25..0f9cf139377 100644 --- a/openbb_terminal/sdk_core/trail_map_forecasting.csv +++ b/openbb_terminal/sdk_core/trail_map_forecasting.csv @@ -1,39 +1,39 @@ -trail,model,view -forecast.anom,forecast_anom_model.get_anomaly_detection_data,forecast_anom_view.display_anomaly_detection -forecast.atr,forecast_model.add_atr, -forecast.autoarima,forecast_autoarima_model.get_autoarima_data,forecast_autoarima_view.display_autoarima_forecast -forecast.autoces,forecast_autoces_model.get_autoces_data,forecast_autoces_view.display_autoces_forecast -forecast.autoets,forecast_autoets_model.get_autoets_data,forecast_autoets_view.display_autoets_forecast -forecast.autoselect,forecast_autoselect_model.get_autoselect_data,forecast_autoselect_view.display_autoselect_forecast -forecast.brnn,forecast_brnn_model.get_brnn_data,forecast_brnn_view.display_brnn_forecast -forecast.clean,forecast_model.clean, -forecast.combine,forecast_model.combine_dfs, -forecast.corr,forecast_model.corr_df,forecast_view.display_corr -forecast.delete,forecast_model.delete_column, -forecast.delta,forecast_model.add_delta, -forecast.desc,forecast_model.describe_df,forecast_view.describe_df -forecast.ema,forecast_model.add_ema, -forecast.expo,forecast_expo_model.get_expo_data,forecast_expo_view.display_expo_forecast -forecast.export,forecast_view.export_df, -forecast.linregr,forecast_linregr_model.get_linear_regression_data,forecast_linregr_view.display_linear_regression -forecast.load,common_model.load, -forecast.mom,forecast_model.add_momentum, -forecast.mstl,forecast_mstl_model.get_mstl_data,forecast_mstl_view.display_mstl_forecast -forecast.nbeats,forecast_nbeats_model.get_NBEATS_data,forecast_nbeats_view.display_nbeats_forecast -forecast.nhits,forecast_nhits_model.get_nhits_data,forecast_nhits_view.display_nhits_forecast -forecast.plot,forecast_view.display_plot,forecast_view.display_plot -forecast.regr,forecast_regr_model.get_regression_data,forecast_regr_view.display_regression -forecast.rename,forecast_model.rename_column, -forecast.rnn,forecast_rnn_model.get_rnn_data,forecast_rnn_view.display_rnn_forecast -forecast.roc,forecast_model.add_roc, -forecast.rsi,forecast_model.add_rsi, -forecast.rwd,forecast_rwd_model.get_rwd_data,forecast_rwd_view.display_rwd_forecast -forecast.season,,forecast_view.display_seasonality -forecast.seasonalnaive,forecast_seasonalnaive_model.get_seasonalnaive_data,forecast_seasonalnaive_view.display_seasonalnaive_forecast -forecast.show,forecast_view.show_df, -forecast.signal,forecast_model.add_signal, -forecast.sto,forecast_model.add_sto, -forecast.tcn,forecast_tcn_model.get_tcn_data,forecast_tcn_view.display_tcn_forecast -forecast.tft,forecast_tft_model.get_tft_data,forecast_tft_view.display_tft_forecast -forecast.theta,forecast_theta_model.get_theta_data,forecast_theta_view.display_theta_forecast -forecast.trans,forecast_trans_model.get_trans_data,forecast_trans_view.display_trans_forecast +trail,model,view +forecast.anom,forecast_anom_model.get_anomaly_detection_data,forecast_anom_view.display_anomaly_detection +forecast.atr,forecast_model.add_atr, +forecast.autoarima,forecast_autoarima_model.get_autoarima_data,forecast_autoarima_view.display_autoarima_forecast +forecast.autoces,forecast_autoces_model.get_autoces_data,forecast_autoces_view.display_autoces_forecast +forecast.autoets,forecast_autoets_model.get_autoets_data,forecast_autoets_view.display_autoets_forecast +forecast.autoselect,forecast_autoselect_model.get_autoselect_data,forecast_autoselect_view.display_autoselect_forecast +forecast.brnn,forecast_brnn_model.get_brnn_data,forecast_brnn_view.display_brnn_forecast +forecast.clean,forecast_model.clean, +forecast.combine,forecast_model.combine_dfs, +forecast.corr,forecast_model.corr_df,forecast_view.display_corr +forecast.delete,forecast_model.delete_column, +forecast.delta,forecast_model.add_delta, +forecast.desc,forecast_model.describe_df,forecast_view.describe_df +forecast.ema,forecast_model.add_ema, +forecast.expo,forecast_expo_model.get_expo_data,forecast_expo_view.display_expo_forecast +forecast.export,forecast_view.export_df, +forecast.linregr,forecast_linregr_model.get_linear_regression_data,forecast_linregr_view.display_linear_regression +forecast.load,common_model.load, +forecast.mom,forecast_model.add_momentum, +forecast.mstl,forecast_mstl_model.get_mstl_data,forecast_mstl_view.display_mstl_forecast +forecast.nbeats,forecast_nbeats_model.get_NBEATS_data,forecast_nbeats_view.display_nbeats_forecast +forecast.nhits,forecast_nhits_model.get_nhits_data,forecast_nhits_view.display_nhits_forecast +forecast.plot,forecast_view.display_plot,forecast_view.display_plot +forecast.regr,forecast_regr_model.get_regression_data,forecast_regr_view.display_regression +forecast.rename,forecast_model.rename_column, +forecast.rnn,forecast_rnn_model.get_rnn_data,forecast_rnn_view.display_rnn_forecast +forecast.roc,forecast_model.add_roc, +forecast.rsi,forecast_model.add_rsi, +forecast.rwd,forecast_rwd_model.get_rwd_data,forecast_rwd_view.display_rwd_forecast +forecast.season,,forecast_view.display_seasonality +forecast.seasonalnaive,forecast_seasonalnaive_model.get_seasonalnaive_data,forecast_seasonalnaive_view.display_seasonalnaive_forecast +forecast.show,forecast_view.show_df, +forecast.signal,forecast_model.add_signal, +forecast.sto,forecast_model.add_sto, +forecast.tcn,forecast_tcn_model.get_tcn_data,forecast_tcn_view.display_tcn_forecast +forecast.tft,forecast_tft_model.get_tft_data,forecast_tft_view.display_tft_forecast +forecast.theta,forecast_theta_model.get_theta_data,forecast_theta_view.display_theta_forecast +forecast.trans,forecast_trans_model.get_trans_data,forecast_trans_view.display_trans_forecast diff --git a/openbb_terminal/sdk_core/trail_map_optimization.csv b/openbb_terminal/sdk_core/trail_map_optimization.csv index 1e400f40d93..577ae0b4e69 100644 --- a/openbb_terminal/sdk_core/trail_map_optimization.csv +++ b/openbb_terminal/sdk_core/trail_map_optimization.csv @@ -1,19 +1,19 @@ -trail,model,view -portfolio.po.blacklitterman,portfolio_optimization_po_model.get_blacklitterman, -portfolio.po.ef,portfolio_optimization_po_model.get_ef,portfolio_optimization_po_view.display_ef -portfolio.po.file,portfolio_optimization_po_model.load_parameters_file, -portfolio.po.herc,portfolio_optimization_po_model.get_herc, -portfolio.po.hrp,portfolio_optimization_po_model.get_hrp, -portfolio.po.load,portfolio_optimization_po_model.generate_portfolio, -portfolio.po.load_bl_views,portfolio_optimization_excel_model.load_bl_views, -portfolio.po.maxdecorr,portfolio_optimization_po_model.get_maxdecorr, -portfolio.po.maxdiv,portfolio_optimization_po_model.get_maxdiv, -portfolio.po.maxret,portfolio_optimization_po_model.get_maxret, -portfolio.po.maxsharpe,portfolio_optimization_po_model.get_maxsharpe, -portfolio.po.maxutil,portfolio_optimization_po_model.get_maxutil, -portfolio.po.minrisk,portfolio_optimization_po_model.get_minrisk, -portfolio.po.nco,portfolio_optimization_po_model.get_nco, -portfolio.po.plot,portfolio_optimization_po_view.display_plot,portfolio_optimization_po_view.display_plot -portfolio.po.relriskparity,portfolio_optimization_po_model.get_relriskparity, -portfolio.po.riskparity,portfolio_optimization_po_model.get_riskparity, -portfolio.po.show,portfolio_optimization_po_model.show, +trail,model,view +portfolio.po.blacklitterman,portfolio_optimization_po_model.get_blacklitterman, +portfolio.po.ef,portfolio_optimization_po_model.get_ef,portfolio_optimization_po_view.display_ef +portfolio.po.file,portfolio_optimization_po_model.load_parameters_file, +portfolio.po.herc,portfolio_optimization_po_model.get_herc, +portfolio.po.hrp,portfolio_optimization_po_model.get_hrp, +portfolio.po.load,portfolio_optimization_po_model.generate_portfolio, +portfolio.po.load_bl_views,portfolio_optimization_excel_model.load_bl_views, +portfolio.po.maxdecorr,portfolio_optimization_po_model.get_maxdecorr, +portfolio.po.maxdiv,portfolio_optimization_po_model.get_maxdiv, +portfolio.po.maxret,portfolio_optimization_po_model.get_maxret, +portfolio.po.maxsharpe,portfolio_optimization_po_model.get_maxsharpe, +portfolio.po.maxutil,portfolio_optimization_po_model.get_maxutil, +portfolio.po.minrisk,portfolio_optimization_po_model.get_minrisk, +portfolio.po.nco,portfolio_optimization_po_model.get_nco, +portfolio.po.plot,portfolio_optimization_po_view.display_plot,portfolio_optimization_po_view.display_plot +portfolio.po.relriskparity,portfolio_optimization_po_model.get_relriskparity, +portfolio.po.riskparity,portfolio_optimization_po_model.get_riskparity, +portfolio.po.show,portfolio_optimization_po_model.show, diff --git a/openbb_terminal/stocks/databento_model.py b/openbb_terminal/stocks/databento_model.py new file mode 100644 index 00000000000..392b7ca4afa --- /dev/null +++ b/openbb_terminal/stocks/databento_model.py @@ -0,0 +1,154 @@ +__docformat__ = "numpy" +import logging +from datetime import datetime, timedelta +from io import StringIO + +import pandas as pd +import requests +from pydantic import BaseModel + +from openbb_terminal import config_terminal as cfg +from openbb_terminal.decorators import check_api_key, log_start_end +from openbb_terminal.helper_funcs import request +from openbb_terminal.rich_config import console + +logger = logging.getLogger(__name__) + +# pylint:disable=too-few-public-methods + + +class DataBento(BaseModel): + symbol: str + exchange: str = "XNAS.ITCH" + stype: str = "native" + start: str = (datetime.now() - timedelta(days=365)).strftime("%Y-%m-%d") + end: str = datetime.now().strftime("%Y-%m-%d") + + class Config: + arbitrary_types_allowed = True + + def get_historical_stock(self): + """Gets historical EOD stock data from DataBento. Currnetly, just NASDAQ is supported. + Note that only nonadjusted data is available.""" + self.exchange = "XNAS.ITCH" + self.stype = "native" + if not self.validate_symbol(): + return pd.DataFrame() + return self.get_historical() + + def validate_symbol(self): + """Validates the symbol is supported by DataBento. There is no API for this, so we will use their + Symbology endpoint to see if something exists. Doing a long time range can make this request on the order of + one minute, so try to keep smaller requests.""" + base_url = "https://hist.databento.com/v0/symbology.resolve" + params = { + "dataset": self.exchange, + "symbols": self.symbol, + "start_date": self.start, + "end_date": self.end, + "stype_in": "smart", + "stype_out": "product_id", + } + auth = requests.auth.HTTPBasicAuth(cfg.API_DATABENTO_KEY, "") + # This seems to only work for futures? Assume the user is entering correct stock ticker + if self.exchange == "XNAS.ITCH": + return True + result = request(base_url, params=params, auth=auth, timeout=30) + if "message" not in result.json(): + console.print( + "Issue validating symbol in the date range. Please check with DataBento for symbology." + ) + return False + return result.json()["message"] != "Not found" + + def get_historical_futures(self): + """Gets historical EODfutures data from DataBento. Currently, just CME is supported. + Note this gets the highest volume contract each day""" + self.exchange = "GLBX.MDP3" + self.stype = "smart" + if not self.validate_symbol(): + return pd.DataFrame() + return self.get_historical() + + @log_start_end(log=logger) + @check_api_key(["API_DATABENTO_KEY"]) + def get_historical(self) -> pd.DataFrame: + """Prepares the request to be made. I am using their https interface instead of their python client. + Their next update will change symbol.V.0 to symbol.C.0""" + + base_url = "https://hist.databento.com/v0/timeseries.stream" + symbol = self.symbol + ".V.0" if self.exchange == "GLBX.MDP3" else self.symbol + params = { + "dataset": self.exchange, + "symbols": symbol, + "schema": "ohlcv-1d", + "start": self.start, + "end": self.end, + "stype_in": self.stype, + "encoding": "csv", + } + auth = requests.auth.HTTPBasicAuth(cfg.API_DATABENTO_KEY, "") + data = self.process_request(base_url, params, auth) + if data.empty: + console.print(f"No data found for symbol `{self.symbol}`.") + return data + + def process_request(self, base_url, params, auth) -> pd.DataFrame: + """Takes the request and returns the adjusted dataframe""" + r = request(base_url, params=params, auth=auth) + if r.status_code != 200: + raise Exception(f"Error: Status Code {r.status_code}") + df = pd.read_csv(StringIO(r.text)) + df["time"] = pd.to_datetime(df.ts_event, unit="ns") + df[["open", "high", "low", "close"]] /= 1_000_000_000 + df = df.drop(columns=["ts_event", "publisher_id", "product_id"]).set_index( + "time" + ) + df = df.rename( + columns={ + "open": "Open", + "high": "High", + "low": "Low", + "close": "Close", + "volume": "Volume", + } + ) + return df + + +@log_start_end(log=logger) +@check_api_key(["API_DATABENTO_KEY"]) +def get_historical_stock(symbol: str, start_date: str, end_date: str) -> pd.DataFrame: + """Gets historical EOD data from DataBento. Currently, just NASDAQ is supported. + + Parameters + ---------- + symbol : str + Symbol to get data for + start_date : str + Start date of data + end_date : str + End date to get data for + + """ + db = DataBento(symbol=symbol, start=start_date, end=end_date) + return db.get_historical_stock() + + +@log_start_end(log=logger) +@check_api_key(["API_DATABENTO_KEY"]) +def get_historical_futures(symbol: str, start_date: str, end_date: str) -> pd.DataFrame: + """Gets historical EODfutures data from DataBento. Currently, just CME is supported. + + Parameters + ---------- + symbol : str + Symbol to get data for + start_date : str + Start date of data + end_date : str + End date to get data for + + """ + db = DataBento(symbol=symbol, start=start_date, end=end_date) + return db.get_historical_futures() diff --git a/openbb_terminal/stocks/stocks_helper.py b/openbb_terminal/stocks/stocks_helper.py index 5c39d7e8cba..8fb27613041 100644 --- a/openbb_terminal/stocks/stocks_helper.py +++ b/openbb_terminal/stocks/stocks_helper.py @@ -56,6 +56,8 @@ from openbb_terminal.stocks.stocks_model import ( load_stock_yf, ) +from . import databento_model + logger = logging.getLogger(__name__) @@ -335,6 +337,12 @@ def load( elif source == "Intrinio": df_stock_candidate = load_stock_intrinio(symbol, start_date, end_date) + + elif source == "DataBento": + df_stock_candidate = databento_model.get_historical_stock( + symbol, start_date.strftime("%Y-%m-%d"), end_date.strftime("%Y-%m-%d") + ) + else: console.print("[red]Invalid source for stock[/red]\n") return diff --git a/tests/openbb_terminal/futures/txt/test_futures_controller/test_print_help.txt b/tests/openbb_terminal/futures/txt/test_futures_controller/test_print_help.txt index a816e32836d..3d687932c2c 100644 --- a/tests/openbb_terminal/futures/txt/test_futures_controller/test_print_help.txt +++ b/tests/openbb_terminal/futures/txt/test_futures_controller/test_print_help.txt @@ -1,5 +1,5 @@ search search for a future based on category or exchange [YahooFinance] - historical get historical timeseries [YahooFinance] + historical get historical timeseries [YahooFinance, DataBento] curve get futures curves [YahooFinance] diff --git a/tests/openbb_terminal/stocks/cassettes/test_databento_model/test_stock_load.yaml b/tests/openbb_terminal/stocks/cassettes/test_databento_model/test_stock_load.yaml new file mode 100644 index 00000000000..2b1f3cb4636 --- /dev/null +++ b/tests/openbb_terminal/stocks/cassettes/test_databento_model/test_stock_load.yaml @@ -0,0 +1,118 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Authorization: + - MOCK_AUTHORIZATION + Connection: + - keep-alive + method: GET + uri: https://hist.databento.com/v0/timeseries.stream?dataset=XNAS.ITCH&symbols=AAPL&schema=ohlcv-1d&start=2022-08-01&end=2022-12-01&stype_in=native&encoding=csv + response: + body: + string: 'ts_event,publisher_id,product_id,open,high,low,close,volume + + 1659312000000000000,2,27,162200000000,163590000000,160830000000,161400000000,10045637 + + 1659398400000000000,2,27,160730000000,162410000000,159550000000,160010000000,10065910 + + 1659484800000000000,2,27,160060000000,166595000000,159850000000,165840000000,13326012 + + 1659571200000000000,2,27,165830000000,167190000000,164430000000,165850000000,9578445 + + 1659657600000000000,2,27,166000000000,166230000000,162790000000,164920000000,9683719 + + 1659916800000000000,2,27,166080000000,167800000000,164200000000,165150000000,9135766 + + 1660003200000000000,2,29,164990000000,165810000000,163460000000,164970000000,9230005 + + 1660089600000000000,2,29,165010000000,169310000000,164560000000,169130000000,11638513 + + 1660176000000000000,2,29,169240000000,170990000000,168190000000,168800000000,9732568 + + 1660262400000000000,2,29,169180000000,172170000000,168650000000,171850000000,11916663 + + 1660521600000000000,2,29,171140000000,173390000000,170740000000,173150000000,8485815 + + 1660608000000000000,2,29,172830000000,174080000000,171670000000,173700000000,9979182 + + 1660694400000000000,2,29,172670000000,176150000000,172140000000,173320000000,13581411 + + 1660780800000000000,2,29,173200000000,174890000000,173130000000,174090000000,11175367 + + 1660867200000000000,2,29,173600000000,173730000000,170700000000,170790000000,11296793 + + 1661126400000000000,2,29,169400000000,169860000000,167135000000,167950000000,13070702 + + 1661212800000000000,2,29,167610000000,168700000000,166650000000,167130000000,10629743 + + 1661299200000000000,2,29,166930000000,168410000000,166245000000,167910000000,9482192 + + 1661385600000000000,2,29,169270000000,170340000000,168230000000,170200000000,9874644 + + 1661472000000000000,2,29,169900000000,171130000000,162300000000,162450000000,14062181 + + 1661731200000000000,2,29,161790000000,162910000000,159830000000,161780000000,12363097 + + 1661817600000000000,2,29,162600000000,163340000000,157730000000,158960000000,11853126 + + 1661904000000000000,2,29,159650000000,160570000000,155770000000,156000000000,13343001 + + 1661990400000000000,2,29,155890000000,158690000000,154675000000,158620000000,13016463 + + 1662076800000000000,2,29,157710000000,160360000000,154965000000,155650000000,12975036 + + 1662422400000000000,2,29,156790000000,157390000000,153730000000,154490000000,14840703 + + 1662508800000000000,2,29,154800000000,156660000000,153610000000,155960000000,13205605 + + 1662595200000000000,2,29,155950000000,156430000000,152680000000,154620000000,14072194 + + 1662681600000000000,2,29,155260000000,157805000000,154760000000,157520000000,10213517 + + 1662940800000000000,2,29,158000000000,164260000000,158000000000,164100000000,15959461 + + 1663027200000000000,2,29,164150000000,164900000000,153385000000,154250000000,19181953 + + 1663113600000000000,2,29,154470000000,157100000000,153250000000,156000000000,15250245 + + 1663200000000000000,2,29,155960000000,156040000000,151100000000,151270000000,13929824 + + 1663286400000000000,2,29,151350000000,151510000000,148360000000,151290000000,19608708 + + 1663545600000000000,2,29,149820000000,155000000000,148700000000,155000000000,13024172 + + 1663632000000000000,2,29,154270000000,158080000000,153090000000,156480000000,16126729 + + 1663718400000000000,2,29,156580000000,158740000000,152240000000,152400000000,16938650 + + 1663804800000000000,2,29,153530000000,154960000000,150920000000,153090000000,14902502 + + 1663891200000000000,2,29,152250000000,152550000000,148560000000,150570000000,16074945 + + 1664150400000000000,2,29,150420000000,153770000000,149140000000,151100000000,14918149 + + 1664236800000000000,2,29,152840000000,154690000000,149950000000,151870000000,14873042 + + 1664323200000000000,2,29,148500000000,150640000000,144840000000,149370000000,24532649 + + 1664409600000000000,2,29,148000000000,148180000000,140680000000,142410000000,21075773 + + 1664496000000000000,2,29,143160000000,143580000000,137220000000,137540000000,20801834 + + ' + headers: + date: + - Tue, 21 Feb 2023 14:37:29 GMT + server: + - uvicorn + transfer-encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/openbb_terminal/stocks/csv/test_databento_model/test_stock_load.csv b/tests/openbb_terminal/stocks/csv/test_databento_model/test_stock_load.csv new file mode 100644 index 00000000000..e90e6321b7d --- /dev/null +++ b/tests/openbb_terminal/stocks/csv/test_databento_model/test_stock_load.csv @@ -0,0 +1,45 @@ +time,Open,High,Low,Close,Volume +2022-08-01,162.2,163.59,160.83,161.4,10045637 +2022-08-02,160.73,162.41,159.55,160.01,10065910 +2022-08-03,160.06,166.595,159.85,165.84,13326012 +2022-08-04,165.83,167.19,164.43,165.85,9578445 +2022-08-05,166.0,166.23,162.79,164.92,9683719 +2022-08-08,166.08,167.8,164.2,165.15,9135766 +2022-08-09,164.99,165.81,163.46,164.97,9230005 +2022-08-10,165.01,169.31,164.56,169.13,11638513 +2022-08-11,169.24,170.99,168.19,168.8,9732568 +2022-08-12,169.18,172.17,168.65,171.85,11916663 +2022-08-15,171.14,173.39,170.74,173.15,8485815 +2022-08-16,172.83,174.08,171.67,173.7,9979182 +2022-08-17,172.67,176.15,172.14,173.32,13581411 +2022-08-18,173.2,174.89,173.13,174.09,11175367 +2022-08-19,173.6,173.73,170.7,170.79,11296793 +2022-08-22,169.4,169.86,167.135,167.95,13070702 +2022-08-23,167.61,168.7,166.65,167.13,10629743 +2022-08-24,166.93,168.41,166.245,167.91,9482192 +2022-08-25,169.27,170.34,168.23,170.2,9874644 +2022-08-26,169.9,171.13,162.3,162.45,14062181 +2022-08-29,161.79,162.91,159.83,161.78,12363097 +2022-08-30,162.6,163.34,157.73,158.96,11853126 +2022-08-31,159.65,160.57,155.77,156.0,13343001 +2022-09-01,155.89,158.69,154.675,158.62,13016463 +2022-09-02,157.71,160.36,154.965,155.65,12975036 +2022-09-06,156.79,157.39,153.73,154.49,14840703 +2022-09-07,154.8,156.66,153.61,155.96,13205605 +2022-09-08,155.95,156.43,152.68,154.62,14072194 +2022-09-09,155.26,157.805,154.76,157.52,10213517 +2022-09-12,158.0,164.26,158.0,164.1,15959461 +2022-09-13,164.15,164.9,153.385,154.25,19181953 +2022-09-14,154.47,157.1,153.25,156.0,15250245 +2022-09-15,155.96,156.04,151.1,151.27,13929824 +2022-09-16,151.35,151.51,148.36,151.29,19608708 +2022-09-19,149.82,155.0,148.7,155.0,13024172 +2022-09-20,154.27,158.08,153.09,156.48,16126729 +2022-09-21,156.58,158.74,152.24,152.4,16938650 +2022-09-22,153.53,154.96,150.92,153.09,14902502 +2022-09-23,152.25,152.55,148.56,150.57,16074945 +2022-09-26,150.42,153.77,149.14,151.1,14918149 +2022-09-27,152.84,154.69,149.95,151.87,14873042 +2022-09-28,148.5,150.64,144.84,149.37,24532649 +2022-09-29,148.0,148.18,140.68,142.41,21075773 +2022-09-30,143.16,143.58,137.22,137.54,20801834 diff --git a/tests/openbb_terminal/stocks/test_databento_model.py b/tests/openbb_terminal/stocks/test_databento_model.py new file mode 100644 index 00000000000..b0f0ca94529 --- /dev/null +++ b/tests/openbb_terminal/stocks/test_databento_model.py @@ -0,0 +1,35 @@ +import pytest + +from openbb_terminal.stocks import databento_model + + +@pytest.fixture(scope="module") +def vcr_config(): + return { + "filter_headers": [ + ("User-Agent", None), + ("Authorization", "MOCK_AUTHORIZATION"), + ], + } + + +def test_databento_model(): + """Tests the DataBento model.""" + model = databento_model.DataBento( + symbol="AAPL", start="2021-08-10", end="2021-08-11" + ) + assert model.symbol == "AAPL" + assert model.exchange == "XNAS.ITCH" + assert model.stype == "native" + assert model.start == "2021-08-10" + assert model.end == "2021-08-11" + + +@pytest.mark.vcr +def test_stock_load(recorder): + """Tests the stock load function.""" + result = databento_model.get_historical_stock( + symbol="AAPL", start_date="2022-08-01", end_date="2022-12-01" + ) + assert result.empty is False + recorder.capture(result) diff --git a/tests/openbb_terminal/stocks/txt/test_stocks_controller/test_print_help.txt b/tests/openbb_terminal/stocks/txt/test_stocks_controller/test_print_help.txt index 42006f18e71..549e4cf5203 100644 --- a/tests/openbb_terminal/stocks/txt/test_stocks_controller/test_print_help.txt +++ b/tests/openbb_terminal/stocks/txt/test_stocks_controller/test_print_help.txt @@ -1,5 +1,5 @@ search search a specific stock ticker for analysis [FinanceDatabase] - load load a specific stock ticker and additional info for analysis [YahooFinance, AlphaVantage, Polygon, EODHD, Intrinio] + load load a specific stock ticker and additional info for analysis [YahooFinance, AlphaVantage, Polygon, EODHD, Intrinio, DataBento] Stock: