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指数功能需要确保您的应用已获得以下数据集的访问权限:
- STSLEVELS - STS指数的官方价值
- STS_INDICATIVE_LEVELS - STS指数的指示性价值
- STS_FUNDAMENTALS - STS指数的基本面指标
- STS_UNDERLIER_WEIGHTS - STS指数底层资产的权重
- STS_UNDERLIER_ATTRIBUTION - STS指数底层资产的归因分析
- 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指数的核心方法,包括:
- 指数基本信息获取
- 策略价值分析(官方和指示性价值)
- 成分结构分析(底层成分和完整成分树)
- 权重和归因分析
- 基本面指标分析
这些功能为量化分析师提供了强大的工具,可以深入理解STS指数的表现特征和构成要素。