# 数据仓库 / 选股与取数

## `defaultRepId()`

选股与取数相关函数。

返回：int

### 示例

```tsl
oV:=BackUpSystemParameters2();
setsysparam(pn_stock(),'SZ000002');
RDate:= DefaultRepID();
V:=ReportNew(46002,RDate);
return v;
```

## `evalstring(s)`

内核使用，返回表达式s的值。

| 参数 | 类型   | 说明           |
| ---- | ------ | -------------- |
| `s`  | string | 字符串，表达式 |

返回：int

## `queryBk(arg1, arg2, expression_3, arg4, arg5, expression_6, arg7, expression_8, arg9, expression_10, arg11, expression_12)`

选股与取数相关函数。

| 参数            | 类型   | 说明 |
| --------------- | ------ | ---- |
| `arg1`          | string |      |
| `arg2`          | string |      |
| `expression_3`  | object |      |
| `arg4`          | string |      |
| `arg5`          | string |      |
| `expression_6`  | object |      |
| `arg7`          | string |      |
| `expression_8`  | object |      |
| `arg9`          | string |      |
| `expression_10` | object |      |
| `arg11`         | string |      |
| `expression_12` | object |      |

返回：array

## `queryBkWithPeriod(arg1, arg2, expression_3, arg4, arg5, expression_6, arg7, expression_8, arg9, expression_10)`

选股与取数相关函数。

| 参数            | 类型   | 说明 |
| --------------- | ------ | ---- |
| `arg1`          | string |      |
| `arg2`          | string |      |
| `expression_3`  | object |      |
| `arg4`          | string |      |
| `arg5`          | string |      |
| `expression_6`  | object |      |
| `arg7`          | string |      |
| `expression_8`  | object |      |
| `arg9`          | string |      |
| `expression_10` | object |      |

返回：float

### 示例

```tsl
setsysparam(pn_begt(),inttodate(20120801));
setsysparam(pn_endt(),inttodate(20121001));
setsysparam("TimeIndex",1);
return
QueryBKWithPeriod("深证A股","",@True,"","换手率(%)(加权,只考虑A股)",@Bk_HSL3(0,1),
"成交量(万)(只考虑A股)",@Bk_VolSum3(1),
"成交金额(万)(只考虑A股)",@Bk_AmountSum3(1));
```

## `qwpMaxCount()`

选股与取数相关函数。

返回：int

## `query(market_list, stock_id_list, condition, sort_field, field_name_n, expression_n)`

报表生成函数，在指定的市场列表MarketList和股票列表内满足条件的股票列出来，并按照SortName排序，并列出相关的数据信息

| 参数            | 类型        | 说明                                                          |
| --------------- | ----------- | ------------------------------------------------------------- |
| `market_list`   | String      | 市场板块列表，字符串                                          |
| `stock_id_list` | string      | 股票ID列表，字符串                                            |
| `condition`     | Boolean     | 布尔型，选股条件，如果只取值，没有条件限制，则condition取true |
| `sort_field`    | String      | 字符串，排序字段                                              |
| `field_name_n`  | String      | 字符串，字段名称                                              |
| `expression_n`  | texpression | TExpression表达式，字段内容                                   |

返回：array,tablearray

### 示例

```tsl
//查询指定日期，在板块上证A股;创业板以及SZ000001;SZ000002;SZ000997中满足
//收盘价大于10日均线的股票的以下信息：证券代码、证券名称，收盘价。
setSysParam(pn_date(),intToDate(20110909));
data := query('上证A股;创业板','SZ000001;SZ000002;SZ000997',
close()>ma(close(),10),'',
'证券代码',defaultStockId(),
'证券名称',currentStockName(),
'收盘价',close());
return data;
结果：
```

## `getDataByMd(stockid, n)`

使用Md获取指定日数据，与系统参数(时间)相关。

| 参数      | 类型    | 说明             |
| --------- | ------- | ---------------- |
| `stockid` | String  | 字符串。证券代码 |
| `n`       | Integer | 整数。第几个数据 |

返回：Real

### 示例

```tsl
// "MA110C2375"在20210322日的开仓手续费额
setSysParam(PN_Date(),20210322T);
return getDataByMd("MA110C2375.SP",1);
//结果：0.5
```

## `getDataByMd2(stockid, n)`

使用Md获取指定日数据（考虑交易日），与系统参数(时间)相关。

| 参数      | 类型    | 说明             |
| --------- | ------- | ---------------- |
| `stockid` | String  | 字符串。证券代码 |
| `n`       | Integer | 整数。第几个数据 |

返回：Real

### 示例

```tsl
// "MA110C2375"在20210322日的开仓手续费额
setSysParam(PN_Date(),20210322T);
return getDataByMd2("MA110C2375.SP",1);
//结果：0.5
```
