Files
playbook/skills/tsl-api-reference/references/codegen/dotnet/runtime/general.md
T
csh 1f19954dd7 ♻️ refactor(tsl-api-reference): reorganize function reference pages
Move runtime and document pages into their correct scope, remove obsolete pending entries, and regenerate the function index.\nUpdate agent test guidance and API skill routing to match the new reference layout.
2026-07-20 09:08:38 +08:00

619 lines
18 KiB
Markdown

# 运行时 / 通用
## `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
## `Logger_debug(msg)`
打印带执行节点的调试信息
| 参数 | 类型 | 说明 |
| ----- | ------ | ----------------------------------------------------------- |
| `msg` | string | 任意数据类型,如果是字符串原样打印,如果非字符串按tostn打印 |
返回:any
## `logger_info(msg)`
打印带执行节点的提示信息
| 参数 | 类型 | 说明 |
| ----- | ------ | ----------------------------------------------------------- |
| `msg` | string | 任意数据类型,如果是字符串原样打印,如果非字符串按tostn打印 |
返回:any
## `logger_warning(msg)`
打印带执行节点的调试信息
| 参数 | 类型 | 说明 |
| ----- | ---- | ----------------------------------------------------------- |
| `msg` | any | 任意数据类型,如果是字符串原样打印,如果非字符串按tostn打印 |
返回:any
## `logger_info2(p1, p2, p3, pn)`
打印带执行节点的提示信息
| 参数 | 类型 | 说明 |
| ---- | ---- | ------------------------ |
| `p1` | any | 第一个参数的内容 |
| `p2` | any | 第二个参数的内容,可省略 |
| `p3` | any | 第三个参数的内容,可省略 |
| `pn` | any | 第N个参数的内容,可省略 |
返回:any
## `sp_UserSysParam2()`
用户自定义函数教学范例,获得当前系统参数
返回:string
## `ifThen3(left, right, r1, r2, r3)`
比较left与Right大小,若Left大,则返回r1;若相等,返回r2;若Right大,返回r3。
| 参数 | 类型 | 说明 |
| ------- | ---- | ------ |
| `left` | real | 实数 |
| `right` | real | 实数 |
| `r1` | expr | 表达式 |
| `r2` | expr | 表达式 |
| `r3` | expr | 表达式 |
返回:expr
#### 示例
```tsl
return ifThen3(1, 2, '左大', '相等', '右大');
// 返回:’右大’
```
## `safeEval(exp)`
表达式求值
| 参数 | 类型 | 说明 |
| ----- | ----------- | ---------- |
| `exp` | texpression | 表达式类型 |
返回:any
## `exportCsvne(data, csv_str, include_index, include_header)`
将指定数组Data转换为csv格式字符串并存储在csvStr参数中。仅支持一维及二维数组的转换。和ExportCsv的区别:在处理浮点数据时,ExportCsvne的结果不会输出为1E15等格式。
| 参数 | 类型 | 说明 |
| ---------------- | ------ | ---- |
| `data` | array | |
| `csv_str` | string | |
| `include_index` | | |
| `include_header` | bool | |
返回:bool
#### 示例
范例01:一维数组转换成csv格式字符串(含大数量级数据)
```tsl
data := array(1, 2, "3", "A", 9, 1E15);
ret := exportCsvne(data, s);
if ret then return s;
else return ret;
// 输出:
// 示例未提供可直接输出的返回表达式。
```
范例02:二维数组转换成csv格式字符串
```tsl
data := array((2, 5, 0), (3, 2, 1), (4, 7, 2));
ret := exportCsvne(data, s);
if ret then return s;
else return ret;
// 输出:
// 示例未提供可直接输出的返回表达式。
```
范例03:转换成csv格式字符串,结果包含数组下标信息
```tsl
data := array("A": (2, 5, 0), "B": (3, 2, 1), "C": (4, 7, 2));
ret := exportCsvne(data, s, 1);
if ret then return s;
else return ret;
// 输出:
// 示例未提供可直接输出的返回表达式。
```
范例04:转换成csv格式字符串,结果不包含字段头部信息
```tsl
data := array((2, 5, 0), (3, 2, 1), (4, 7, 2));
ret := exportCsvne(data, s, 0, 0);
if ret then return s;
else return ret;
// 输出:
// 示例未提供可直接输出的返回表达式。
```
## `doubleVariableExecute(arr, sys_name, time_arr, exp)`
计算指定系统参数,指定时间序列下的指标表达式的值
| 参数 | 类型 | 说明 |
| ---------- | ----------- | ---------------------------- |
| `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)`
表达式求值
| 参数 | 类型 | 说明 |
| ----- | ----------- | ------ |
| `exp` | texpression | 表达式 |
返回:array
## `singleVariableExecute(arr, sys_name, exp)`
设置系统变量SysName的值为Arr中的元素,执行表达式exp,将表达式的值放到数组Arr中。
| 参数 | 类型 | 说明 |
| ---------- | ----------- | ------------------------ |
| `arr` | array | 数组, |
| `sys_name` | string | 字符串,指定系统参数名称 |
| `exp` | texpression | 表达式 |
返回:array
#### 示例
```tsl
// Arr中存储的是代码,获取2019年3月1日,Arr中所有代码的收盘价
arr := array('SZ000001', 'SZ000002');
return singleVariableExecute(arr, pn_stock(), @close());
```
## `safeSetSysParam(systype, value)`
设置系统参数。主要是将value的值转化为正确的对应于systype数据类型,再通过setsysparam进行设置setysparam(systype,value),保证系统参数设置成功。
| 参数 | 类型 | 说明 |
| --------- | ------ | ------------------------ |
| `systype` | string | 字符串,系统参数名称 |
| `value` | real | 实数或字符串,系统参数值 |
返回:integer
## `assert(error)`
断言。若Check为假,返回出错信息
| 参数 | 类型 | 说明 |
| ------- | ------ | ---------- |
| `error` | string | 字符串类型 |
返回:string
#### 示例
```tsl
return assert(0, '无效的语段');
// 输出:
// 示例包含说明文字,未作为可执行片段运行。
```
## `sp_SetSysParam1()`
设置系统参数教学范例,使用缺省系统参数,返回股票.基本信息
返回:any
## `sp_SetSysParam2()`
设置系统参数教学范例,指定系统参数(当前为SH600718),返回股票.基本信息
返回:any