# 金融 / 指数 / 指数情况

## `getAllIndexIDs(end_t)`

声明：function

获取指定日所有申万行业指数ID及名称对照表

<!-- tags: 金融 指数 指数情况 获取 查询 ID -->

| 参数    | 类型     | 说明          |
| ------- | -------- | ------------- |
| `end_t` | datetime | 日期,截止日期 |

返回：array

### 示例

范例01：调用 GetAllIndexIDs

```tsl
Return GetAllIndexIDs(20251029T);
```

## `getBkBacktrackByDate(index_id, end_t, ex_type)`

声明：function

获取指数历史上指定日样本(可回溯)。当ExType=1时，如指数成分中取不到成分，则从权重表中获取。此函数可以简单回溯历史数据，当Endt早于指数开始日，则选取指数开始日成分股在endt在市交易的成分股列表

<!-- tags: 金融 指数 指数情况 获取 查询 -->

| 参数       | 类型     | 说明             |
| ---------- | -------- | ---------------- |
| `index_id` | string   | 字符串。指数代码 |
| `end_t`    | datetime | 日期。截止日     |
| `ex_type`  | int      | 整数。是否扩展   |

返回：array

### 示例

范例01：SWHY740000申万煤炭在20140805的成分数据

```tsl
// SWHY740000申万煤炭在20140805的成分数据
return GetBKBacktrackByDate("SWHY740000", 20140805T);
```

## `getbkbybegtendt(indexid, begt, endt)`

声明：function

返回区间曾经是成分股的股票,区间范围内是指数成份股的股票

<!-- tags: 金融 指数 指数情况 返回 获取 -->

| 参数      | 类型     | 说明                                                       |
| --------- | -------- | ---------------------------------------------------------- |
| `indexid` | string   | 字符串,板块代码，一个或多个代码，多个代码以英文分号“;”隔开 |
| `begt`    | datetime | Tdatetime,开始日期                                         |
| `endt`    | datetime | Tdatetime,截止日期                                         |

返回：array

## `getBkByDate(index_id, end_t, extype)`

声明：function

获取指数或分类属性在指定日的成份股列表。与getBk不同，该函数需要日期参数；普通指数使用
指数代码，行业或基金分类使用分类属性代码。新增功能，当ExType=1时指数成分中取不到成分时，
则从权重表中获取

<!-- tags: 金融 指数 指数情况 历史成份股 分类属性代码 下级分类 SWHY CAPCHY CSRCHY YHFL TSJJ02 TSJJ03 TSI000001 TSI000002 TSI000003 TSI000004 TSI000005 TSI000006 TSI000007 TSI000008 TSI000009 获取 查询 -->

| 参数       | 类型     | 说明                                                                                  |
| ---------- | -------- | ------------------------------------------------------------------------------------- |
| `index_id` | string   | 指数代码、分类属性代码或 TSI 市场板块代码                                             |
| `end_t`    | datetime | 截止日                                                                                |
| `extype`   | int      | 整型,是否扩展，默认不扩展；0:不扩展；1:扩展取数（指数成分表无数据时，从权重表中获取） |

返回：table

### 示例

范例01：获取沪深300在2012年9月8日的成份股列表

```tsl
// 获取沪深300在2012年9月8日的成份股列表。
Return GetBkByDate('SH000300', inttodate(20120908));
```

范例02：创业板综在20201201的成分数据

```tsl
// 创业板综在20201201的成分数据
return GetBKByDate("SZ399102", 20201201T, 1); // 取权重中的成份股替代
```

范例03：取指定日申万分类的下级属性代码

```tsl
return GetBKByDate("SWHY.N", 20210423T, 0);
```

范例04：取指定日申万分类的成份股

```tsl
return GetBKByDate("SWHY740000", 20220101T, 0);
```

范例05：取指定日 A 股市场板块的成份股

```tsl
return GetBKByDate("TSI000001", 20230810T, 0);
```

范例06：取指定日投资风格分类下的基金

```tsl
return GetBKByDate("TSJJ0201", 20220101T, 0);
```

`index_id` 使用分类属性代码时，代码末尾的 `.N` 表示返回该分类节点在指定日的下级
分类属性代码；不带 `.N` 时返回该分类节点的成份券。常用根分类包括股票的 `SWHY`、
`CAPCHY`、`CSRCHY`，以及基金的 `YHFL`、`TSJJ02`、`TSJJ03`。分类目录信息和分类归属
信息分别见股票表 138、139 及基金表 355、356；不能把分类属性代码当作个券代码传给归属表。
级数为 0 的根代码本身没有成份券；要先用根代码加 `.N` 取得一级分类代码。`CSRCHY`
自 2024-02-19 起不再维护，此后使用 `CAPCHY`。

## `getBkByIndexName(index_name, end_t)`

声明：function

返回使用指数名称获取指定日指数成分，只支持申万行业、A股

<!-- tags: 金融 指数 指数情况 返回 获取 -->

| 参数         | 类型     | 说明            |
| ------------ | -------- | --------------- |
| `index_name` | string   | 字符串,指数名称 |
| `end_t`      | datetime | 日期,截止日期   |

返回：array

### 示例

范例01：调用 GetBKByIndexName

```tsl
// A股在20201201的成分数据
return GetBKByIndexName("A股", 20201201T);
```

## `getBkGoMarketByDate(index_id, end_t, ex_type)`

声明：function

获取指数历史上指定日样本(已上市)。当ExType=1时指数成分中取不到成分时，则从权重表中获取。存在申万行业分类的成份股中，它的选入日期可能早于上市日，现剔除这部分标的

<!-- tags: 金融 指数 指数情况 获取 查询 -->

| 参数       | 类型     | 说明             |
| ---------- | -------- | ---------------- |
| `index_id` | string   | 字符串。指数代码 |
| `end_t`    | datetime | 日期。截止日     |
| `ex_type`  | int      | 整数。是否扩展   |

返回：array

### 示例

范例01：创业板综在20201201的成分数据

```tsl
// 创业板综在20201201的成分数据
return GetBKGoMarketByDate("SZ399102", 20201201T, 1);
```

## `getBkNameToId(index_name, end_t)`

声明：function

返回使用指数名称获取指定日指数成分

<!-- tags: 金融 指数 指数情况 返回 获取 -->

| 参数         | 类型     | 说明            |
| ------------ | -------- | --------------- |
| `index_name` | string   | 字符串,指数名称 |
| `end_t`      | datetime | 日期,截止日期   |

返回：array

### 示例

范例01：调用 GetBKNameToId

```tsl
// 创业板综在20201201的成分数据
return GetBKNameToId("A股", 20201201T);
```

## `getIndexAdjustDate(index_id, beg_t, end_t)`

声明：function

返回指定指数在起止日期区间内的全部调整日序列

<!-- tags: 金融 指数 指数情况 调整日 调仓 日期 序列 -->

| 参数       | 类型       | 说明     |
| ---------- | ---------- | -------- |
| `index_id` | index_list | 指数代码 |
| `beg_t`    | date       | 开始日期 |
| `end_t`    | date       | 截止日期 |

返回：array

### 示例

范例01：取得沪深 300 在 2025 年内的全部调整日

```tsl
return getIndexAdjustDate('SH000300', 20250101T, 20251231T);
// 输出：array(20250304,20250616,20250905,20251215)
```

## `stock_hsgEligibleInfo(bkid, stockid)`

声明：function

返回股票调入调出沪深港通情况,返回：板块代码、板块、代码、入选日期、剔除日期、成份标志

<!-- tags: 金融 指数 指数情况 返回 获取 -->

| 参数      | 类型   | 说明                                                                                                        |
| --------- | ------ | ----------------------------------------------------------------------------------------------------------- |
| `bkid`    | string | 字符串,字符串，通道代码；"HG000001" 港股通(沪)；"HG000003" 港股通(深)；"HG000002" 沪股通；"HG000004" 深股通 |
| `stockid` | string | 字符串,股票代码                                                                                             |

返回：array

## `stockIsIndexComposite(index_id, end_t)`

声明：function

查询指定日股票是否是指数的成份股，与系统证券pn_stock()相关

<!-- tags: 金融 指数 指数情况 -->

| 参数       | 类型     | 说明   |
| ---------- | -------- | ------ |
| `index_id` | string   | 指数   |
| `end_t`    | datetime | 截止日 |

返回：bool

### 示例

范例01：调用函数

```tsl
setsysparam(pn_stock(), 'SZ000002');
return StockIsIndexComposite('SH000300', inttodate(20120907));
```
