首页
/ GS Quant项目中的STS指数分析教程

GS Quant项目中的STS指数分析教程

2025-07-06 08:13:16作者:何将鹤

前言

GS Quant作为高盛开发的量化金融工具库,提供了丰富的金融数据分析能力。本教程将重点介绍如何使用GS Quant中的Index类功能来分析Systematic Trading Strategy (STS)指数。通过本教程,您将掌握STS指数的核心分析方法,包括获取策略价值、底层成分、完整成分树结构、因子风险数据以及基本面指标等。

环境准备

1. 安装与认证

首先需要确保已正确安装GS Quant库并完成认证设置:

from gs_quant.markets.index import Index
from gs_quant.markets.indices_utils import *
from gs_quant.data.fields import DataMeasure
from gs_quant.session import Environment, GsSession
import datetime as dt

# 外部用户需要提供client_id和client_secret
GsSession.use(Environment.PROD, client_id=None, client_secret=None, scopes=('read_product_data',))

2. 数据访问权限

使用STS指数功能需要确保您的应用已获得以下数据集的访问权限:

  1. STSLEVELS - STS指数的官方价值
  2. STS_INDICATIVE_LEVELS - STS指数的指示性价值
  3. STS_FUNDAMENTALS - STS指数的基本面指标
  4. STS_UNDERLIER_WEIGHTS - STS指数底层资产的权重
  5. STS_UNDERLIER_ATTRIBUTION - STS指数底层资产的归因分析
  6. STSCONSTITUENTS - STS指数的底层成分及权重

指数加载与基本信息

1. 加载STS指数

# 加载多资产策略指数
ma_index = Index.get('GSMBMA5S')  

# 加载单股票策略指数
sstk_index = Index.get('GSISM37E')

# 获取指数在Marquee平台的URL
ma_index.get_url()

2. 设置分析时间范围

start_date = dt.date(2022, 3, 1)
end_date = dt.date(2022, 4, 1)

策略价值分析

STS指数支持获取官方收盘价和指示性策略价值:

1. 获取官方收盘价

# 默认获取官方策略价值
ma_index.get_close_prices(start=start_date, end=end_date)

# 显式指定获取官方策略价值
sstk_index.get_close_prices(start=start_date, end=end_date, 
                          price_type=[PriceType.OFFICIAL_CLOSE_PRICE])

2. 获取指示性收盘价

ma_index.get_close_prices(start=start_date, end=end_date, 
                        price_type=[PriceType.INDICATIVE_CLOSE_PRICE])

3. 同时获取两种价格

ma_index.get_close_prices(
    start=start_date, end=end_date, 
    price_type=[PriceType.OFFICIAL_CLOSE_PRICE, PriceType.INDICATIVE_CLOSE_PRICE]
)

成分结构分析

STS指数的成分可以表示为树状结构,顶层是指数本身,下层是底层资产或中间节点(称为underliers),最底层是成分(constituents)。

1. 获取底层成分

# 获取指定日期的成分数据(DataFrame格式)
sstk_index.get_constituents_for_date(date=start_date)

# 获取成分的Instrument对象列表
sstk_instruments = sstk_index.get_constituent_instruments_for_date(date=start_date)

2. 获取完整成分树

# 获取成分树的根节点
tree_root = ma_index.get_underlier_tree()

# 将成分树转换为DataFrame
tree_df = tree_root.to_frame()

3. 可视化成分树

需要先安装treelib包:

pip install treelib

然后可以进行多种形式的可视化:

# 按名称可视化
ma_index.visualise_tree(visualise_by='name')

# 按Bloomberg ID可视化
ma_index.visualise_tree(visualise_by='bbid')

# 按资产ID可视化
ma_index.visualise_tree(visualise_by='id')

4. 获取underlier权重和归因

# 获取下一层underlier的权重
ma_index.get_underlier_weights()

# 获取下一层underlier的归因分析
ma_index.get_underlier_attribution()

基本面指标分析

单股票STS指数提供基本面指标数据:

1. 获取完整基本面数据

sstk_index.get_fundamentals(start=start_date, end=end_date)

2. 按条件获取基本面数据

可指定时间周期、方向和特定指标:

sstk_index.get_fundamentals(
    start=start_date,
    end=end_date,
    period=DataMeasure.ONE_YEAR,  # 1年周期
    direction=DataMeasure.TRAILING,  # 追溯方向
    metrics=[DataMeasure.PRICE_TO_CASH, DataMeasure.SALES_PER_SHARE],  # 指定指标
)

可用参数说明:

时间周期选项:

  • DataMeasure.ONE_YEAR - 1年
  • DataMeasure.TWO_YEARS - 2年
  • DataMeasure.THREE_YEARS - 3年

方向选项:

  • DataMeasure.FORWARD - 向前
  • DataMeasure.TRAILING - 追溯

指标选项:

  • DataMeasure.DIVIDEND_YIELD - 股息率
  • DataMeasure.EARNINGS_PER_SHARE - 每股收益
  • DataMeasure.PRICE_TO_BOOK - 市净率
  • DataMeasure.PRICE_TO_CASH - 市现率
  • DataMeasure.PRICE_TO_EARNINGS - 市盈率
  • DataMeasure.PRICE_TO_SALES - 市销率
  • DataMeasure.RETURN_ON_EQUITY - 净资产收益率
  • DataMeasure.SALES_PER_SHARE - 每股销售额

总结

通过本教程,您已经掌握了使用GS Quant分析STS指数的核心方法,包括:

  1. 指数基本信息获取
  2. 策略价值分析(官方和指示性价值)
  3. 成分结构分析(底层成分和完整成分树)
  4. 权重和归因分析
  5. 基本面指标分析

这些功能为量化分析师提供了强大的工具,可以深入理解STS指数的表现特征和构成要素。