# 金融 / 行情 / 中间函数

## `getstockcallauctiontime(stockid, endt, flag)`

声明：function

返回集合竞价时间（取数时间）

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数      | 类型    | 说明                                                        |
| --------- | ------- | ----------------------------------------------------------- |
| `stockid` | string  | String,                                                     |
| `endt`    | date    | date,                                                       |
| `flag`    | integer | Integer,盘前or盘后集合竞价,开盘前集合竞价=1收盘前集合竞价=0 |

返回：array

### 示例

范例01：调用函数

```tsl
// 获取万科A在2020-06-22这一天的开盘前集合竞价数据起止时间。
return getstockcallauctiontime ('SZ000002', 20200622T, 1);
// 输出：array(44004.375, 44004.3958217593)
```

## `getUnilateralValue(exp, endt)`

声明：function

返回期货单边指标，与系统参数（证券代码）相关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数   | 类型        | 说明           |
| ------ | ----------- | -------------- |
| `exp`  | string      | 字符串。表达式 |
| `endt` | t_date_time | 日期。截止日   |

返回：real

### 示例

范例01：调用函数

```tsl
setSysParam(pn_stock(), "TF2403");
return getUnilateralValue(@amount(), 20240223T);
// 输出：16351794700
```

## `isLowCycle()`

声明：function

判断是否日线以上低频周期，与系统参数（周期）相关

<!-- tags: 金融 行情 中间函数 判断 检查 -->

返回：integer

## `marketAmountAWithStock(beg_t, end_t)`

声明：function

返回和股票对应的市场区间成交金额（万），与系统证券pn_stock()有关，不复权

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明             |
| ------- | ----------- | ---------------- |
| `beg_t` | t_date_time | 日期类型，开始日 |
| `end_t` | t_date_time | 日期类型，截止日 |

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A对应的市场板块（深证A股;中小企业板）的区间成交金额（万）。
setSysParam(PN_Stock(), 'SZ000002');
beg_t := intToDate(20180910);
end_t := intToDate(20180911);
return marketAmountAWithStock(beg_t, end_t);
// 输出：18397546.16
```

## `marketVolAWithStock(beg_t, end_t)`

声明：function

返回和股票对应的市场区间成交量（万），与系统证券pn_stock()有关，不复权

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明             |
| ------- | ----------- | ---------------- |
| `beg_t` | t_date_time | 日期类型，开始日 |
| `end_t` | t_date_time | 日期类型，截止日 |

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A对应的市场板块（深证A股;中小企业板）的区间成交量（万）。
setSysParam(PN_Stock(), 'SZ000002');
beg_t := intToDate(20180910);
end_t := intToDate(20180911);
return marketVolAWithStock(beg_t, end_t);
// 输出：2126291.86
```

## `pjCj(begttime, endttime, price_type, datatype)`

声明：function

返回区间平均成交价，与系统参数（证券代码）相关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数         | 类型      | 说明                              |
| ------------ | --------- | --------------------------------- |
| `begttime`   | tdatetime | 日期时间。开始日期时间            |
| `endttime`   | tdatetime | 日期时间。截止日期时间            |
| `price_type` | integer   | 用户自定义。平均价算法，取值如下: |
| `datatype`   | integer   | 用户自定义。数据类型，取值如下:   |

返回：real

### 示例

范例01：调用函数

```tsl
// 沪深300指数20241108 10:00的5分钟平均成交价(成交量加权平均)
setSysParam(pn_stock(), "SH000300");
return pjCj(20241108.0955T, 20241108.10T, 1, 1);
// 输出：4163.1544
```

## `stockBegTBeforeNDay(end_t, n)`

声明：function

返回最近N日/N周前的交易日，从EndT当天开始算第一天，与系统证券pn_stock()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `end_t` | datetime | 日期类型，截止日 |
| `n`     | int      | 整数类型，N日    |

返回：datetime

### 示例

范例01：调用函数

```tsl
SetSysParam(PN_Stock(), 'SZ000002');
EndT := inttodate(20180911);
return StockBegTBeforeNDay(EndT, 1);
```

## `stockEndOfMonth(end_t)`

声明：function

返回当月最后一个交易日(可取未来)

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明         |
| ------- | ----------- | ------------ |
| `end_t` | t_date_time | 日期。截止日 |

返回：real

### 示例

范例01：调用函数

```tsl
// 20230506T当月最后一个交易日
return stockEndOfMonth(20230506T);
// 输出：45077
```

## `stockendtafternday(begt, n)`

声明：function

返回指定日N个交易日后的日期

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数   | 类型    | 说明          |
| ------ | ------- | ------------- |
| `begt` | date    | date,开始日期 |
| `n`    | integer | integer,N日   |

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A在2018年9月11日向后推5个交易日的日期。
setSysParam(PN_Stock(), 'SZ000002');
end_t := intToDate(20180911);
return stockendtafternday(end_t, 5);
// 输出：43361（2018-09-18）
```

## `stockEndTPrevNDay(end_t, n)`

声明：function

返回指定日期向前推N个交易日期，与系统证券pn_stock()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明             |
| ------- | ----------- | ---------------- |
| `end_t` | t_date_time | 日期类型，截止日 |
| `n`     | integer     | 整数类型，交易日 |

返回：t_date_time

### 示例

范例01：调用函数

```tsl
// 返回万科A在2018年9月11日向前推5个交易日的日期。
setSysParam(PN_Stock(), 'SZ000002');
setSysParam(pn_cycle(), cy_day());
end_t := intToDate(20180911);
return stockEndTPrevNDay(end_t, 5);
// 输出：43347（2018-09-04）
```

## `stockHighAndLow(beg_t, end_t, h, l)`

声明：function

返回区间最高&最低，与系统证券pn_stock()有关，周期为日线，已复权（比例复权，基准日为EndT）

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明                   |
| ------- | ----------- | ---------------------- |
| `beg_t` | t_date_time | 日期类型，开始日       |
| `end_t` | t_date_time | 日期类型，截止日       |
| `h`     | real        | 实数，最高价，输出参数 |
| `l`     | real        | 实数，最低价，输出参数 |

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A在2018年9月1日至2018年9月11日的区间最高&最低。
setSysParam(PN_Stock(), 'SZ000002');
beg_t := intToDate(20180901);
end_t := intToDate(20180911);
stockHighAndLow(beg_t, end_t, h, l);
return array('high':h, 'low':l);
```

## `stockIsSTorSLim(end_t)`

声明：function

返回5%限制的股票判断，涨跌停判断的辅助函数

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明           |
| ------- | ----------- | -------------- |
| `end_t` | t_date_time | 日期。截止日期 |

返回：integer

## `stockNDayAdjust(n)`

声明：function

返回N日的修正（m），与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数 | 类型    | 说明               |
| ---- | ------- | ------------------ |
| `n`  | integer | 整数类型，日期间隙 |

返回：integer

### 示例

范例01：调用函数

```tsl
// 返回万科A截止2018年9月18日的100日修正后的交易日数。
setSysParam(PN_Stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20180918));
setSysParam(pn_cycle(), cy_day());
return stockNDayAdjust(100);
// 输出：100（万科A上市日为1991-01-02）
```

## `stockPriceChangeDay(beg_t, end_t, expr)`

声明：function

返回股票上涨天数，与系统证券pn_stock()有关，周期为日线，已复权

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明             |
| ------- | ----------- | ---------------- |
| `beg_t` | t_date_time | 日期类型，开始日 |
| `end_t` | t_date_time | 日期类型，截止日 |
| `expr`  | expression  | 表达式           |

返回：integer

### 示例

范例01：调用函数

```tsl
// 返回万科A在2018年9月11日至2018年9月18日之间的上涨天数。
setSysParam(PN_Stock(), 'SZ000002');
begt := intToDate(20180911);
endt := intToDate(20180918);
return stockPriceChangeDay(begt, endt, @isUp());
// 输出：2
```

## `stockPriceChangeDay2(n, expr)`

声明：function

返回N日上涨/下跌/平盘天数， 统计N天中表达式Exp值为真的天数，与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数   | 类型       | 说明                   |
| ------ | ---------- | ---------------------- |
| `n`    | integer    | 整数类型，交易日数     |
| `expr` | expression | 表达式，上涨/下跌/平盘 |

返回：integer

### 示例

范例01：调用函数

```tsl
// 返回万科A截止2018年9月18日的5日内的上涨天数。
setSysParam(PN_Stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20180918));
return stockPriceChangeDay2(5, @isUp());
// 输出：2
```

## `stockTradeDaysQkAfterN(beg_t, n)`

声明：function

返回指定日期向后推N个交易日期，与系统证券pn_stock()和系统周期pn_cycle()有关。调用时需注意设置系统参数

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明             |
| ------- | ----------- | ---------------- |
| `beg_t` | t_date_time | 日期类型，开始日 |
| `n`     | integer     | 整数类型，交易日 |

返回：t_date_time

### 示例

范例01：调用函数

```tsl
// 返回万科A在2018年9月11日向后推5个交易日的日期。
setSysParam(PN_Stock(), 'SZ000002');
setSysParam(pn_cycle(), cy_day());
end_t := intToDate(20180911);
return stockTradeDaysQkAfterN(end_t, 5);
// 输出：43361（2018-09-18）
```

## `stockValueHigh2(n, expr)`

声明：function

返回N日表达式的最高，与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

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

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A截止2018年9月18日的5日收盘表达式的最高。
setSysParam(PN_Stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20180918));
setSysParam(pn_cycle(), cy_day());
n := 5;
expr := @close();
return stockValueHigh2(n, expr);
// 输出：23.32
```

## `stockValueLow(beg_t, end_t, expr)`

声明：function

返回指定时间段内最低，与系统参数(股票)相关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明           |
| ------- | ----------- | -------------- |
| `beg_t` | t_date_time | 日期。开始日期 |
| `end_t` | t_date_time | 日期。截止日期 |
| `expr`  | string      | 字符串。表达式 |

返回：real

### 示例

范例01：调用函数

```tsl
setSysParam(pn_stock(), 'SZ000002');
return stockValueLow(20230101T, 20231231T, @vol());
// 输出：27320474
```

## `stockValueLow2(n, expr)`

声明：function

返回N日表达式的最低，与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数   | 类型       | 说明               |
| ------ | ---------- | ------------------ |
| `n`    | integer    | 整数类型，日期间隙 |
| `expr` | expression | 表达式             |

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A截止2018年9月18日的5日收盘表达式的最低。
setSysParam(PN_Stock(), 'SZ000002');
setSysParam(pn_date(), intToDate(20180918));
setSysParam(pn_cycle(), cy_day());
n := 5;
expr := @close();
return stockValueLow2(n, expr);
// 输出：22.83
```

## `stockValueSum(beg_t, end_t, expr)`

声明：function

返回阶段统计，即指定时间段内表达式的统计，与系统证券pn_stock()、系统周期pn_cycle()和系统时间有关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数    | 类型        | 说明             |
| ------- | ----------- | ---------------- |
| `beg_t` | t_date_time | 日期类型，开始日 |
| `end_t` | t_date_time | 日期类型，截止日 |
| `expr`  | expression  | 表达式           |

返回：real

### 示例

范例01：调用函数

```tsl
// 返回万科A在2018年9月1日至2018年9月11日之间收盘表达式的统计和。
setSysParam(PN_Stock(), 'SZ000002');
beg_t := intToDate(20180901);
end_t := intToDate(20180911);
expr := @close();
return stockValueSum(beg_t, end_t, expr);
// 输出：164.21
```

## `stockValueSum2(n, expr)`

声明：function

返回N日表达式的和，与系统证券pn_stock()、系统周期pn_cycle()和系统时间pn_date()有关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

| 参数   | 类型       | 说明               |
| ------ | ---------- | ------------------ |
| `n`    | int        | 整数类型，交易日数 |
| `expr` | expression | 表达式             |

返回：float

### 示例

范例01：调用函数

```tsl
SetSysParam(PN_Stock(), 'SZ000002');
setsysparam(pn_date(), inttodate(20180918));
setsysparam(pn_cycle(), cy_day());
N := 5;
Expr := @close();
return StockValueSum2(N, Expr);
```

## `stockZt_cal(endt, flag)`

声明：function

计算涨停的中间函数

<!-- tags: 金融 行情 中间函数 计算 求解 -->

| 参数   | 类型     | 说明                            |
| ------ | -------- | ------------------------------- |
| `endt` | datetime | 日期。截止日                    |
| `flag` | integer  | 用户自定义。价格类型，取值如下: |

返回：integer

## `trasactionMinutePerDay()`

声明：function

返回每天交易分钟数，即240分钟，与系统证券无关

<!-- tags: 金融 行情 中间函数 返回 获取 -->

返回：integer

### 示例

范例01：调用函数

```tsl
// 返回每天交易分钟数。
return trasactionMinutePerDay();
// 输出：240
```
