FactorRiskModel¶
- class FactorRiskModel(id_, name, coverage, term, universe_identifier, vendor, version, universe_size=None, entitlements=None, description=None, expected_update_time=None)[source]¶
Factor Risk Model used for calculating asset level factor risk
Methods
- __init__(id_, name, coverage, term, universe_identifier, vendor, version, universe_size=None, entitlements=None, description=None, expected_update_time=None)[source]¶
Create new factor risk model object
- Parameters:
id – risk model id (cannot be changed)
name (
str
) – risk model namecoverage (
RiskModelCoverage
) – coverage of risk model asset universeterm (
RiskModelTerm
) – horizon termuniverse_identifier (
RiskModelUniverseIdentifier
) – identifier used in asset universe upload (cannot be changed)vendor (
str
) – risk model vendorversion (
float
) – version of modeluniverse_size (
Optional
[int
]) – total rough expected universe size (rounding up to nearest 1k)entitlements (
Union
[Dict
,Entitlements
,None
]) – entitlements associated with risk modeldescription (
Optional
[str
]) – risk model descriptionexpected_update_time (
Optional
[time
]) – time when risk model daily data is expected to be uploaded
- Returns:
FactorRiskModel object
- delete()¶
Delete existing risk model object from Marquee
- delete_factor_metadata(factor_id)¶
Delete a factor’s metadata from a risk model
- Parameters:
factor_id (
str
) – factor id associated with risk model’s factor
- classmethod from_many_targets(models)¶
- classmethod get(model_id)¶
Get a risk model from Marquee :type model_id:
str
:param model_id: risk model id corresponding to Marquee Risk Model- Returns:
Risk Model object
- get_asset_universe(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)¶
Get asset universe data for existing risk model
- Parameters:
start_date (
date
) – Start date for data request. Must be equal to end_date if universe array in DataAssetsRequest is empty.end_date (
Optional
[date
]) – End date for data request. Must be equal to start_date if universe array in DataAssetsRequest is empty.assets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Risk model universe data in a pandas dataframe or dict
Usage
Get the assets covered by the model between start date and end date.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier, ReturnFormat >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> universe = ['GS UN'] >>> model = FactorRiskModel.get("MODEL_ID") >>> asset_universe = model.get_asset_universe(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, universe))
See also
get_specific_risk()
get_universe_factor_exposure()
get_total_risk()
- get_calendar(start_date=None, end_date=None)¶
Get risk model calendar for existing risk model between start and end date
- Parameters:
start_date (
Optional
[date
]) – List returned including and after start_dateend_date (
Optional
[date
]) – List returned up to and including end_date
- Return type:
RiskModelCalendar
- Returns:
RiskModelCalendar for model
Usage
Get the risk model calendar.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> model_calendar = model.get_calendar(start_date, end_date)
See also
get_most_recent_date_from_calendar()
get_dates()
get_missing_dates()
- get_covariance_matrix(start_date, end_date=None, assets=None, format=ReturnFormat.DATA_FRAME)[source]¶
Get covariance matrix data for existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
Optional
[RiskModelDataAssetsRequest
]) – DataAssetsRequest object with identifier and list of assets to limit the covariance matrix byformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[Dict
,DataFrame
]- Returns:
covariance matrix of daily factor returns
Usage
Get the covariance matrix of daily factor returns
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> covariance_matrix = model.get_covariance_matrix(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
- get_daily_return(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get daily asset total return data
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Daily asset total return data
Usage
Get daily return data for assets specified in assets between start_date and end_date
Example >>> from gs_quant.models.risk_model import FactorRiskModel, DataAssetsRequest, … RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get(“MODEL_ID”) >>> daily_returns = model.get_daily_return(start_date, end_date, … DataAssetsRequest(UniverseIdentifier.bbid, [‘GS UN’]))
See also
get_specific_risk()
get_universe_factor_exposure()
:func: get_specific_return
- get_data(measures, start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, limit_factors=True)¶
Get data for multiple measures for existing risk model
- Parameters:
measures (
List
[RiskModelDataMeasure
]) – list of measures for general risk model data requeststart_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestlimit_factors (
bool
) – limit factors included in factorData and covariance matrix to only include factors which the input universe has non-zero exposure to
- Return type:
Dict
- Returns:
risk model data or MqRequestError if query is too large for the service
- get_dates(start_date=None, end_date=None, event_type=None)¶
Get dates between start_date and end_date for which risk model data is present
- Parameters:
start_date (
Optional
[date
]) – List returned including and after start_dateend_date (
Optional
[date
]) – List returned up to and including end_dateevent_type (
Optional
[RiskModelEventType
]) – Which event type to retrieve dates for
- Return type:
List
[date
]- Returns:
A list of dates where risk model data is present
Usage
Get all the dates for which risk model data is present over start_date and end_date (inclusive).
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel, RiskModelEventType >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> dates = model.get_dates(start_date, end_date)
See also
get_missing_dates()
get_calendar()
get_most_recent_date_from_calendar()
- get_estimation_universe_weights(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get estimation universe data for existing risk model
- Parameters:
start_date (
date
) – Start date for data request. Must be equal to end_date if universe array in DataAssetsRequest is empty.end_date (
Optional
[date
]) – End date for data request. Must be equal to start_date if universe array in DataAssetsRequest is empty.assets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[Dict
,DataFrame
]- Returns:
Estimation Universe data in a pandas dataframe or dict
Usage
Get the assets that are in the estimation universe of the model and their weights.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> universe = ['GS UN'] >>> model = FactorRiskModel.get("MODEL_ID") >>> estimation_universe_weights = model.get_estimation_universe_weights(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, universe))
See also
- get_factor(name, start_date=None, end_date=None)¶
Get risk model factor from its name
- Parameters:
name (
str
) – Factor name associated with risk modelstart_date (
Optional
[date
]) – Start date of when to search for factor (optional, default to last month)end_date (
Optional
[date
]) – End date of when to search for factor (optional, default to today)
- Return type:
Factor
- Returns:
Factor object
- get_factor_data(start_date=None, end_date=None, identifiers=None, include_performance_curve=False, category_filter=None, factor_type=None, format=ReturnFormat.DATA_FRAME)¶
Get factor data for existing risk model
- Parameters:
start_date (
Optional
[date
]) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestidentifiers (
Optional
[List
[str
]]) – List of factor ids associated with risk modelinclude_performance_curve (
bool
) – Include the performance curve of the factorscategory_filter (
Optional
[List
[str
]]) – Filter the results to those having one of the specified categories. Default is to return all resultsfactor_type (
Optional
[FactorType
]) – The type of factor.format (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Risk model factor data
Usage
Get factor data for factors whose ids are specified in identifiers.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel >>> import datetime as dt >>> >>> model = FactorRiskModel.get("MODEL_ID") >>> factor_data = model.get_factor_data()
See also
get_many_factors :func:`get_factor_returns_by_name()
- get_factor_portfolios(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get factor portfolios data for existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[Dict
,DataFrame
]- Returns:
factor portfolios data
Usage
Get the factor portfolios data between start_date and end_date
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> factor_portfolios = model.get_factor_portfolios(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
- get_factor_returns_by_id(start_date, end_date=None, assets=None, factors=[], format=ReturnFormat.DATA_FRAME)¶
Get factor return data for existing risk model keyed by factor id
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
Optional
[RiskModelDataAssetsRequest
]) – DataAssetsRequest object with identifier and list of assets to limit the factors byfactors (
List
[str
]) – The factors to get factor return data for. If empty, the data for all factors is returnedformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[Dict
,DataFrame
]- Returns:
Factor returns by factor id
Usage
Get factor returns between start date and end date.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> factor_returns = model.get_factor_returns_by_id(start_date, end_date)
See also
- get_factor_returns_by_name(start_date, end_date=None, assets=None, factors=[], format=ReturnFormat.DATA_FRAME)¶
Get factor return data for existing risk model keyed by name
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
Optional
[RiskModelDataAssetsRequest
]) – DataAssetsRequest object with identifier and list of assets to limit the factors byfactors (
List
[str
]) – The factors to get factor return data for. If empty, the data for all factors is returnedformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[Dict
,DataFrame
]- Returns:
Factor returns by name
Usage
Get factor returns between start date and end date.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> factor_returns = model.get_factor_returns_by_name(start_date, end_date)
See also
- get_global_predicted_beta(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get global predicted beta data for an existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
global predicted beta for assets requested
Usage
Get global predicted beta for assets specified in assets between start_date and end_date
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> global_predicted_beta = model.get_global_predicted_beta(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
- get_historical_beta(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get historical beta data for existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
historical beta for assets requested
Usage
Get historical beta data for assets specified in assets between start_date and end_date
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier, ReturnFormat >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> historical_beta = model.get_historical_beta(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
- get_issuer_specific_covariance(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get issuer specific covariance data for existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[Dict
,DataFrame
]- Returns:
issuer specific covariance matrix (covariance of assets with the same issuer)
Usage
Get the covariance of assets with the same issuer.
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> issuer_specific_covariance = model.get_issuer_specific_covariance(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
- classmethod get_many(ids=None, terms=None, vendors=None, names=None, coverages=None, limit=None)[source]¶
Get many factor risk models from Marquee
- Parameters:
ids (
Optional
[List
[str
]]) – list of model identifiers in Marqueeterms (
Optional
[List
[str
]]) – list of model termsvendors (
Optional
[List
[str
]]) – list of model vendorsnames (
Optional
[List
[str
]]) – list of model namescoverages (
Optional
[List
[str
]]) – list of model coverageslimit (
Optional
[int
]) – limit of number of models in response
- Return type:
list
- Returns:
list of Factor Risk Model object
- get_many_factors(start_date=None, end_date=None, factor_names=None, factor_ids=None, factor_type=None)¶
Get risk model factors :type start_date:
Optional
[date
] :param start_date: Start date of when to search for factors (optional, default to last month) :type end_date:Optional
[date
] :param end_date: End date of when to search for factors :type factor_names:Optional
[List
[str
]] :param factor_names: The list of names of factors to get. All names must be valid factor names. If bothfactor_names and factor_ids are empty, all the factors will be returned.
- Parameters:
factor_ids (
Optional
[List
[str
]]) – The list of ids of factors to get. All ids must be valid factor ids. If both factor_names and factor_ids are empty, all the factors will be returnedfactor_type (
Optional
[FactorType
]) – Whether to return factors or factor categories. If unspecified, all the factors of all types will be returned
- Return type:
List
[Factor
]- Returns:
A list of Factor objects
Usage
Given a list of factor names and/or ids, return the factor objects that represent the factor requested. If no factor names or ids are provided, all the factors will be returned.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel, FactorType >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> many_factors = model.get_many_factors(start_date, end_date, factor_names=["factor1", "factor2"], ... factor_type=FactorType.Factor) >>>
See also
- get_missing_dates(start_date=None, end_date=None)¶
Get any dates where data is not published according to expected days returned from the risk model calendar
- Parameters:
start_date (
Optional
[date
]) – Date to truncate missing dates atend_date (
Optional
[date
]) –Date to truncate missing dates at
- If no end_date is provided, end_date defaults to T-1 date according
to the risk model calendar
- Return type:
List
[date
]
Usage
Get dates with missing data between start date and end date.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> dates = model.get_missing_dates(start_date, end_date)
See also
- get_most_recent_date_from_calendar()¶
Get T-1 date according to risk model calendar
- Return type:
date
- get_predicted_beta(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get predicted beta data for an existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
predicted beta for assets requested
Usage
Get predicted beta data for assets specified in assets between start_date and end_date
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = MacroRiskModel.get("MODEL_ID") >>> predicted_beta = model.get_predicted_beta(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
- get_residual_variance(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)¶
Get residual variance data for existing risk model
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Residual variance for assets requested
Usage
Get residual variance data for assets specified in assets between start_date and end_date
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> residual_variance = model.get_residual_variance(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
get_total_risk()
get_historical_beta()
get_specific_return()
- get_specific_return(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get specific return data for existing risk model
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Specific return data
Usage
Get specific return data for assets specified in assets between start_date and end_date
Example >>> from gs_quant.models.risk_model import FactorRiskModel, DataAssetsRequest, … RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get(“MODEL_ID”) >>> specific_returns = model.get_specific_return(start_date, end_date, … DataAssetsRequest(UniverseIdentifier.bbid, [‘GS UN’]))
- get_specific_risk(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)¶
Get specific risk data for existing risk model
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Specific risk for assets requested
Usage
Get specific risk data for assets specified in assets between start_date and end_date
Examples
>>> from gs_quant.models.risk_model import MacroRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> model = FactorRiskModel.get("MODEL_ID") >>> specific_risk = model.get_specific_risk(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, ['GS UN']))
See also
get_residual_variance()
get_specific_return()
get_total_risk()
- get_total_risk(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, format=ReturnFormat.DATA_FRAME)[source]¶
Get total risk data for existing risk model
- Return type:
Union
[List
[Dict
],DataFrame
]>>> model = FactorRiskModel.get("MODEL_ID") >>> total_risk = model.get_total_risk(start_date, end_date,
… DataAssetsRequest(UniverseIdentifier.bbid, [‘GS UN’]))
- get_universe_exposure(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, get_factors_by_name=False, format=ReturnFormat.DATA_FRAME)¶
Get universe factor exposure data for existing risk model
- Parameters:
start_date (
date
) – Start date for data requestend_date (
Optional
[date
]) – End date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestget_factors_by_name (
bool
) – Return results keyed by factor name instead of IDformat (
ReturnFormat
) – Which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
Factor exposure for assets requested
Usage
Given a list of assets, return their exposure to factor between start date and end date.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> universe = ['GS UN'] >>> model = FactorRiskModel.get("MODEL_ID") >>> universe_exposure = model.get_universe_exposure(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, universe))
See also
get_asset_universe()
get_factor_returns_by_name()
get_covariance_matrix()
- get_universe_factor_exposure(start_date, end_date=None, assets=<gs_quant.target.risk_models.RiskModelDataAssetsRequest object>, get_factors_by_name=False, format=ReturnFormat.DATA_FRAME)[source]¶
Get universe factor exposure data for existing risk model
- Parameters:
start_date (
date
) – start date for data requestend_date (
Optional
[date
]) – end date for data requestassets (
RiskModelDataAssetsRequest
) – DataAssetsRequest object with identifier and list of assets to retrieve for requestget_factors_by_name (
bool
) – return results keyed by factor name instead of IDformat (
ReturnFormat
) – which format to return the results in
- Return type:
Union
[List
[Dict
],DataFrame
]- Returns:
factor exposure for assets requested
Usage
Given a list of assets, return their exposure to factors between start date and end date.
Examples
>>> from gs_quant.models.risk_model import FactorRiskModel, DataAssetsRequest, ... RiskModelUniverseIdentifierRequest as UniverseIdentifier >>> import datetime as dt >>> >>> start_date = dt.date(2022, 1, 1) >>> end_date = dt.date(2022, 5, 2) >>> universe = ['GS UN'] >>> model = FactorRiskModel.get("MODEL_ID") >>> universe_exposure = model.get_universe_factor_exposure(start_date, end_date, ... DataAssetsRequest(UniverseIdentifier.bbid, universe))
See also
- save()¶
Upload current Risk Model object to Marquee
- save_factor_metadata(factor_metadata)¶
Add metadata to a factor in a risk model
- Parameters:
factor_metadata (
Factor
) – factor metadata object
- upload_asset_coverage_data(date=None, batch_size=100)¶
Upload to the coverage dataset for given risk model and date
- Parameters:
date (
Optional
[date
]) – Date to upload coverage data for, default date is last date from risk model calendarbatch_size (
int
) – Number of assets to upload in one request
Posting to the coverage dataset within the last 5 days will enable the risk model to be seen in the Marquee UI dropdown for users with “execute” capabilities
- upload_calendar(calendar)¶
Upload risk model calendar to existing risk model
- Parameters:
calendar (
RiskModelCalendar
) – RiskModelCalendar containing list of dates where model data is expected
- upload_data(data, max_asset_batch_size=20000)¶
Upload risk model data to existing risk model in Marquee
- Parameters:
data (
Union
[RiskModelData
,Dict
]) –complete or partial risk model data for uploading on given date includes: date, and one or more of: factorData, assetData, covarianceMatrix,
issuerSpecificCovariance and factorPortfolios. Look at risk model upload documentation for further information on what data can be grouped together if asset data size is above the max asset batch size
max_asset_batch_size (
int
) – size of payload to batch with. Defaults to 20000 assets which works well for models that have factor ids ranging from 1- 3 characters in length. For models with longer factor ids, consider batching with a smaller max asset batch size
If upload universe is over max_asset_batch_size, will batch data in chunks of max_asset_batch_size assets
- This function takes risk model data, and if partial requests are necessary, will upload data by
factor data (includes covariance matrix if factor model)
asset data in batches of max_asset_batch_size
issuer specific covariance data in batches of max_asset_batch_size / 2 due to the structure of this data
factor portfolio data in batches of max_asset_batch_size / 2 due to the structure of this data
In the case of repeat identifiers on a given data, the repeated data will replace existing data
- upload_partial_data(data, final_upload=None)¶
Upload partial risk model data to existing risk model in Marquee
- Parameters:
data (
Union
[RiskModelData
,dict
]) – partial risk model data for uploading on given datefinal_upload (
Optional
[bool
]) – if this is the last upload for the batched subset of data
- The models factorData and covarianceMatrix must be uploaded first on given date if repeats in partial
upload, newer posted data will replace existing data on upload day
Deprecated since version 0.9.42: Please use upload_data instead