Shortcuts

指数与主题成分#

指数(000300.XSHG、SPX.US)与主题(300900.THS)以 order_book_id 命名,规则与证券相同; 目录分别是 all_instruments(type="index") 与 all_instruments(type="theme")。每个函数都按 as_of 回答”那一天的事实”。全部代码见 指数代码表 与 主题(概念)代码表。

函数 / 类

解决的问题

get_instrument_indices()

查询证券在指定日期属于哪些指数

get_index_constituents()

查询指数在指定日期包含哪些证券

get_index_weights()

查询指数成分的权重(带 methodology)

get_instrument_themes()

查询证券在指定日期属于哪些主题

get_theme_constituents()

查询主题在指定日期包含哪些证券

get_theme_weights()

查询主题成分的权重(带 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