# 运行时 / 通用

## `call(func_name, p1, pn)`

根据名称或者函数指针调用指定的函数，后面带的参数将自动送入该函数。

| 参数        | 类型   | 说明          |
| ----------- | ------ | ------------- |
| `func_name` | string | TFunction     |
| `p1`        | any    | 整数，参数1   |
| `pn`        | any    | 整数，参数N。 |

返回：any

## `checkGlobalCacheExpired(value)`

判断全局缓存引用是否已经过期。

| 参数    | 类型 | 说明                                 |
| ------- | ---- | ------------------------------------ |
| `value` | any  | `getGlobalCache(...)` 取出的缓存引用 |

返回：bool

## `dbglocalcancel(id, return_value)`

注销任务。该功能可以用来终止运行的WEB任务。 其任务ID为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数。

| 参数           | 类型 | 说明                                                              |
| -------------- | ---- | ----------------------------------------------------------------- |
| `id`           | int  | 为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数 |
| `return_value` | bool | object                                                            |

返回：bool

## `divMod(dividend, divisor, remainder)`

计算整数除法的整数商和余数。也就是用参数Dividend除以参数Divisor，得到的整数商存到参数Result中，把余数存到参数Remainder中

| 参数        | 类型 | 说明         |
| ----------- | ---- | ------------ |
| `dividend`  | int  | 整数，被除数 |
| `divisor`   | int  | 整数，除数   |
| `remainder` | int  | 整数，余数   |

返回：float

## `eastrq(b, c, q)`

Eastrq 相关函数。

| 参数 | 类型  | 说明             |
| ---- | ----- | ---------------- |
| `b`  | array | 一维数字数组类型 |
| `c`  | array | 一维数字数组类型 |
| `q`  | array | 二维数字数组类型 |

返回：int

## `ensureRange(amin, amax)`

这个函数可以保证返回某个区间之内的数，参数Amin和参数Amax是这个区间的上限和下限。 如果参数Avalue大于等于参数Amin并且小于等于参数Amax，则返回Avalue 如果参数Avalue大于参数Amax，则返回Amax的值 如果参数Avalue小于参数Amin，则返回Amin的值

| 参数   | 类型  | 说明 |
| ------ | ----- | ---- |
| `amin` | float | 实数 |
| `amax` | float | 实数 |

返回：float

## `exportJsonStringMbcs(data, n, return_value)`

将TSL结构数据转换为json串。和ExportJSONString不同的是，该函数不会对中文进行转码处理，保留中文原码。

| 参数           | 类型    | 说明                                                                          |
| -------------- | ------- | ----------------------------------------------------------------------------- |
| `data`         | AnyType | 天软数据，任意数据类型。                                                      |
| `n`            | int     | 可选参数，要保留的小数位数。为0时保留1位小数，大于16或小于0时保留全部小数位数 |
| `return_value` | string  | 字符串，json串                                                                |

返回：string

## `frameconcat(arrdic, _type)`

数据表-拼接

| 参数     | 类型      | 说明                                                            |
| -------- | --------- | --------------------------------------------------------------- |
| `arrdic` | array     | Array of number,数组的数组,需要拼接的数组集合                   |
| `_type`  | Usrdefine | Usrdefine,数组拼接方式，默认为0行并=0；列并=1；非完全矩阵列并=2 |

返回：array

### 示例

```tsl
a := ones(3,3);
b := ones(2,3);
frameconcat(array(a,b));
```

## `getEigenValue(a, eigen_value)`

通过赋值得到EigenValue

| 参数          | 类型  | 说明             |
| ------------- | ----- | ---------------- |
| `a`           | array | 二维数字数组类型 |
| `eigen_value` | array | 一维数字数组类型 |

返回：any

## `H_J_Method_Pgm(call_back)`

H_J算法测试

| 参数        | 类型   | 说明                         |
| ----------- | ------ | ---------------------------- |
| `call_back` | string | 字符串类型，计算目标值的回调 |

返回：array

## `inRange(amin, amax)`

判断Avalue是否在\[Amin, Amax\]范围内

| 参数   | 类型  | 说明 |
| ------ | ----- | ---- |
| `amin` | float | 实数 |
| `amax` | float | 实数 |

返回：bool

## `interestRate(nperiods, payment, present_value, future_value, payment_time)`

返回要求收益率，使得这项投资从现值PresentValue实现终值FutureValue，在共NPeriods个周期后实现。如果周期定义为一年，那么结果就是要求的年收益率。

| 参数            | 类型  | 说明                                     |
| --------------- | ----- | ---------------------------------------- |
| `nperiods`      | int   | 整数，表示还款的总期数                   |
| `payment`       | float | 实数，表示投资期内，每期投入值，一般为负 |
| `present_value` | float | 实数，表示贷款总额                       |
| `future_value`  | int   | 实数，表示投资的未来值                   |
| `payment_time`  | int   | PaymentTime决定现金流是在期初或期末发生  |

返回：float

## `invoke(obj, member_name, member_value, p1, pn)`

调用类的成员方法或对类的成员变量进行赋值操作。支持对重载方法的调用。

| 参数           | 类型      | 说明                                                    |
| -------------- | --------- | ------------------------------------------------------- |
| `obj`          | TSLObject | TSLObject，实例对象                                     |
| `member_name`  | string    | 字符串（小写），成员(方法或属性)的名称                  |
| `member_value` | bool      | object                                                  |
| `p1`           | any       | 任意值，成员属性时需要赋的值或成员方法时的第一个参数；… |
| `pn`           | any       | 任意值，成员方法的第n个参数                             |

返回：any

## 未细分函数

## `logined()`

判定是否已经登录成功。只读属性。

返回：any

## `milliSecondSpan()`

范围生成函数相关函数。

返回：float

## `mswap(value, dim1, dim2)`

交换多维 FMArray 的两个维度。

| 参数    | 类型  | 说明           |
| ------- | ----- | -------------- |
| `value` | array | 输入 FMArray   |
| `dim1`  | any   | 第一个维度下标 |
| `dim2`  | any   | 第二个维度下标 |

返回：array

## 数学函数 / 矩阵运算及分解

## `nils(length)`

生成元素为 `nil` 的一维结果。

| 参数     | 类型 | 说明     |
| -------- | ---- | -------- |
| `length` | any  | 一维长度 |

返回：array

## `noTechCacheDo()`

和TechCacheDo相反的是，在NoTechCacheDo语句段中调用的所有相关计算，将均取消缓存。

返回：any

## `ones(length)`

生成元素为 `1` 的一维结果。

| 参数     | 类型 | 说明     |
| -------- | ---- | -------- |
| `length` | any  | 一维长度 |

返回：array

## `outPutGrowRatio(v1, v2)`

增长率(%)

| 参数 | 类型  | 说明         |
| ---- | ----- | ------------ |
| `v1` | float | 实型，期末值 |
| `v2` | float | 实型，期初值 |

返回：float

### 示例

```tsl
//返回13到14的增长率(%)
outPutGrowRatio(14,13);
//结果：7.69
```

## `outPutGrowRatio2(v1, v2)`

增长率(%)

| 参数 | 类型  | 说明         |
| ---- | ----- | ------------ |
| `v1` | float | 实型，期末值 |
| `v2` | float | 实型，期初值 |

返回：float

### 示例

```tsl
//返回13到14的增长率(%)
outPutGrowRatio2(14,13);
//结果：7.69
```

## `outPutGrowValue2(v1, v2)`

增长

| 参数 | 类型  | 说明         |
| ---- | ----- | ------------ |
| `v1` | float | 实型，期末值 |
| `v2` | float | 实型，期初值 |

返回：float

### 示例

```tsl
//返回13与14差值
outPutGrowValue2(13,14);
//结果：-1
```

## `raiseError(func_name, err_str)`

显示调试出错信息

| 参数        | 类型   | 说明                       |
| ----------- | ------ | -------------------------- |
| `func_name` | string | 字符串类型，出错的函数名称 |
| `err_str`   | string | 字符串类型，出错提示       |

返回：Error

## `reIndexCopy(data, index_info1, index_info1_2, index_info_n)`

ReIndexCopy和Reindex的差异：ReIndex修改原有的结果集，而ReIndexCopy不修改原结果集返回一个新结果集。

| 参数            | 类型  | 说明                 |
| --------------- | ----- | -------------------- |
| `data`          | array | 数组，需重构的数组； |
| `index_info1`   | array | Array                |
| `index_info1_2` | array | Array                |
| `index_info_n`  | any   | Array                |

返回：array

## 未细分函数

### 示例

```tsl
实现：将指定列下标转为数组的行下标--可用于快速建立哈希表
setsysparam(pn_stock(),"SH000001");
setsysparam(pn_date(),20240822T);
t:=nday(10,'time',datetostr(sp_time()),'close',close());
return reindexcopy(t,t[:,"time"]);
```

## `reportSeriesSplit(table_name)`

报告期数据处理。注意，该函数主要用于客户端结果处理，不提供给用户程序编辑。

| 参数         | 类型   | 说明                 |
| ------------ | ------ | -------------------- |
| `table_name` | string | 字符串，用户数据名称 |

返回：any

## `rotatedComponentMatrix(cm, eigen_value, eigen_vector)`

该函数已废弃

| 参数           | 类型  | 说明                       |
| -------------- | ----- | -------------------------- |
| `cm`           | array | 二维数字数组，相关系数矩阵 |
| `eigen_value`  | array | 一维数字数组，特征根       |
| `eigen_vector` | array | 二维数字数组，特征向量     |

返回：array

### 示例

```tsl
//设置样本矩阵
zt:=array((0.7592,1.7593,21.9279,48.5626,55.1679),
(0.0490,0.4457,2.2255,82.2658,192.4348),
(-2.2313,-1.3096,-59.8883,3.9922,-80.2419),
(0.1364,0.539,4.3910,55.1438,46.0612),
(0.7233,1.9467,15.6127,111.3018,58.3969));
z_t_s:=Standarize_II(z_t);  //标准化
mt_Transposition(z_t_s,z);  //转置
r:=correlationMatrix(z);  //相关系数矩阵
Eigen_Jacobi(r,eigen_value,eigen_vector); //特征值&特征向量
cm:=componentMatrix(eigen_value,eigen_vector,max_eigen_value); //载荷矩阵
rotatedComponentMatrix(cm);
//结果：
```

## `sendRunningData(data, nwdow)`

直接函数相关函数。

| 参数    | 类型   | 说明                             |
| ------- | ------ | -------------------------------- |
| `data`  | any    | 要发送到运行结果窗口的数据       |
| `nwdow` | string | 结果窗口名称；省略时在原窗口输出 |

返回：any

## 错误处理

## `setUid(uid)`

设置当前的用户为指定的用户，需要有特殊权限，如果成功则返回真。

| 参数  | 类型   | 说明             |
| ----- | ------ | ---------------- |
| `uid` | string | 字符串，用户名。 |

返回：bool

## `techCacheDo()`

TechCacheDo打开技术类缓存 相关函数。

返回：any

## `user(name)`

执行指定用户的函数，只有当你已经得到该用户的授权才可以 例如：如果已经被用户user1授权，且user1拥有函数sample,那么我们可以用user('user1').sample来执行user1的sample函数。

| 参数   | 类型   | 说明             |
| ------ | ------ | ---------------- |
| `name` | string | 字符串，用户名。 |

返回：any
