首页
/ GS Quant 宏风险模型上传与使用指南

GS Quant 宏风险模型上传与使用指南

2025-07-06 08:16:40作者:廉皓灿Ida

概述

在金融量化分析领域,风险模型是评估投资组合风险的重要工具。GS Quant 提供的 MacroRiskModel 类允许用户上传自定义的宏风险模型,并与 Marquee 投资组合分析工具无缝集成。本文将详细介绍如何使用 GS Quant 创建、上传和查询宏风险模型。

准备工作

环境初始化

首先需要导入必要的模块并初始化会话:

from gs_quant.session import GsSession, Environment
from gs_quant.models.risk_model import MacroRiskModel, RiskModelCalendar, Term, CoverageType, UniverseIdentifier

# 配置客户端凭证
client = '您的客户端ID'
secret = '您的客户端密钥'

# 初始化会话
GsSession.use(Environment.PROD, client_id=client, client_secret=secret)
print('GS 会话初始化完成')

创建宏风险模型

模型参数说明

创建宏风险模型时需要指定以下关键参数:

参数名称 是否可修改 描述
id 模型唯一标识符
name 模型名称
description 模型详细描述
term 模型期限(长期/中期/短期)
coverage 资产覆盖范围(全球/地区/国家等)
vendor 模型供应商
version 模型版本
universe_identifier 资产标识符类型(SEDOL/CUSIP等)
entitlements 模型访问权限设置

创建模型实例

model_id = 'MY_MODEL'
model_name = '我的风险模型'
description = '我的自定义宏风险模型'
term = Term.Medium  # 中期模型
coverage = CoverageType.Country  # 国家级别覆盖
universe_identifier = UniverseIdentifier.sedol  # 使用SEDOL作为资产标识符
vendor = 'Goldman Sachs'

model = MacroRiskModel(
    id_=model_id,
    name=model_name,
    description=description,
    coverage=coverage,
    term=term,
    universe_identifier=universe_identifier,
    vendor=vendor,
    version=1,
)

model.save()  # 保存模型

上传模型日历

风险模型日历定义了模型应包含数据的日期,确保数据完整性:

calendar = RiskModelCalendar([
    '2021-01-29',
    '2021-01-28',
    # 更多日期...
    '2021-01-01'
])

model.upload_calendar(calendar)

上传模型数据

数据结构要求

完整的数据上传需要包含两部分:

  1. 因子数据

    • factorId: 因子唯一标识
    • factorName: 因子显示名称
    • factorCategoryId: 因子类别ID
    • factorCategory: 因子类别名称
    • factorReturn: 因子日收益率(%)
  2. 资产数据

    • universe: 资产列表
    • factorExposure: 资产因子暴露度
    • specificRisk: 年化特定风险(%)
    • totalRisk: 总风险(%,可选)
    • historicalBeta: 历史贝塔(%,可选)

完整数据上传示例

data = {
    'date': '2021-01-13',
    'assetData': {
        'universe': ['B02V2Q0', '6560713', 'B3Q15X5', '0709954'],
        'specificRisk': [12.09, 45.12, 3.09, 1.0],
        'factorExposure': [
            {'1': 0.23, '2': 0.023},
            {'1': 0.023, '2': 2.09, '3': 0.3},
            # 更多资产因子暴露...
        ],
        'totalRisk': [12.7, 45.5, 12.7, 10.3],
    },
    'factorData': [
        {
            'factorId': '1',
            'factorName': 'USD',
            'factorCategory': 'Currency',
            'factorCategoryId': 'CUR',
            'factorReturn': 0.5,
        },
        # 更多因子数据...
    ],
}

model.upload_data(data)

查询模型数据

上传数据后,可以使用多种指标查询模型数据:

from gs_quant.models.risk_model import Measure, DataAssetsRequest
import datetime as dt

# 获取模型实例
model = MacroRiskModel.get(model_id)

# 设置查询参数
start_date = dt.date(2021, 1, 13)
end_date = dt.date(2021, 1, 13)

# 定义查询指标
data_measures = [
    Measure.Universe_Factor_Exposure,
    Measure.Asset_Universe,
    Measure.Specific_Risk,
    # 更多指标...
]

# 执行查询
macro_factor_data = model.get_data(
    data_measures, 
    start_date, 
    end_date, 
    DataAssetsRequest(universe_identifier.value, []),
    limit_factors=True
)

最佳实践

  1. 数据一致性:确保因子ID和名称在整个时间序列中保持一致
  2. 日历完整性:上传数据前确保日历日期完整且无间断
  3. 数据验证:上传后立即查询验证数据准确性
  4. 增量更新:对于大规模数据,考虑分批上传

通过以上步骤,您可以成功创建、上传和查询自定义宏风险模型,为投资组合分析提供强大的风险评估工具。