mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 21:12:16 +00:00
* remove auto examples and split python from api * add missing exampels * rebuild * query params focstring * black * add scoped examples * group model imports in the router * unblock api * fix * classify examples * fix package identation * black sig * fix indentation without linter * fix python examples * remove doc * pylint * again * add model validators * commodity, crypto, currency * filter examples * fix python examples * fix filter and build * undo toml change * add comment * oop * comment * typing * lint * Update router.py * Update econometrics_router.py * fix to_python * to_python * to_python * black * fix multiple line field descriptions * remove circular import * add missing import * pass indent as object attr * doc * doc * this looks better * forgot this * fix: new examples adapted * fix prev commit * avoid future problems * Update ownership_router.py * rebuild + remove todo * make description mandatory for python examples * simple indent * append_examples func works for both website and docstring * Add example unit tests * Edit example unit tests * fix validator * this works * fix to_python * fix mandatory docstrings * typing * shorter error msgs * economy router * fix more examples * more examples * more examples * more examples * field desc * minor fix * fix etf examples * handling types better * lint * rename method * rename var * docstring + move method * typing * prompt * rebuild * prompt fix in PythonEx * fix examples without model * example mock data * add get_field_type func to get field data type * panel data * mock data * fix * fix * docstring * ohlcv * pylint * quantitaive router * simplify mock data * fix remaining quantitative routers * a bit more flexibility for examples * lint * mock dat from sample * docstring * assertion * bugfix * minor fix * technical * fix integration tests * fix docstring * econometrics examples * econometrics examples * remove warning * add technical examples * fix bad examples * fix more examples * update test rules * remoce old pydantic referenc * fix bug in treasury prices * fix quantitative examples * discovery router * equity shorts * equity shorts * fix currency pairs * fix sec_router example * fix panel data to support all funcs * black * more examples fixes * simplify test * rebuild * test doc * add provider to some ex * ^ * last * add provider * rebuild * working examples * noqa * pylint * pylint * clean * minor fix * fix test * lint * ruff --------- Co-authored-by: Pratyush Shukla <ps4534@nyu.edu> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
1212 lines
47 KiB
Python
1212 lines
47 KiB
Python
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
|
|
|
|
import datetime
|
|
from typing import List, Literal, Optional, Union
|
|
|
|
from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
|
|
from openbb_core.app.model.obbject import OBBject
|
|
from openbb_core.app.static.container import Container
|
|
from openbb_core.app.static.utils.decorators import exception_handler, validate
|
|
from openbb_core.app.static.utils.filters import filter_inputs
|
|
from typing_extensions import Annotated
|
|
|
|
|
|
class ROUTER_etf(Container):
|
|
"""/etf
|
|
countries
|
|
equity_exposure
|
|
historical
|
|
holdings
|
|
holdings_date
|
|
holdings_performance
|
|
info
|
|
price_performance
|
|
search
|
|
sectors
|
|
"""
|
|
|
|
def __repr__(self) -> str:
|
|
return self.__doc__ or ""
|
|
|
|
@exception_handler
|
|
@validate
|
|
def countries(
|
|
self,
|
|
symbol: Annotated[
|
|
Union[str, List[str]],
|
|
OpenBBCustomParameter(
|
|
description="Symbol to get data for. (ETF) Multiple items allowed for provider(s): fmp."
|
|
),
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""ETF Country weighting.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : Union[str, List[str]]
|
|
Symbol to get data for. (ETF) Multiple items allowed for provider(s): fmp.
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfCountries]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfCountries
|
|
------------
|
|
country : str
|
|
The country of the exposure. Corresponding values are normalized percentage points.
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.countries(symbol='VT', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/countries",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/countries",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
extra_info={"symbol": {"multiple_items_allowed": ["fmp"]}},
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def equity_exposure(
|
|
self,
|
|
symbol: Annotated[
|
|
Union[str, List[str]],
|
|
OpenBBCustomParameter(
|
|
description="Symbol to get data for. (Stock) Multiple items allowed for provider(s): fmp."
|
|
),
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""Get the exposure to ETFs for a specific stock.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : Union[str, List[str]]
|
|
Symbol to get data for. (Stock) Multiple items allowed for provider(s): fmp.
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfEquityExposure]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfEquityExposure
|
|
-----------------
|
|
equity_symbol : str
|
|
The symbol of the equity requested.
|
|
etf_symbol : str
|
|
The symbol of the ETF with exposure to the requested equity.
|
|
shares : Optional[int]
|
|
The number of shares held in the ETF.
|
|
weight : Optional[float]
|
|
The weight of the equity in the ETF, as a normalized percent.
|
|
market_value : Optional[Union[float, int]]
|
|
The market value of the equity position in the ETF.
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.equity_exposure(symbol='MSFT', provider='fmp')
|
|
>>> # This function accepts multiple tickers.
|
|
>>> obb.etf.equity_exposure(symbol='MSFT,AAPL', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/equity_exposure",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/equity_exposure",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
extra_info={"symbol": {"multiple_items_allowed": ["fmp"]}},
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def historical(
|
|
self,
|
|
symbol: Annotated[
|
|
Union[str, List[str]],
|
|
OpenBBCustomParameter(
|
|
description="Symbol to get data for. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance."
|
|
),
|
|
],
|
|
interval: Annotated[
|
|
Optional[str],
|
|
OpenBBCustomParameter(description="Time interval of the data to return."),
|
|
] = "1d",
|
|
start_date: Annotated[
|
|
Union[datetime.date, None, str],
|
|
OpenBBCustomParameter(
|
|
description="Start date of the data, in YYYY-MM-DD format."
|
|
),
|
|
] = None,
|
|
end_date: Annotated[
|
|
Union[datetime.date, None, str],
|
|
OpenBBCustomParameter(
|
|
description="End date of the data, in YYYY-MM-DD format."
|
|
),
|
|
] = None,
|
|
provider: Annotated[
|
|
Optional[Literal["fmp", "intrinio", "polygon", "tiingo", "yfinance"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""ETF Historical Market Price.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : Union[str, List[str]]
|
|
Symbol to get data for. Multiple items allowed for provider(s): fmp, polygon, tiingo, yfinance.
|
|
interval : Optional[str]
|
|
Time interval of the data to return.
|
|
start_date : Union[datetime.date, None, str]
|
|
Start date of the data, in YYYY-MM-DD format.
|
|
end_date : Union[datetime.date, None, str]
|
|
End date of the data, in YYYY-MM-DD format.
|
|
provider : Optional[Literal['fmp', 'intrinio', 'polygon', 'tiingo', 'yfinanc...
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
start_time : Optional[datetime.time]
|
|
Return intervals starting at the specified time on the `start_date` formatted as 'HH:MM:SS'. (provider: intrinio)
|
|
end_time : Optional[datetime.time]
|
|
Return intervals stopping at the specified time on the `end_date` formatted as 'HH:MM:SS'. (provider: intrinio)
|
|
timezone : Optional[str]
|
|
Timezone of the data, in the IANA format (Continent/City). (provider: intrinio)
|
|
source : Literal['realtime', 'delayed', 'nasdaq_basic']
|
|
The source of the data. (provider: intrinio)
|
|
adjustment : Union[Literal['splits_only', 'unadjusted'], Literal['splits_only', 'splits_and_dividends']]
|
|
The adjustment factor to apply. Default is splits only. (provider: polygon, yfinance)
|
|
extended_hours : bool
|
|
Include Pre and Post market data. (provider: polygon, yfinance)
|
|
sort : Literal['asc', 'desc']
|
|
Sort order of the data. This impacts the results in combination with the 'limit' parameter. The results are always returned in ascending order by date. (provider: polygon)
|
|
limit : int
|
|
The number of data entries to return. (provider: polygon)
|
|
include_actions : bool
|
|
Include dividends and stock splits in results. (provider: yfinance)
|
|
adjusted : bool
|
|
This field is deprecated (4.1.5) and will be removed in a future version. Use 'adjustment' set as 'splits_and_dividends' instead. (provider: yfinance)
|
|
prepost : bool
|
|
This field is deprecated (4.1.5) and will be removed in a future version. Use 'extended_hours' as True instead. (provider: yfinance)
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfHistorical]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp', 'intrinio', 'polygon', 'tiingo', 'yfinance']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfHistorical
|
|
-------------
|
|
date : Union[date, datetime]
|
|
The date of the data.
|
|
open : float
|
|
The open price.
|
|
high : float
|
|
The high price.
|
|
low : float
|
|
The low price.
|
|
close : float
|
|
The close price.
|
|
volume : Optional[Union[float, int]]
|
|
The trading volume.
|
|
vwap : Optional[float]
|
|
Volume Weighted Average Price over the period.
|
|
adj_close : Optional[float]
|
|
The adjusted close price. (provider: fmp, intrinio, tiingo)
|
|
unadjusted_volume : Optional[float]
|
|
Unadjusted volume of the symbol. (provider: fmp)
|
|
change : Optional[float]
|
|
Change in the price from the previous close. (provider: fmp);
|
|
Change in the price of the symbol from the previous day. (provider: intrinio)
|
|
change_percent : Optional[float]
|
|
Change in the price from the previous close, as a normalized percent. (provider: fmp);
|
|
Percent change in the price of the symbol from the previous day. (provider: intrinio)
|
|
average : Optional[float]
|
|
Average trade price of an individual equity during the interval. (provider: intrinio)
|
|
adj_open : Optional[float]
|
|
The adjusted open price. (provider: intrinio, tiingo)
|
|
adj_high : Optional[float]
|
|
The adjusted high price. (provider: intrinio, tiingo)
|
|
adj_low : Optional[float]
|
|
The adjusted low price. (provider: intrinio, tiingo)
|
|
adj_volume : Optional[float]
|
|
The adjusted volume. (provider: intrinio, tiingo)
|
|
fifty_two_week_high : Optional[float]
|
|
52 week high price for the symbol. (provider: intrinio)
|
|
fifty_two_week_low : Optional[float]
|
|
52 week low price for the symbol. (provider: intrinio)
|
|
factor : Optional[float]
|
|
factor by which to multiply equity prices before this date, in order to calculate historically-adjusted equity prices. (provider: intrinio)
|
|
split_ratio : Optional[float]
|
|
Ratio of the equity split, if a split occurred. (provider: intrinio, tiingo, yfinance)
|
|
dividend : Optional[float]
|
|
Dividend amount, if a dividend was paid. (provider: intrinio, tiingo, yfinance)
|
|
close_time : Optional[datetime]
|
|
The timestamp that represents the end of the interval span. (provider: intrinio)
|
|
interval : Optional[str]
|
|
The data time frequency. (provider: intrinio)
|
|
intra_period : Optional[bool]
|
|
If true, the equity price represents an unfinished period (be it day, week, quarter, month, or year), meaning that the close price is the latest price available, not the official close price for the period (provider: intrinio)
|
|
transactions : Optional[Annotated[int, Gt(gt=0)]]
|
|
Number of transactions for the symbol in the time period. (provider: polygon)
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.historical(symbol='SPY', provider='fmp')
|
|
>>> obb.etf.historical(symbol='SPY', provider='yfinance')
|
|
>>> # This function accepts multiple tickers.
|
|
>>> obb.etf.historical(symbol='SPY,IWM,QQQ,DJIA', provider='yfinance')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/historical",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/historical",
|
|
("fmp", "intrinio", "polygon", "tiingo", "yfinance"),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
"interval": interval,
|
|
"start_date": start_date,
|
|
"end_date": end_date,
|
|
},
|
|
extra_params=kwargs,
|
|
extra_info={
|
|
"symbol": {
|
|
"multiple_items_allowed": [
|
|
"fmp",
|
|
"polygon",
|
|
"tiingo",
|
|
"yfinance",
|
|
]
|
|
}
|
|
},
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def holdings(
|
|
self,
|
|
symbol: Annotated[
|
|
str, OpenBBCustomParameter(description="Symbol to get data for. (ETF)")
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp", "sec"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""Get the holdings for an individual ETF.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : str
|
|
Symbol to get data for. (ETF)
|
|
provider : Optional[Literal['fmp', 'sec']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
date : Optional[Union[str, datetime.date]]
|
|
A specific date to get data for. Entering a date will attempt to return the NPORT-P filing for the entered date. This needs to be _exactly_ the date of the filing. Use the holdings_date command/endpoint to find available filing dates for the ETF. (provider: fmp);
|
|
A specific date to get data for. The date represents the period ending. The date entered will return the closest filing. (provider: sec)
|
|
cik : Optional[str]
|
|
The CIK of the filing entity. Overrides symbol. (provider: fmp)
|
|
use_cache : bool
|
|
Whether or not to use cache for the request. (provider: sec)
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfHoldings]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp', 'sec']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfHoldings
|
|
-----------
|
|
symbol : Optional[str]
|
|
Symbol representing the entity requested in the data. (ETF)
|
|
name : Optional[str]
|
|
Name of the ETF holding.
|
|
lei : Optional[str]
|
|
The LEI of the holding. (provider: fmp, sec)
|
|
title : Optional[str]
|
|
The title of the holding. (provider: fmp)
|
|
cusip : Optional[str]
|
|
The CUSIP of the holding. (provider: fmp, sec)
|
|
isin : Optional[str]
|
|
The ISIN of the holding. (provider: fmp, sec)
|
|
balance : Optional[int]
|
|
The balance of the holding, in shares or units. (provider: fmp);
|
|
The balance of the holding. (provider: sec)
|
|
units : Optional[Union[str, float]]
|
|
The type of units. (provider: fmp);
|
|
The units of the holding. (provider: sec)
|
|
currency : Optional[str]
|
|
The currency of the holding. (provider: fmp, sec)
|
|
value : Optional[float]
|
|
The value of the holding, in dollars. (provider: fmp, sec)
|
|
weight : Optional[float]
|
|
The weight of the holding, as a normalized percent. (provider: fmp);
|
|
The weight of the holding in ETF in %. (provider: sec)
|
|
payoff_profile : Optional[str]
|
|
The payoff profile of the holding. (provider: fmp, sec)
|
|
asset_category : Optional[str]
|
|
The asset category of the holding. (provider: fmp, sec)
|
|
issuer_category : Optional[str]
|
|
The issuer category of the holding. (provider: fmp, sec)
|
|
country : Optional[str]
|
|
The country of the holding. (provider: fmp, sec)
|
|
is_restricted : Optional[str]
|
|
Whether the holding is restricted. (provider: fmp, sec)
|
|
fair_value_level : Optional[int]
|
|
The fair value level of the holding. (provider: fmp, sec)
|
|
is_cash_collateral : Optional[str]
|
|
Whether the holding is cash collateral. (provider: fmp, sec)
|
|
is_non_cash_collateral : Optional[str]
|
|
Whether the holding is non-cash collateral. (provider: fmp, sec)
|
|
is_loan_by_fund : Optional[str]
|
|
Whether the holding is loan by fund. (provider: fmp, sec)
|
|
cik : Optional[str]
|
|
The CIK of the filing. (provider: fmp)
|
|
acceptance_datetime : Optional[str]
|
|
The acceptance datetime of the filing. (provider: fmp)
|
|
updated : Optional[Union[date, datetime]]
|
|
The date the data was updated. (provider: fmp)
|
|
other_id : Optional[str]
|
|
Internal identifier for the holding. (provider: sec)
|
|
loan_value : Optional[float]
|
|
The loan value of the holding. (provider: sec)
|
|
issuer_conditional : Optional[str]
|
|
The issuer conditions of the holding. (provider: sec)
|
|
asset_conditional : Optional[str]
|
|
The asset conditions of the holding. (provider: sec)
|
|
maturity_date : Optional[date]
|
|
The maturity date of the debt security. (provider: sec)
|
|
coupon_kind : Optional[str]
|
|
The type of coupon for the debt security. (provider: sec)
|
|
rate_type : Optional[str]
|
|
The type of rate for the debt security, floating or fixed. (provider: sec)
|
|
annualized_return : Optional[float]
|
|
The annualized return on the debt security. (provider: sec)
|
|
is_default : Optional[str]
|
|
If the debt security is defaulted. (provider: sec)
|
|
in_arrears : Optional[str]
|
|
If the debt security is in arrears. (provider: sec)
|
|
is_paid_kind : Optional[str]
|
|
If the debt security payments are paid in kind. (provider: sec)
|
|
derivative_category : Optional[str]
|
|
The derivative category of the holding. (provider: sec)
|
|
counterparty : Optional[str]
|
|
The counterparty of the derivative. (provider: sec)
|
|
underlying_name : Optional[str]
|
|
The name of the underlying asset associated with the derivative. (provider: sec)
|
|
option_type : Optional[str]
|
|
The type of option. (provider: sec)
|
|
derivative_payoff : Optional[str]
|
|
The payoff profile of the derivative. (provider: sec)
|
|
expiry_date : Optional[date]
|
|
The expiry or termination date of the derivative. (provider: sec)
|
|
exercise_price : Optional[float]
|
|
The exercise price of the option. (provider: sec)
|
|
exercise_currency : Optional[str]
|
|
The currency of the option exercise price. (provider: sec)
|
|
shares_per_contract : Optional[float]
|
|
The number of shares per contract. (provider: sec)
|
|
delta : Optional[Union[str, float]]
|
|
The delta of the option. (provider: sec)
|
|
rate_type_rec : Optional[str]
|
|
The type of rate for reveivable portion of the swap. (provider: sec)
|
|
receive_currency : Optional[str]
|
|
The receive currency of the swap. (provider: sec)
|
|
upfront_receive : Optional[float]
|
|
The upfront amount received of the swap. (provider: sec)
|
|
floating_rate_index_rec : Optional[str]
|
|
The floating rate index for reveivable portion of the swap. (provider: sec)
|
|
floating_rate_spread_rec : Optional[float]
|
|
The floating rate spread for reveivable portion of the swap. (provider: sec)
|
|
rate_tenor_rec : Optional[str]
|
|
The rate tenor for reveivable portion of the swap. (provider: sec)
|
|
rate_tenor_unit_rec : Optional[Union[int, str]]
|
|
The rate tenor unit for reveivable portion of the swap. (provider: sec)
|
|
reset_date_rec : Optional[str]
|
|
The reset date for reveivable portion of the swap. (provider: sec)
|
|
reset_date_unit_rec : Optional[Union[int, str]]
|
|
The reset date unit for reveivable portion of the swap. (provider: sec)
|
|
rate_type_pmnt : Optional[str]
|
|
The type of rate for payment portion of the swap. (provider: sec)
|
|
payment_currency : Optional[str]
|
|
The payment currency of the swap. (provider: sec)
|
|
upfront_payment : Optional[float]
|
|
The upfront amount received of the swap. (provider: sec)
|
|
floating_rate_index_pmnt : Optional[str]
|
|
The floating rate index for payment portion of the swap. (provider: sec)
|
|
floating_rate_spread_pmnt : Optional[float]
|
|
The floating rate spread for payment portion of the swap. (provider: sec)
|
|
rate_tenor_pmnt : Optional[str]
|
|
The rate tenor for payment portion of the swap. (provider: sec)
|
|
rate_tenor_unit_pmnt : Optional[Union[int, str]]
|
|
The rate tenor unit for payment portion of the swap. (provider: sec)
|
|
reset_date_pmnt : Optional[str]
|
|
The reset date for payment portion of the swap. (provider: sec)
|
|
reset_date_unit_pmnt : Optional[Union[int, str]]
|
|
The reset date unit for payment portion of the swap. (provider: sec)
|
|
repo_type : Optional[str]
|
|
The type of repo. (provider: sec)
|
|
is_cleared : Optional[str]
|
|
If the repo is cleared. (provider: sec)
|
|
is_tri_party : Optional[str]
|
|
If the repo is tri party. (provider: sec)
|
|
principal_amount : Optional[float]
|
|
The principal amount of the repo. (provider: sec)
|
|
principal_currency : Optional[str]
|
|
The currency of the principal amount. (provider: sec)
|
|
collateral_type : Optional[str]
|
|
The collateral type of the repo. (provider: sec)
|
|
collateral_amount : Optional[float]
|
|
The collateral amount of the repo. (provider: sec)
|
|
collateral_currency : Optional[str]
|
|
The currency of the collateral amount. (provider: sec)
|
|
exchange_currency : Optional[str]
|
|
The currency of the exchange rate. (provider: sec)
|
|
exchange_rate : Optional[float]
|
|
The exchange rate. (provider: sec)
|
|
currency_sold : Optional[str]
|
|
The currency sold in a Forward Derivative. (provider: sec)
|
|
currency_amount_sold : Optional[float]
|
|
The amount of currency sold in a Forward Derivative. (provider: sec)
|
|
currency_bought : Optional[str]
|
|
The currency bought in a Forward Derivative. (provider: sec)
|
|
currency_amount_bought : Optional[float]
|
|
The amount of currency bought in a Forward Derivative. (provider: sec)
|
|
notional_amount : Optional[float]
|
|
The notional amount of the derivative. (provider: sec)
|
|
notional_currency : Optional[str]
|
|
The currency of the derivative's notional amount. (provider: sec)
|
|
unrealized_gain : Optional[float]
|
|
The unrealized gain or loss on the derivative. (provider: sec)
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.holdings(symbol='XLK', provider='fmp')
|
|
>>> # Including a date (FMP, SEC) will return the holdings as per NPORT-P filings.
|
|
>>> obb.etf.holdings(symbol='XLK', date='2022-03-31', provider='fmp')
|
|
>>> # The same data can be returned from the SEC directly.
|
|
>>> obb.etf.holdings(symbol='XLK', date='2022-03-31', provider='sec')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/holdings",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/holdings",
|
|
("fmp", "sec"),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def holdings_date(
|
|
self,
|
|
symbol: Annotated[
|
|
str, OpenBBCustomParameter(description="Symbol to get data for. (ETF)")
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""Use this function to get the holdings dates, if available.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : str
|
|
Symbol to get data for. (ETF)
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
cik : Optional[str]
|
|
The CIK of the filing entity. Overrides symbol. (provider: fmp)
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfHoldingsDate]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfHoldingsDate
|
|
---------------
|
|
date : date
|
|
The date of the data.
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.holdings_date(symbol='XLK', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/holdings_date",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/holdings_date",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def holdings_performance(
|
|
self,
|
|
symbol: Annotated[
|
|
Union[str, List[str]],
|
|
OpenBBCustomParameter(
|
|
description="Symbol to get data for. Multiple items allowed for provider(s): fmp."
|
|
),
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""Get the recent price performance of each ticker held in the ETF.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : Union[str, List[str]]
|
|
Symbol to get data for. Multiple items allowed for provider(s): fmp.
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfHoldingsPerformance]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfHoldingsPerformance
|
|
----------------------
|
|
one_day : Optional[float]
|
|
One-day return.
|
|
wtd : Optional[float]
|
|
Week to date return.
|
|
one_week : Optional[float]
|
|
One-week return.
|
|
mtd : Optional[float]
|
|
Month to date return.
|
|
one_month : Optional[float]
|
|
One-month return.
|
|
qtd : Optional[float]
|
|
Quarter to date return.
|
|
three_month : Optional[float]
|
|
Three-month return.
|
|
six_month : Optional[float]
|
|
Six-month return.
|
|
ytd : Optional[float]
|
|
Year to date return.
|
|
one_year : Optional[float]
|
|
One-year return.
|
|
three_year : Optional[float]
|
|
Three-year return.
|
|
five_year : Optional[float]
|
|
Five-year return.
|
|
ten_year : Optional[float]
|
|
Ten-year return.
|
|
max : Optional[float]
|
|
Return from the beginning of the time series.
|
|
symbol : Optional[str]
|
|
The ticker symbol. (provider: fmp)
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.holdings_performance(symbol='XLK', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/holdings_performance",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/holdings_performance",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
extra_info={"symbol": {"multiple_items_allowed": ["fmp"]}},
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def info(
|
|
self,
|
|
symbol: Annotated[
|
|
Union[str, List[str]],
|
|
OpenBBCustomParameter(
|
|
description="Symbol to get data for. (ETF) Multiple items allowed for provider(s): fmp, yfinance."
|
|
),
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp", "yfinance"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""ETF Information Overview.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : Union[str, List[str]]
|
|
Symbol to get data for. (ETF) Multiple items allowed for provider(s): fmp, yfinance.
|
|
provider : Optional[Literal['fmp', 'yfinance']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfInfo]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp', 'yfinance']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfInfo
|
|
-------
|
|
symbol : str
|
|
Symbol representing the entity requested in the data. (ETF)
|
|
name : Optional[str]
|
|
Name of the ETF.
|
|
description : Optional[str]
|
|
Description of the fund.
|
|
inception_date : Optional[str]
|
|
Inception date of the ETF.
|
|
issuer : Optional[str]
|
|
Company of the ETF. (provider: fmp)
|
|
cusip : Optional[str]
|
|
CUSIP of the ETF. (provider: fmp)
|
|
isin : Optional[str]
|
|
ISIN of the ETF. (provider: fmp)
|
|
domicile : Optional[str]
|
|
Domicile of the ETF. (provider: fmp)
|
|
asset_class : Optional[str]
|
|
Asset class of the ETF. (provider: fmp)
|
|
aum : Optional[float]
|
|
Assets under management. (provider: fmp)
|
|
nav : Optional[float]
|
|
Net asset value of the ETF. (provider: fmp)
|
|
nav_currency : Optional[str]
|
|
Currency of the ETF's net asset value. (provider: fmp)
|
|
expense_ratio : Optional[float]
|
|
The expense ratio, as a normalized percent. (provider: fmp)
|
|
holdings_count : Optional[int]
|
|
Number of holdings. (provider: fmp)
|
|
avg_volume : Optional[float]
|
|
Average daily trading volume. (provider: fmp)
|
|
website : Optional[str]
|
|
Website of the issuer. (provider: fmp)
|
|
fund_type : Optional[str]
|
|
The legal type of fund. (provider: yfinance)
|
|
fund_family : Optional[str]
|
|
The fund family. (provider: yfinance)
|
|
category : Optional[str]
|
|
The fund category. (provider: yfinance)
|
|
exchange : Optional[str]
|
|
The exchange the fund is listed on. (provider: yfinance)
|
|
exchange_timezone : Optional[str]
|
|
The timezone of the exchange. (provider: yfinance)
|
|
currency : Optional[str]
|
|
The currency in which the fund is listed. (provider: yfinance)
|
|
nav_price : Optional[float]
|
|
The net asset value per unit of the fund. (provider: yfinance)
|
|
total_assets : Optional[int]
|
|
The total value of assets held by the fund. (provider: yfinance)
|
|
trailing_pe : Optional[float]
|
|
The trailing twelve month P/E ratio of the fund's assets. (provider: yfinance)
|
|
dividend_yield : Optional[float]
|
|
The dividend yield of the fund, as a normalized percent. (provider: yfinance)
|
|
dividend_rate_ttm : Optional[float]
|
|
The trailing twelve month annual dividend rate of the fund, in currency units. (provider: yfinance)
|
|
dividend_yield_ttm : Optional[float]
|
|
The trailing twelve month annual dividend yield of the fund, as a normalized percent. (provider: yfinance)
|
|
year_high : Optional[float]
|
|
The fifty-two week high price. (provider: yfinance)
|
|
year_low : Optional[float]
|
|
The fifty-two week low price. (provider: yfinance)
|
|
ma_50d : Optional[float]
|
|
50-day moving average price. (provider: yfinance)
|
|
ma_200d : Optional[float]
|
|
200-day moving average price. (provider: yfinance)
|
|
return_ytd : Optional[float]
|
|
The year-to-date return of the fund, as a normalized percent. (provider: yfinance)
|
|
return_3y_avg : Optional[float]
|
|
The three year average return of the fund, as a normalized percent. (provider: yfinance)
|
|
return_5y_avg : Optional[float]
|
|
The five year average return of the fund, as a normalized percent. (provider: yfinance)
|
|
beta_3y_avg : Optional[float]
|
|
The three year average beta of the fund. (provider: yfinance)
|
|
volume_avg : Optional[float]
|
|
The average daily trading volume of the fund. (provider: yfinance)
|
|
volume_avg_10d : Optional[float]
|
|
The average daily trading volume of the fund over the past ten days. (provider: yfinance)
|
|
bid : Optional[float]
|
|
The current bid price. (provider: yfinance)
|
|
bid_size : Optional[float]
|
|
The current bid size. (provider: yfinance)
|
|
ask : Optional[float]
|
|
The current ask price. (provider: yfinance)
|
|
ask_size : Optional[float]
|
|
The current ask size. (provider: yfinance)
|
|
open : Optional[float]
|
|
The open price of the most recent trading session. (provider: yfinance)
|
|
high : Optional[float]
|
|
The highest price of the most recent trading session. (provider: yfinance)
|
|
low : Optional[float]
|
|
The lowest price of the most recent trading session. (provider: yfinance)
|
|
volume : Optional[int]
|
|
The trading volume of the most recent trading session. (provider: yfinance)
|
|
prev_close : Optional[float]
|
|
The previous closing price. (provider: yfinance)
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.info(symbol='SPY', provider='fmp')
|
|
>>> # This function accepts multiple tickers.
|
|
>>> obb.etf.info(symbol='SPY,IWM,QQQ,DJIA', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/info",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/info",
|
|
("fmp", "yfinance"),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
extra_info={"symbol": {"multiple_items_allowed": ["fmp", "yfinance"]}},
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def price_performance(
|
|
self,
|
|
symbol: Annotated[
|
|
Union[str, List[str]],
|
|
OpenBBCustomParameter(
|
|
description="Symbol to get data for. Multiple items allowed for provider(s): fmp."
|
|
),
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""Price performance as a return, over different periods. This is a proxy for `equity.price.performance`.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : Union[str, List[str]]
|
|
Symbol to get data for. Multiple items allowed for provider(s): fmp.
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[PricePerformance]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
PricePerformance
|
|
----------------
|
|
one_day : Optional[float]
|
|
One-day return.
|
|
wtd : Optional[float]
|
|
Week to date return.
|
|
one_week : Optional[float]
|
|
One-week return.
|
|
mtd : Optional[float]
|
|
Month to date return.
|
|
one_month : Optional[float]
|
|
One-month return.
|
|
qtd : Optional[float]
|
|
Quarter to date return.
|
|
three_month : Optional[float]
|
|
Three-month return.
|
|
six_month : Optional[float]
|
|
Six-month return.
|
|
ytd : Optional[float]
|
|
Year to date return.
|
|
one_year : Optional[float]
|
|
One-year return.
|
|
three_year : Optional[float]
|
|
Three-year return.
|
|
five_year : Optional[float]
|
|
Five-year return.
|
|
ten_year : Optional[float]
|
|
Ten-year return.
|
|
max : Optional[float]
|
|
Return from the beginning of the time series.
|
|
symbol : Optional[str]
|
|
The ticker symbol. (provider: fmp)
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.price_performance(symbol='QQQ', provider='fmp')
|
|
>>> obb.etf.price_performance(symbol='SPY,QQQ,IWM,DJIA', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/price_performance",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/price_performance",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
extra_info={"symbol": {"multiple_items_allowed": ["fmp"]}},
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def search(
|
|
self,
|
|
query: Annotated[
|
|
Optional[str], OpenBBCustomParameter(description="Search query.")
|
|
] = "",
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""Search for ETFs.
|
|
|
|
An empty query returns the full list of ETFs from the provider.
|
|
|
|
|
|
Parameters
|
|
----------
|
|
query : Optional[str]
|
|
Search query.
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
exchange : Optional[Literal['AMEX', 'NYSE', 'NASDAQ', 'ETF', 'TSX', 'EURONEXT']]
|
|
The exchange code the ETF trades on. (provider: fmp)
|
|
is_active : Optional[Literal[True, False]]
|
|
Whether the ETF is actively trading. (provider: fmp)
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfSearch]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfSearch
|
|
---------
|
|
symbol : str
|
|
Symbol representing the entity requested in the data.(ETF)
|
|
name : Optional[str]
|
|
Name of the ETF.
|
|
market_cap : Optional[float]
|
|
The market cap of the ETF. (provider: fmp)
|
|
sector : Optional[str]
|
|
The sector of the ETF. (provider: fmp)
|
|
industry : Optional[str]
|
|
The industry of the ETF. (provider: fmp)
|
|
beta : Optional[float]
|
|
The beta of the ETF. (provider: fmp)
|
|
price : Optional[float]
|
|
The current price of the ETF. (provider: fmp)
|
|
last_annual_dividend : Optional[float]
|
|
The last annual dividend paid. (provider: fmp)
|
|
volume : Optional[float]
|
|
The current trading volume of the ETF. (provider: fmp)
|
|
exchange : Optional[str]
|
|
The exchange code the ETF trades on. (provider: fmp)
|
|
exchange_name : Optional[str]
|
|
The full name of the exchange the ETF trades on. (provider: fmp)
|
|
country : Optional[str]
|
|
The country the ETF is registered in. (provider: fmp)
|
|
actively_trading : Optional[Literal[True, False]]
|
|
Whether the ETF is actively trading. (provider: fmp)
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> # An empty query returns the full list of ETFs from the provider.
|
|
>>> obb.etf.search(provider='fmp')
|
|
>>> # The query will return results from text-based fields containing the term.
|
|
>>> obb.etf.search(query='commercial real estate', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/search",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/search",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"query": query,
|
|
},
|
|
extra_params=kwargs,
|
|
)
|
|
)
|
|
|
|
@exception_handler
|
|
@validate
|
|
def sectors(
|
|
self,
|
|
symbol: Annotated[
|
|
str, OpenBBCustomParameter(description="Symbol to get data for. (ETF)")
|
|
],
|
|
provider: Annotated[
|
|
Optional[Literal["fmp"]],
|
|
OpenBBCustomParameter(
|
|
description="The provider to use for the query, by default None.\n If None, the provider specified in defaults is selected or 'fmp' if there is\n no default."
|
|
),
|
|
] = None,
|
|
**kwargs
|
|
) -> OBBject:
|
|
"""ETF Sector weighting.
|
|
|
|
Parameters
|
|
----------
|
|
symbol : str
|
|
Symbol to get data for. (ETF)
|
|
provider : Optional[Literal['fmp']]
|
|
The provider to use for the query, by default None.
|
|
If None, the provider specified in defaults is selected or 'fmp' if there is
|
|
no default.
|
|
|
|
Returns
|
|
-------
|
|
OBBject
|
|
results : List[EtfSectors]
|
|
Serializable results.
|
|
provider : Optional[Literal['fmp']]
|
|
Provider name.
|
|
warnings : Optional[List[Warning_]]
|
|
List of warnings.
|
|
chart : Optional[Chart]
|
|
Chart object.
|
|
extra : Dict[str, Any]
|
|
Extra info.
|
|
|
|
EtfSectors
|
|
----------
|
|
sector : str
|
|
Sector of exposure.
|
|
weight : Optional[float]
|
|
Exposure of the ETF to the sector in normalized percentage points.
|
|
|
|
Examples
|
|
--------
|
|
>>> from openbb import obb
|
|
>>> obb.etf.sectors(symbol='SPY', provider='fmp')
|
|
""" # noqa: E501
|
|
|
|
return self._run(
|
|
"/etf/sectors",
|
|
**filter_inputs(
|
|
provider_choices={
|
|
"provider": self._get_provider(
|
|
provider,
|
|
"/etf/sectors",
|
|
("fmp",),
|
|
)
|
|
},
|
|
standard_params={
|
|
"symbol": symbol,
|
|
},
|
|
extra_params=kwargs,
|
|
)
|
|
)
|