Files
playbook/docs/tsl/codegen/dotnet/runtime/general.md
T

387 lines
12 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