# 数据仓库 / 取行情数据序列函数

## `nDay(n, field_0, expression_0, ...)`

声明：function

提取或计算当前日期向前 `n` 个周期的数据，并按字段名称和表达式组成数据表

<!-- tags: 数据仓库 行情序列 历史数据 NDay 字段 表达式 -->

函数与系统证券、周期和日期参数相关，`field_0` 与 `expression_0` 之后可以继续传入任意数量的字段名称和表达式对

| 参数           | 类型         | 说明                                           |
| -------------- | ------------ | ---------------------------------------------- |
| `n`            | integer      | 提取的周期数                                   |
| `field_0`      | string       | 第一列的字段名称                               |
| `expression_0` | t_expression | 第一列的数据表达式                             |
| `...`          | any          | 可选。更多按字段名称、数据表达式成对传入的参数 |

返回：table_array

### 示例

范例01：获取万科 A 最近两个交易日的收盘价

```tsl
setSysParam(pn_stock(), "SZ000002");
setSysParam(pn_date(), 20140115T);
return nDay(2, "close", close());
```

## `nDay2(field_0, expression_0, field_1, expression_1, field_m, expression_m)`

声明：function

同NDay类似，只是没有参数N，默认180天，用户可以通过系统参数 pn_nDay进行设定天数。和当前的股票,周期,时间等系统参数相关。详细说明也可参考nday

<!-- tags: 数据仓库 取行情数据序列函数 -->

| 参数           | 类型        | 说明                   |
| -------------- | ----------- | ---------------------- |
| `field_0`      | string      | string 字段名          |
| `expression_0` | texpression | 表达式，跟Field0相对应 |
| `field_1`      | string      | string字段名           |
| `expression_1` | texpression | 表达式，跟Field1相对应 |
| `field_m`      | string      | string字段名           |
| `expression_m` | texpression | 表达式，跟FieldM相对应 |

返回：tablearray

### 示例

范例01：调用函数

```tsl
// 用NDAY2取得万科截止20110909前30个交易日的若干行情信息；
setSysParam(pn_stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20110909));
setSysParam(pn_nDay(), 30);
return nDay2('时间', dateTimeToStr(sp_time()),
    '收盘价', close(),
    '当日高价', high(),
    '30日均线', ma(close(), 30));
// 输出：
```

## `nDay3(n, expression)`

声明：function

提取或计算N个交易日的Expression数据。和当前的股票,周期,时间等系统参数相关。与Nday的区别即该函数仅能提取一个表达式Expression的数据，返回值为一维数组；而Nday可以提取多个，返回值为二维数组

<!-- tags: 数据仓库 取行情数据序列函数 计算 求解 -->

| 参数         | 类型        | 说明             |
| ------------ | ----------- | ---------------- |
| `n`          | integer     | 整数，交易日个数 |
| `expression` | texpression | 表达式           |

返回：array

### 示例

范例01：取得万科截止20110909前30个交易日的价格序列(按交易日升序排列)；

```tsl
// 取得万科截止20110909前30个交易日的价格序列(按交易日升序排列)；
setsysparam(pn_stock(), 'SZ000002');
setsysparam(pn_date(), inttodate(20110909));
return nday3(30, close());
```
