# 金融 / 金融工程 / 指数研究

## `indexKLine_adjustSampleByDate_ii(t, index_name, end_t, first_value, rate_type, show_type)`

声明：function

返回复合指数（按日期调整样本），手算过程见： `www.tinysoft.com.cn/download/doc/Index_UserDefinedSampleAndDate.xls`

<!-- tags: 金融 金融工程 指数研究 查找 搜索 lookup 返回 获取 -->

| 参数          | 类型        | 说明                                    |
| ------------- | ----------- | --------------------------------------- |
| `t`           | table_array | 数据表，自定义样本                      |
| `index_name`  | string      | 字符串，指数代码                        |
| `end_t`       | datetime    | 日期型时间，截止时间                    |
| `first_value` | integer     | 用户自定义，开始日指数取值，含义如下表: |
| `rate_type`   | integer     | 用户自定义，计算方法，含义如下表:       |
| `show_type`   | integer     | 用户自定义，返回类型，含义如下表:       |

返回：table_array

### 示例

范例01：调用 IndexKLine_AdjustSampleByDate_II

```tsl
t := array(
    ("日期":39080.00, "代码":"SH600550", "名称":"天威保变"),
    ("日期":39080.00, "代码":"SH600331", "名称":"宏达股份"),
    ("日期":39080.00, "代码":"SH601398", "名称":"工商银行"),
    ("日期":39080.00, "代码":"SH600030", "名称":"中信证券"),
    ("日期":39080.00, "代码":"SH600016", "名称":"民生银行"),
    ("日期":39080.00, "代码":"SH600036", "名称":"招商银行"),
    ("日期":39172.00, "代码":"SH600418", "名称":"江淮汽车"),
    ("日期":39172.00, "代码":"SH600649", "名称":"原水股份"),
    ("日期":39172.00, "代码":"SH600362", "名称":"江西铜业"),
    ("日期":39172.00, "代码":"SH600550", "名称":"天威保变"),
    ("日期":39172.00, "代码":"SH600011", "名称":"华能国际"),
);
return IndexKLine_AdjustSampleByDate_II(t,
    'SH000001',
    INTTODATE(20120613),
    1000, 0, 1);
```

## `manyBksKLine(bk_names, index_name, first_value, beg_t, end_t, rate_type, bonus_infection, new_stock_to_index, show_cycle_name, show_type)`

声明：function

在不调整样本的情况下计算多个板块的复合指数并与指定指数对齐

<!-- tags: 金融 金融工程 指数研究 板块指数 复合指数 多板块 K线 对比 加权 -->

| 参数                 | 类型        | 说明                           |
| -------------------- | ----------- | ------------------------------ |
| `bk_names`           | string      | 板块名称，多个名称用分号分隔   |
| `index_name`         | string      | 用于对比和确定基准值的指数代码 |
| `first_value`        | integer     | 首日指数值，取值见下           |
| `beg_t`              | t_date_time | 开始日期                       |
| `end_t`              | t_date_time | 结束日期                       |
| `rate_type`          | integer     | 加权方式，取值见下             |
| `bonus_infection`    | boolean     | 是否考虑分红影响               |
| `new_stock_to_index` | integer     | 新股上市后计入指数的天数       |
| `show_cycle_name`    | string      | 返回数据的周期                 |
| `show_type`          | integer     | 返回形式，取值见下             |

first_value 取值

- `-1` — 使用对比指数的首日收盘值
- `1000` — 使用 1000 点作为基准值

rate_type 取值

- `0` — 总市值加权
- `1` — 流通市值加权
- `2` — 总股本加权
- `3` — 流通股本加权
- `4` — 等权重
- `5` — 等股数
- `6` — 流通市值平方根加权
- `7` — 总市值平方根加权

show_type 取值

- `0` — 图形
- `1` — 数据

返回：table_array

### 示例

范例01：比较上证 A 股、沪深 300 与上证指数

```tsl
return manyBksKLine(
    "上证A股;沪深300",
    "SH000001",
    -1,
    20120818T,
    20120926T,
    0,
    true,
    2,
    cy_day(),
    1);
```

## `manyBksKLine_ii(user_def_arr, index_name, first_value, beg_t, end_t, show_cycle_name, show_type)`

声明：function

返回板块指数（自定义权重）

<!-- tags: 金融 金融工程 指数研究 查找 搜索 lookup 返回 获取 -->

| 参数              | 类型        | 说明                                    |
| ----------------- | ----------- | --------------------------------------- |
| `user_def_arr`    | table_array | 数据表，股票及投资比例                  |
| `index_name`      | string      | 字符串，指数代码                        |
| `first_value`     | intger      | 用户自定义，开始日指数取值，含义如下表: |
| `beg_t`           | datetime    | 日期型时间，开始时间                    |
| `end_t`           | datetime    | 日期型时间，截止时间                    |
| `show_cycle_name` | string      | 字符串，显示周期                        |
| `show_type`       | ingter      | 用户自定义，返回类型，含义如下表:       |

返回：table_array

### 示例

范例01：调用 ManyBksKLine_II

```tsl
UserDefArr := array(('代码':'SZ000001', '名称':'平安银行', '比例(%)':40), ('代码':'SH6000010', '名称':'浦发银行', '比例(%)':30), ('代码':'SZ000002', '名称':'万科A', '比例(%)':30));
RETURN ManyBksKLine_II(UserDefArr,
    'SH000001',
    -1,
    inttodate(20120818),
    inttodate(20120918),
    CY_DAY(), 1);
```

## `stockVsIndexKLine(stocks, index_name, stocks_2, first_value, beg_t, end_t, rate_type, bonus_infection, new_stock_to_index, show_cycle_name, show_type)`

声明：function

将指定股票、市场指数和另一组股票计算得到的复合指数按同一基准叠加比较

<!-- tags: 金融 金融工程 指数研究 股票 指数 复合指数 K线 叠加 对比 -->

| 参数                 | 类型        | 说明                                   |
| -------------------- | ----------- | -------------------------------------- |
| `stocks`             | string      | 直接显示的股票代码，多个代码用分号分隔 |
| `index_name`         | string      | 用于对比的市场指数代码                 |
| `stocks_2`           | string      | 用于计算复合指数的股票代码             |
| `first_value`        | integer     | 首日指数值，取值见下                   |
| `beg_t`              | t_date_time | 开始日期                               |
| `end_t`              | t_date_time | 结束日期                               |
| `rate_type`          | integer     | 复合指数加权方式，取值见下             |
| `bonus_infection`    | boolean     | 是否考虑分红影响                       |
| `new_stock_to_index` | integer     | 新股上市后计入指数的天数               |
| `show_cycle_name`    | string      | 返回数据的周期                         |
| `show_type`          | integer     | 返回形式，取值见下                     |

first_value 取值

- `-1` — 使用对比指数的首日收盘值
- `1000` — 使用 1000 点作为基准值

rate_type 取值

- `0` — 总市值加权
- `1` — 流通市值加权
- `2` — 总股本加权
- `3` — 流通股本加权
- `4` — 等权重
- `5` — 等股数
- `6` — 流通市值平方根加权
- `7` — 总市值平方根加权

show_type 取值

- `0` — 图形
- `1` — 数据

返回：table_array

### 示例

范例01：比较东软集团、上证指数和股票复合指数

```tsl
return stockVsIndexKLine(
    "SH600718",
    "SH000001",
    "SH600567",
    -1,
    20120618T,
    20120926T,
    1,
    true,
    2,
    cy_day(),
    1);
```
