# Deprecated

以下内容为已弃用、已移除或仅在历史运行环境中提供的接口，仅用于识别和维护旧模型。

## Python 支持函数简介

要使用Python的引擎，首先需要将对应于客户端（如在脚本调用则为TSL.EXE）的相应位数的版本（32位对应32位，64位对应于64位）的python相应支持DLL所在位置加入系统或者PATH中，并在天软存贮目录的 `plugin\FileMgr.ini` 中加入：

```ini
[Python Config]

Enabled=1

version=3
```

如果是版本2.7的就用version=2。

## `pyPutVar(var_name, var_value)`

声明：function

送入python变量

| 参数        | 类型   | 说明 |
| ----------- | ------ | ---- |
| `var_name`  | string |      |
| `var_value` | any    |      |

返回：integer

## `pyGetVar(var_name)`

声明：function

从python 获得变量

| 参数       | 类型   | 说明 |
| ---------- | ------ | ---- |
| `var_name` | string |      |

返回：any

## `pyRun(python_code, flag)`

声明：function

简单运行Python的代码

| 参数          | 类型    | 说明                                                                                                                      |
| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
| `python_code` | string  | 字符串类型，Python代码串，可执行多行代码。注意，使用空格对齐来确定逻辑层级，相同空格数代表同一层级，一般推荐使用4个空格。 |
| `flag`        | integer | 可选。整型，默认不被指定，该含义由PyCompileFlags指定组合的状态，处理UTF-8源代码等问题。具体请参考Python手册。             |

返回：integer

### 示例

```tsl
s := "a=1
b=1
if a==1:
    b=2
";
pyRun(s);
return array("a": pyGetVar("a"), "b": pyGetVar("b"));
// 输出：a=1，b=2（需支持 Python 插件的旧版运行环境）
```

## `pyCall(call_flag)`

声明：function

调用python 模块中的函数

| 参数        | 类型    | 说明                                                                                                                  |
| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| `call_flag` | integer | 结果输出方式与参数输入方式的设置，是一个按位（2位二进制）的状态组合值，即取值为二进制的00,01,10,11组合，具体含义如下: |

返回：any

### 示例

范例01：默认参数方式

```tsl
rdo2 pyRun("import numpy");
return rdo2 pyCall('numpy.random', 'randint', 6, 9);
// 输出：6 到 8 之间的随机整数（需支持 Python 插件的旧版运行环境）
```

范例02：数组参数方式

```tsl
rdo2 pyRun("import numpy");
return pyCall(2, 'numpy.random', 'randint', array('high': 9, 'low': 6));
// 输出：6 到 8 之间的随机整数（需支持 Python 插件的旧版运行环境）
```

范例03：命名参数方式

```tsl
rdo2 pyRun("import numpy");
return pyCall('numpy.random', 'randint', high: 9, low: 6);
// 输出：6 到 8 之间的随机整数（需支持 Python 插件的旧版运行环境）
```

## `pyRelease()`

声明：function

释放python资源,多线程的时候可以提高效率

返回：bool

## `pyEnsure()`

声明：function

锁定python资源;由于pyrun和pyPutVar,pyGetVar会智能锁定，所以用户一般来说不需要调用该函数

返回：bool

## `pyError()`

声明：function

获取当前运行 Python 语句时的报错信息

<!-- tags: 获取 查询 -->

返回：string

### 示例

```tsl
// 本地执行以下脚本
pyRun("a=math.pi"); // 此处会报错因为没有 import math
return pyError();
// 输出：name 'math' is not defined
```

## 已移除或不可用函数

以下函数仅保留用于识别和维护历史代码。

## `rEval(eval_string, code)`

声明：function

执行R的字符串

| 参数          | 类型    | 说明                                      |
| ------------- | ------- | ----------------------------------------- |
| `eval_string` | string  | 执行的串，例如”a=b+1”。                   |
| `code`        | integer | 返回是否成功，为0表示成功过，否则为错误码 |

返回：any

## `rGetVar(var_name)`

声明：function

获取一个R的变量的值

<!-- tags: 获取 查询 -->

| 参数       | 类型   | 说明                    |
| ---------- | ------ | ----------------------- |
| `var_name` | string | 设置的变量名，例如”a”。 |

返回：any

## `rPutVar(var_name, value)`

声明：function

设置一个R的变量的值

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

| 参数       | 类型   | 说明                    |
| ---------- | ------ | ----------------------- |
| `var_name` | string | 设置的变量名，例如”a”。 |
| `value`    | any    | 设置的变量的值          |

返回：any

## `rEnsure()`

声明：function

锁定R资源;由于REval和RPutVar,RGetVar会智能锁定，所以用户一般来说不需要调用该函数

返回：bool

## `rRelease()`

声明：function

释放R资源,多线程的时候可以提高效率

返回：bool

## `mEval(eval_string)`

声明：function

执行MatLab的字符串

| 参数          | 类型   | 说明                    |
| ------------- | ------ | ----------------------- |
| `eval_string` | string | 执行的串，例如”a=b+1”。 |

返回：integer

## `mPutVar(var_name, value)`

声明：function

设置一个MATLAB的变量的值

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

| 参数       | 类型   | 说明                    |
| ---------- | ------ | ----------------------- |
| `var_name` | string | 设置的变量名，例如”a”。 |
| `value`    | any    | 设置的变量的值          |

返回：integer

## `mGetVar(var_name)`

声明：function

获取一个MATLAB的变量的值

<!-- tags: 获取 查询 MATLAB -->

| 参数       | 类型   | 说明                    |
| ---------- | ------ | ----------------------- |
| `var_name` | string | 要获得变量名，例如”a”。 |

返回：any

## `mGetBuf()`

声明：function

返回MATLAB引擎的警告或者错误信息

<!-- tags: 返回 获取 MATLAB -->

返回：string

## `mClose()`

声明：function

关闭MATLAB引擎

<!-- tags: 关闭 close MATLAB -->

返回：any

## `mSetVisible(visible)`

声明：function

设置MATLAB引擎是否可视

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

| 参数      | 类型 | 说明                           |
| --------- | ---- | ------------------------------ |
| `visible` | bool | 如果为真，则显示，为假则隐藏。 |

返回：integer

## `toXml(v)`

声明：function

转换成为XML字符串

<!-- tags: 转换 编码 XML -->

| 参数 | 类型 | 说明     |
| ---- | ---- | -------- |
| `v`  | any  | 任意类型 |

返回：string

### 示例

```tsl
return toXml('this is XML document');
{返回值为字符串：
<?xml version="1.0" encoding="GB2312"?>
<TSXML Copyright="Generated by ShenZhen Tinysoft Corp,Ltd. All rights reserved." TYPE="STRING" VALUE="this is XML document"/>}
```

## `xml(v)`

声明：function

把XML串转换为任意类型

<!-- tags: 转换 编码 XML -->

| 参数 | 类型   | 说明          |
| ---- | ------ | ------------- |
| `v`  | string | 字符串，XML串 |

返回：any

### 示例

```tsl
return xml('<?xml version="1.0" encoding="GB2312"?>
<TSXML Copyright="Generated by ShenZhen Tinysoft Corp,Ltd. All rights reserved." type="STRING" VALUE="this is XML document"/>');
// 返回值为字符串：’this is a document’。
```

## `arrDropDuplicate(data)`

声明：function

数组去重（包含 NAN）；仅保留用于识别旧代码

<!-- tags: 数组 列表 array list 去重 删除重复 deduplicate duplicate dropduplicate NAN -->

| 参数   | 类型  | 说明                 |
| ------ | ----- | -------------------- |
| `data` | array | 数据表类型。数据表。 |

返回：array

## `chckxy(x, y)`

声明：function

合并x，y后对x列正序排列

| 参数 | 类型  | 说明     |
| ---- | ----- | -------- |
| `x`  | array | 一维数组 |
| `y`  | array | 一维数组 |

返回：array

### 示例

```tsl
uses interp_unit; // 置顶
x := array(5, 1, 19, 8);
y := array(2, 3, 1, 7);
chckxy(x, y);
return x | y;
// 输出：array((1,3),(5,2),(8,7),(19,1))
```

## `histc2(a, b)`

声明：function

记录a中的元素在b中第几个区间的位置

| 参数 | 类型  | 说明     |
| ---- | ----- | -------- |
| `a`  | array | 一维数组 |
| `b`  | array | 一维数组 |

返回：array

### 示例

```tsl
uses interp_unit; // 置顶
a := 1->10;
b := 3->7;
return histc2(a, b);
// 输出：array(0,0,1,1,2,3,4,0,0,0)
```

## `nearest(x, y, xi)`

声明：function

最邻近插值

| 参数 | 类型  | 说明                |
| ---- | ----- | ------------------- |
| `x`  | array | 一维数组 横坐标序列 |
| `y`  | array | 一维数组 纵坐标序列 |
| `xi` | array | 一维数组 插值点序列 |

返回：array

### 示例

```tsl
uses interp_unit; // 置顶
x := array(5, 1, 19, 8);
y := array(2, 3, 1, 7);
xi := array(4, 12);
return nearest(x, y, xi);
// 输出：array(3,1)
```

## `pchip(x, y, xx)`

声明：function

分段三次hermite插值

| 参数 | 类型  | 说明                |
| ---- | ----- | ------------------- |
| `x`  | array | 一维数组 横坐标序列 |
| `y`  | array | 一维数组 纵坐标序列 |
| `xx` | array | 一维数组 插值点序列 |

返回：array

### 示例

```tsl
uses interp_unit; // 置顶
x := array(5, 1, 19, 8);
y := array(2, 3, 1, 7);
xx := array(4, 12);
return pchip(x, y, xx);
// 输出：array(3.3403,6.9345)
```

## `ppval(pp, xx)`

声明：function

对插值点列的值数据区间中计算出插值

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

| 参数 | 类型  | 说明                            |
| ---- | ----- | ------------------------------- |
| `pp` | array | 二维数组 包含列＂x＂，＂coefs＂ |
| `xx` | array | 一维数组 插值点序列             |

返回：array

## `pwch(x, y, s, dx, divdif)`

声明：function

计算下x，y所对应的不同间隔区间

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

| 参数     | 类型  | 说明     |
| -------- | ----- | -------- |
| `x`      | array | 一维数组 |
| `y`      | array | 一维数组 |
| `s`      | array | 一维数组 |
| `dx`     | array | 一维数组 |
| `divdif` | array | 一维数组 |

返回：array

## `GM_Icorr(values, target_index)`

声明：function

计算数据矩阵中各序列相对于指定参考序列的灰色关联系数

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

| 参数           | 类型    | 说明         |
| -------------- | ------- | ------------ |
| `values`       | array   | 二维数据矩阵 |
| `target_index` | integer | 参考序列下标 |

返回：array

## `sf_expcdf(x, mu, v)`

声明：function

计算指数分布的累计分布值

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

| 参数 | 类型       | 说明                                   |
| ---- | ---------- | -------------------------------------- |
| `x`  | real/array | 随机变量或随机变量数组                 |
| `mu` | real       | 分布参数，默认值为 1                   |
| `v`  | real/array | 可选。写回参数；也可省略并直接取返回值 |

返回：real/array

## `sf_exppdf(x, mu, v)`

声明：function

计算指数分布的概率密度

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

| 参数 | 类型       | 说明                                   |
| ---- | ---------- | -------------------------------------- |
| `x`  | real/array | 随机变量或随机变量数组                 |
| `mu` | real       | 分布参数，默认值为 1                   |
| `v`  | real/array | 可选。写回参数；也可省略并直接取返回值 |

返回：real/array

## `reportSeriesSplit(table_name)`

声明：function

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

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

返回：any

## `sectionSubmitBuyVol()`

声明：function

当天截止累计委买量，与系统参数（股票、时间、周期、复权等相关），查看相关行情数据说明

<!-- tags: 数据仓库 ( ) 盘后相关在当日可用于盘中 盘后 -->

返回：float
