# 系统相关函数 / 表达式相关函数

## `doubleVariableExecute(arr, sys_name, time_arr, exp)`

声明：function

计算指定系统参数，指定时间序列下的指标表达式的值

<!-- tags: 计算 求解 -->

| 参数       | 类型        | 说明                         |
| ---------- | ----------- | ---------------------------- |
| `arr`      | integer     | 二维数组，设置的系统参数的值 |
| `sys_name` | integer     | 字符串，指定的系统参数名     |
| `time_arr` | integer     | 二维数组，需要计算的指定时间 |
| `exp`      | texpression | 表达式，指标表达式           |

返回：array

### 示例

```tsl
stocks := array(getBk('上证50'));
timer := marketTradeDayQk(20220101T, 20221211T);
return doubleVariableExecute(stocks, pn_Stock(), timer, @close());
// 输出：（部分结果截图）
```

## `multipleExecute(exp)`

声明：function

表达式求值

| 参数  | 类型        | 说明   |
| ----- | ----------- | ------ |
| `exp` | texpression | 表达式 |

返回：array

### 示例

```tsl
return multipleExecute(@(1 + 2));
// 输出：array()
```

## `safeEval(exp)`

声明：function

表达式求值

| 参数  | 类型        | 说明       |
| ----- | ----------- | ---------- |
| `exp` | texpression | 表达式类型 |

返回：any

### 示例

```tsl
return safeEval(@(1 + 2));
// 输出：3
```

## `safeSetSysParam(systype, value)`

声明：function

设置系统参数。主要是将value的值转化为正确的对应于systype数据类型，再通过setsysparam进行设置setysparam(systype,value)，保证系统参数设置成功

<!-- tags: 设置 修改 -->

| 参数      | 类型   | 说明                     |
| --------- | ------ | ------------------------ |
| `systype` | string | 字符串，系统参数名称     |
| `value`   | real   | 实数或字符串，系统参数值 |

返回：integer

### 示例

```tsl
return safeSetSysParam(pn_cycle(), cy_day());
// 输出：0
```

## `singleVariableExecute(arr, sys_name, exp)`

声明：function

设置系统变量SysName的值为Arr中的元素，执行表达式exp，将表达式的值放到数组Arr中

<!-- tags: 设置 修改 -->

| 参数       | 类型        | 说明                     |
| ---------- | ----------- | ------------------------ |
| `arr`      | array       | 数组，                   |
| `sys_name` | string      | 字符串，指定系统参数名称 |
| `exp`      | texpression | 表达式                   |

返回：array

### 示例

```tsl
// Arr中存储的是代码，获取2019年3月1日，Arr中所有代码的收盘价
arr := array('SZ000001', 'SZ000002');
return singleVariableExecute(arr, pn_stock(), @close());
```
