指数与主题成分#
指数(000300.XSHG、SPX.US)与主题(300900.THS)以 order_book_id 命名,规则与证券相同;
目录分别是 all_instruments(type="index") 与 all_instruments(type="theme")。每个函数都按 as_of
回答”那一天的事实”。全部代码见 指数代码表 与 主题(概念)代码表。
函数 / 类 |
解决的问题 |
|---|---|
查询证券在指定日期属于哪些指数 |
|
查询指数在指定日期包含哪些证券 |
|
查询指数成分的权重(带 methodology) |
|
查询证券在指定日期属于哪些主题 |
|
查询主题在指定日期包含哪些证券 |
|
查询主题成分的权重(带 methodology) |
指数#
- libfinance.get_instrument_indices(order_book_ids, source=None, as_of=None)[源代码]#
查询证券在指定日期所属的指数。
- 参数
order_book_ids – 证券代码列表(单个代码也可以),代码自己确定市场
source – 指数发布机构,如
"CSI"、"SPDJI";省略则返回全部发布机构as_of – 那一天的事实;省略则取数据已确认的最新日期
- 返回
pandas.DataFrame,包含 order_book_id、related_order_book_id(指数代码)、source、market 和 level。
示例
1. 一只 A 股、一只美股所属的指数
print(lf.get_instrument_indices(["600000.XSHG", "AAPL.US"], as_of="2024-06-28").head(10))
order_book_id related_order_book_id source market level
0 600000.XSHG 000300.XSHG CSI CN NaN
1 600000.XSHG 000906.XSHG CSI CN NaN
2 600000.XSHG 000922.XSHG CSI CN NaN
3 AAPL.US DJIA.US SPDJI US NaN
4 AAPL.US NDX.US NASDAQ US NaN
5 AAPL.US SPX.US SPDJI US NaN
show(lf::get_instrument_indices({"600000.XSHG", "AAPL.US"}, std::nullopt, "2024-06-28"), 10);
order_book_id related_order_book_id source market level
600000.XSHG 000300.XSHG CSI CN NaN
600000.XSHG 000906.XSHG CSI CN NaN
600000.XSHG 000922.XSHG CSI CN NaN
AAPL.US DJIA.US SPDJI US NaN
AAPL.US NDX.US NASDAQ US NaN
AAPL.US SPX.US SPDJI US NaN
[6 rows x 5 columns]
2. 只看中证指数公司(CSI)发布的指数
print(lf.get_instrument_indices("600000.XSHG", source="CSI", as_of="2024-06-28"))
order_book_id related_order_book_id source market level
0 600000.XSHG 000300.XSHG CSI CN NaN
1 600000.XSHG 000906.XSHG CSI CN NaN
2 600000.XSHG 000922.XSHG CSI CN NaN
show(lf::get_instrument_indices("600000.XSHG", "CSI", "2024-06-28"), 0);
order_book_id related_order_book_id source market level
600000.XSHG 000300.XSHG CSI CN NaN
600000.XSHG 000906.XSHG CSI CN NaN
600000.XSHG 000922.XSHG CSI CN NaN
[3 rows x 5 columns]
输出由 docs/_shared/update_examples.py 运行示例脚本生成:数据版本 sha256:6feda8ca,2026-10-09。
下载示例脚本: 09_index.cpp · 09_index.py
- libfinance.get_index_constituents(order_book_id, as_of=None)[源代码]#
获取指数在指定日期的成分证券。
- 参数
order_book_id – 指数代码,如
"000300.XSHG"(沪深300)、"SPX.US"as_of – 那一天的事实;省略则取指数已确认的最新日期
- 返回
list[str],成分证券的
order_book_id;没有市场发布该指数时为None。
示例
1. 沪深 300 在 2024-06-28 的成分
members = lf.get_index_constituents("000300.XSHG", as_of="2024-06-28")
print(len(members), members[:5])
300 ['000001.XSHE', '000002.XSHE', '000063.XSHE', '000100.XSHE', '000157.XSHE']
show_list(lf::get_index_constituents("000300.XSHG", "2024-06-28"));
300 ['000001.XSHE', '000002.XSHE', '000063.XSHE', '000100.XSHE', '000157.XSHE']
2. 省略 as_of:已确认的最新成分
members = lf.get_index_constituents("SPX.US")
print(len(members), members[:5])
504 ['A.US', 'AAPL.US', 'ABBV.US', 'ABNB.US', 'ABT.US']
show_list(lf::get_index_constituents("SPX.US"));
504 ['A.US', 'AAPL.US', 'ABBV.US', 'ABNB.US', 'ABT.US']
输出由 docs/_shared/update_examples.py 运行示例脚本生成:数据版本 sha256:6feda8ca,2026-10-09。
下载示例脚本: 09_index.cpp · 09_index.py
- libfinance.get_index_weights(order_book_id, as_of=None)[源代码]#
获取指数在指定日期的成分权重。
- 参数
order_book_id – 指数代码,如
"000300.XSHG"as_of – 那一天的事实;省略则取指数已确认的最新日期
- 返回
pandas.DataFrame,包含 order_book_id(成分证券)、weight、methodology、source(指数发布机构)、 basis(origin 数据源发布 / reconstructed 按编制方法重构)、date(权重所在的日子)、quality_flags。 权重是月末快照:其余交易日取之前最近一期、按各成分的复权收益率漂移,date 为 as_of,quality_flags 带 DRIFTED。
示例
1. 成分权重与 methodology;非月末日按复权收益率漂移
weights = lf.get_index_weights("000300.XSHG", as_of="2024-06-28")
print(weights.head())
print(weights["weight"].sum())
order_book_id weight methodology source basis date quality_flags
0 000001.XSHE 0.005954 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
1 000002.XSHE 0.002663 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
2 000063.XSHE 0.005034 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
3 000069.XSHE 0.000566 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
4 000100.XSHE 0.004663 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
1.0
const auto weights = lf::get_index_weights("000300.XSHG", "2024-06-28");
show(weights);
std::cout << column_sum(weights, "weight") << "\n";
order_book_id weight methodology source basis date quality_flags
000001.XSHE 0.005954 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
000002.XSHE 0.002663 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
000063.XSHE 0.005034 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
000069.XSHE 0.000566 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
000100.XSHE 0.004663 VENDOR_SNAPSHOT CSI origin 2024-06-28 [DRIFTED]
...
[300 rows x 7 columns]
1
输出由 docs/_shared/update_examples.py 运行示例脚本生成:数据版本 sha256:6feda8ca,2026-10-09。
下载示例脚本: 09_index.cpp · 09_index.py
主题#
- libfinance.get_instrument_themes(order_book_ids, source=None, as_of=None)[源代码]#
查询证券在指定日期所属的主题。
- 参数
order_book_ids – 证券代码列表(单个代码也可以),代码自己确定市场
source – 主题定义方,如
"THS";省略则返回全部定义方as_of – 那一天的事实;省略则取数据已确认的最新日期
- 返回
pandas.DataFrame,包含 order_book_id、related_order_book_id(主题代码)、source、market 和 level。
示例
1. 证券当前所属的主题
print(lf.get_instrument_themes(["600000.XSHG", "000001.XSHE"], source="THS").head(10))
order_book_id related_order_book_id source market level
0 000001.XSHE 300900.THS THS CN NaN
1 000001.XSHE 301636.THS THS CN NaN
2 000001.XSHE 309124.THS THS CN NaN
3 600000.XSHG 300900.THS THS CN NaN
4 600000.XSHG 301377.THS THS CN NaN
5 600000.XSHG 301490.THS THS CN NaN
6 600000.XSHG 309124.THS THS CN NaN
show(lf::get_instrument_themes({"600000.XSHG", "000001.XSHE"}, "THS"), 10);
order_book_id related_order_book_id source market level
000001.XSHE 300900.THS THS CN NaN
000001.XSHE 301636.THS THS CN NaN
000001.XSHE 309124.THS THS CN NaN
600000.XSHG 300900.THS THS CN NaN
600000.XSHG 301377.THS THS CN NaN
600000.XSHG 301490.THS THS CN NaN
600000.XSHG 309124.THS THS CN NaN
[7 rows x 5 columns]
输出由 docs/_shared/update_examples.py 运行示例脚本生成:数据版本 sha256:6feda8ca,2026-10-09。
下载示例脚本: 10_theme.cpp · 10_theme.py
- libfinance.get_theme_constituents(order_book_id, as_of=None)[源代码]#
获取主题在指定日期的成分证券。
- 参数
order_book_id – 主题代码,如
"885311.THS"as_of – 那一天的事实;省略则取数据已确认的最新日期
- 返回
list[str],成分证券的
order_book_id;该日没有这个主题时为None。
示例
1. 一个主题的成分
members = lf.get_theme_constituents("300008.THS")
print(len(members), members[:5])
1061 ['000009.XSHE', '000021.XSHE', '000030.XSHE', '000049.XSHE', '000062.XSHE']
show_list(lf::get_theme_constituents("300008.THS"));
1061 ['000009.XSHE', '000021.XSHE', '000030.XSHE', '000049.XSHE', '000062.XSHE']
输出由 docs/_shared/update_examples.py 运行示例脚本生成:数据版本 sha256:6feda8ca,2026-10-09。
下载示例脚本: 10_theme.cpp · 10_theme.py
- libfinance.get_theme_weights(order_book_id, as_of=None)[源代码]#
获取主题在指定日期的成分权重。
每一行都带
methodology:THS 主题的derived_equal_weight是由成分名单推出的等权, 不是供应商权重。- 参数
order_book_id – 主题代码,如
"885311.THS"as_of – 那一天的事实;省略则取数据已确认的最新日期
- 返回
pandas.DataFrame,包含 order_book_id(成分证券)、weight、methodology、source、effective_from、effective_to。
示例
1. 主题权重:由成分名单推出的等权
print(lf.get_theme_weights("300008.THS").head())
order_book_id weight methodology source effective_from effective_to
0 000009.XSHE 0.000943 derived_equal_weight THS 2026-09-22 None
1 000021.XSHE 0.000943 derived_equal_weight THS 2026-09-22 None
2 000030.XSHE 0.000943 derived_equal_weight THS 2026-09-22 None
3 000049.XSHE 0.000943 derived_equal_weight THS 2026-09-22 None
4 000062.XSHE 0.000943 derived_equal_weight THS 2026-09-22 None
show(lf::get_theme_weights("300008.THS"));
order_book_id weight methodology source effective_from effective_to
000009.XSHE 0.000943 derived_equal_weight THS 2026-09-22 NaN
000021.XSHE 0.000943 derived_equal_weight THS 2026-09-22 NaN
000030.XSHE 0.000943 derived_equal_weight THS 2026-09-22 NaN
000049.XSHE 0.000943 derived_equal_weight THS 2026-09-22 NaN
000062.XSHE 0.000943 derived_equal_weight THS 2026-09-22 NaN
...
[1061 rows x 6 columns]
输出由 docs/_shared/update_examples.py 运行示例脚本生成:数据版本 sha256:6feda8ca,2026-10-09。
下载示例脚本: 10_theme.cpp · 10_theme.py