# 运行时 / 通用 ## `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