📦 deps(tsl): sync tsl-playbook from 49e6dadc

Source-Commit: 49e6dadc60
This commit is contained in:
ci[bot]
2026-07-20 01:42:42 +00:00
parent 713671152c
commit 9fedb2cf7f
61 changed files with 27118 additions and 25747 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,405 @@
# Dotnet - 运行时 / 日期时间(AnalyseNG.NET 专有)
## `strtodatetime2(s)`
字符串->日期时间(包含毫秒)
| 参数 | 类型 | 说明 |
| ---- | ------ | -------------------------------------------------------------------------------------------------------------- |
| `s` | string | S的格式必须为:yyyy-m-d h:m:s:z    其中日期和时间需要用空格隔开,时间分隔必须用:    如"2021-8-12 10:31:24:199" |
返回:tdatetime
### 示例
```tsl
// 字符串2021-8-12 10:31:24:199 转换为日期时间格式(包含毫秒)
s := "2021-8-12 10:31:24:199";
return strtodatetime2(s); // 结果:44420.4384745255
```
## `strToDateExt(s, str_format)`
将字符串类型的日期按照不同的格式转换成实数型的日期。
| 参数 | 类型 | 说明 |
| ------------ | ------- | ------------------------------------------ |
| `s` | string | 字符串类型的日期,包含3中形式,见下表。 |
| `str_format` | integer | 标准化的日期格式,对应的S分别用0、1、2表示 |
返回:tdatetime
### 示例
```tsl
s := '16/1/2011';
str_format := 0;
return strToDateExt(s, str_format);
// 结果:40559
```
## `excelIntToDate(r_date)`
将报告期类型日期转化成实数型
| 参数 | 类型 | 说明 |
| -------- | ------- | ------------------ |
| `r_date` | integer | 整型类的报告期日期 |
返回:tdatetime
### 示例
```tsl
// 报告期为2010年年报
r_date := 20101231;
return excelIntToDate(r_date);
// 结果:40543
```
## `excelDateToInt(r_date)`
将日期型报告期转化成整数型报告期
| 参数 | 类型 | 说明 |
| -------- | --------- | ------------ |
| `r_date` | tdatetime | 日期型报告期 |
返回:integer
### 示例
```tsl
r_date := 20101231;
return excelDateToInt(r_date);
// 结果:20101231
```
## `formatStrToDateTime2(s, format_str)`
字符串->日期时间(包含毫秒)。
| 参数 | 类型 | 说明 |
| ------------ | ------ | ---------------------- |
| `s` | string | 字符串类型,时间字符串 |
| `format_str` | string | 字符串类型,格式字符串 |
返回:datetime
### 示例
```tsl
// 字符串2021-8-12 10:31:24:199 转换为日期时间格式(包含毫秒)
s := "2021.01.04T23:00:00.000";
format_str := "yyyy.mm.ddThh:nn:ss.zzz";
return formatStrToDateTime2(s, format_str); // 结果:44200.9583333333
```
## `startOfTheHalfYear(end_t)`
返回Endt所在半年的开始日期(半年的第一天)
| 参数 | 类型 | 说明 |
| ------- | --------- | ---- |
| `end_t` | tdatetime | 日期 |
返回:tdatetime
### 示例
```tsl
end_t := 40599; // 40559表示2011年1月16号
return startOfTheHalfYear(end_t);
// 结果:40544 //40544表示2011年1月1号
```
## `startOfTheQuarter(end_t)`
返回Endt所在季度的开始日期(季度的第一天)
| 参数 | 类型 | 说明 |
| ------- | --------- | ---- |
| `end_t` | tdatetime | 日期 |
返回:tdatetime
### 示例
```tsl
end_t := 40540; // 40540表示2010年12月28日
return startOfTheQuarter (end_t);
// 结果:40452 //40452表示2010年10月1号
```
## `endOfTheQuarter(end_t)`
返回Endt所在季度的截止日期(季度的最后一天)
| 参数 | 类型 | 说明 |
| ------- | --------- | ---- |
| `end_t` | tdatetime | 日期 |
返回:tdatetime
### 示例
```tsl
end_t := 40540; // 40540表示2010年12月28日
return endOfTheQuarter (end_t);
// 结果:40543 //40543表示2010年12月31号
```
## `endOfTheHalfYear(end_t)`
返回Endt所在半年的截止日期(半年的最后一天)
| 参数 | 类型 | 说明 |
| ------- | --------- | ---- |
| `end_t` | tdatetime | 日期 |
返回:tdatetime
### 示例
```tsl
end_t := 40540; // 40540表示2010年12月28日
return endOfTheHalfYear (end_t);
// 结果:40543 //40543表示2010年12月31号
```
## `incHalfYear(a_value, number)`
求Avalue的日期开始往后推移Number个半年的日期
| 参数 | 类型 | 说明 |
| --------- | --------- | -------------------------------- |
| `a_value` | tdatetime | 实数表示的日期 |
| `number` | integer | 向后推移的整数,负数表示向前推移 |
返回:tdatetime
### 示例
```tsl
avalue := 40179; // 40179表示2010年1月1号
number := 2;
return incHalfYear(a_value, number);
// 结果:40544 //40544表示2011年1月1号
```
## `incQuarter(avalue, number)`
求Avalue的日期开始往后推移Number个季度的日期
| 参数 | 类型 | 说明 |
| -------- | --------- | ---------------------------------- |
| `avalue` | tdatetime | 实数表示的日期 |
| `number` | integer | 向后推移的整数。负数表示向前推移。 |
返回:tdatetime
### 示例
```tsl
avalue := 40179; // 40179表示2010年1月1号
number := 2;
return incQuarter(a_value, number);
// 结果:40360 //40360表示2010年7月1号
```
## `excelRDate(r_date)`
将整数报告期转换成Excel的字符串日期类型
| 参数 | 类型 | 说明 |
| -------- | ------- | -------------------------- |
| `r_date` | integer | 报告期,一般用整型日期表示 |
返回:string
### 示例
```tsl
r_date := 20101231;
return excelRDate(r_date);
// 结果:2010-12-31
```
## `incPrecodeCallBack(s)`
将“000002.SZ”的代码转化为“SZ000002”
| 参数 | 类型 | 说明 |
| ---- | ------ | ------ |
| `s` | string | 字符串 |
返回:string
### 示例
```tsl
return incPrecodeCallBack('000002.SZ');
// 结果:’SZ000002
```
## `IncomeTax_12(r_date)`
最近12个月的所得税。 (1)所得税取自合并利润分配表; (2)根据最近12个月的算法得到最近12个月的所得税【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `IncomeTax_Year(r_date, n)`
最近N年的所得税。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)在合并利润分配表取Q2报告期的所得税。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期; |
| `n` | any | 整数,最近N年 |
返回:float
## `IncomeTax_Q(r_date)`
计算指定报告期最近1季度的所得税。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的所得税。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期; |
返回:float
## `Time_InvFun(left_values, right_values)`
根据两个输入序列计算逆函数序列。
| 参数 | 类型 | 说明 |
| -------------- | ----- | -------- |
| `left_values` | array | 左侧序列 |
| `right_values` | array | 右侧序列 |
返回:array
## `Times_Granger(y_values, x_values, lag_order, alpha)`
检验 `x_values` 是否为 `y_values` 的 Granger 原因。
| 参数 | 类型 | 说明 |
| ----------- | ----- | ------------ |
| `y_values` | array | 被解释序列 |
| `x_values` | array | 候选原因序列 |
| `lag_order` | any | 滞后阶数 |
| `alpha` | float | 显著性水平 |
返回:array
## `Times_Cointergration_test(y_values, x_values, diff_order, alpha, lag_order, criterion)`
执行两个序列的协整检验。
| 参数 | 类型 | 说明 |
| ------------ | ------ | -------------------------------- |
| `y_values` | array | 第一条时间序列 |
| `x_values` | array | 第二条时间序列 |
| `diff_order` | any | 差分阶数 |
| `alpha` | float | 显著性水平 |
| `lag_order` | any | 滞后阶数 |
| `criterion` | string | 信息准则;常用 `"AIC"``"SBIC"` |
返回:array
## `Times_Cointergration(y_values, x_values, alpha)`
判断两个序列是否存在协整关系。
| 参数 | 类型 | 说明 |
| ---------- | ----- | -------------- |
| `y_values` | array | 第一条时间序列 |
| `x_values` | array | 第二条时间序列 |
| `alpha` | float | 显著性水平 |
返回:string
## `Times_ECM(y_values, x_values, residuals, alpha, p_order, q_order)`
建立误差修正模型。
| 参数 | 类型 | 说明 |
| ----------- | ----- | ------------------- |
| `y_values` | array | 第一条时间序列 |
| `x_values` | array | 第二条时间序列 |
| `residuals` | array | 协整检验残差项 |
| `alpha` | float | 显著性水平 |
| `p_order` | any | `y_values` 滞后阶数 |
| `q_order` | any | `x_values` 滞后阶数 |
返回:array
## `Times_GrangerCausality(series_matrix, lag_order)`
对矩阵中的多个序列执行两两 Granger 因果检验。
| 参数 | 类型 | 说明 |
| --------------- | ----- | --------------------------------------------------- |
| `series_matrix` | array | 多个时间序列组成的矩阵;可由两条序列用 `left_series |
| `lag_order` | any | 滞后阶数 |
返回:array
## `Time_PACF(y)`
偏自相关系数,计算随机序列与所有滞后阶数的偏自相关系数,返回结果是一个数组。偏相关系数的计算公式如下: 是自相关系数,是偏相关系数
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------------------ |
| `y` | array | 样本序列,为一维数组类型 |
返回:array
## `Time_RandomTest(y, m, alpha)`
Ljung和Box提出的修正Qm统计量,用于检验序列是否为白噪声,原假设为白噪声序列,即纯随机序列。(Hypothesis为1表示接受原假设,0表示拒绝原假设) Qm统计量的计算公式如下: 其中:是自相关系数,T是样本容量,m是最大滞后长度
| 参数 | 类型 | 说明 |
| ------- | ----- | ---------------------------------------------- |
| `y` | array | 样本序列,为一维数组类型 |
| `m` | any | 最大滞后长度,整数类型,一般取样本数的四分之一 |
| `alpha` | float | 显著性水平,实数类型,取值在0-1之间 |
返回:array
## `Times_ADFTest(y, diff, style, f, p, alpha)`
时间序列的平稳性ADF检验;返回结果为ADF统计量和给定显著性水平下的ADF统计量的临界值;如果ADF统计量的绝对值比临界值的绝对值大,则可在该显著性水平下,拒绝原序列存在单位根的原假设,即原序列是平稳的
| 参数 | 类型 | 说明 |
| ------- | ------ | ------------------------------------------------------------------------------------- |
| `y` | array | 时间序列数据,为一维数组类型 |
| `diff` | any | 差分次数,整数类型,0表示不进行差分 |
| `style` | any | 是否存在常数或趋势项的选项,整数类型,无常数无趋势使用0、有常数无趋势1、有常数有趋势2 |
| `f` | string | 滞后阶数判断信息准则,字符串类型,"SBIC""AIC" |
| `p` | any | 滞后阶数,为整型类型,输入0则表示自动选择 |
| `alpha` | float | 显著性水平,实数类型,范围在0-1之间 |
返回:array
## `Time_GreenFun(ap, mq)`
中间函数,ARMA模型的Green函数,Green函数的递推公式如下: 式中: ,,是自回归方程系数,为移动平均系数,
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------------------------ |
| `ap` | array | 自相关系数,为一维数组类型; |
| `mq` | array | 移动平均系数,为一维数组类型; |
返回:array
## `incPrecode()`
6位代码->8位代码;注意,该函数主要用于客户端结果处理,不提供给用户程序编辑
返回:array,tablearray
@@ -29,3 +29,34 @@
| `db_alias` | string | 数据库别名。 |
返回:int
## `DBCD_v(n1, n2, m)`
异同离差乖离率DBCD,指能够保持指标的紧密同步,并且线条光滑,信号明确,能够有效的过滤掉伪信号的概率。先计算乖离率BIAS,然后计算不同日的乖离率之间的离差,最后对离差进行指数移动平滑处理。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
| ---- | ---- | ---------------- |
| `n1` | any | 整数,交易日天数 |
| `n2` | any | 整数,交易日天数 |
| `m` | any | 整数,交易日天数 |
返回:float
## `DBCD_f(n1, n2, m, _type)`
异同离差乖离率DBCD,指能够保持指标的紧密同步,并且线条光滑,信号明确,能够有效的过滤掉伪信号的概率。先计算乖离率BIAS,然后计算不同日的乖离率之间的离差,最后对离差进行指数移动平滑处理。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
| ------- | ---- | ---------------- |
| `n1` | any | 整数,交易日天数 |
| `n2` | any | 整数,交易日天数 |
| `m` | any | 整数,交易日天数 |
| `_type` | any | 结果类型 |
返回:float
## `sql_Insert()`
与MSSQL交互插入数据教学函数,向数据库中插入一条数据为(160,'1.0','2002-12-12')的数据,如插入成功返回插入的数据,否则返回“Insert出现错误”。该函数仅为对数据库进行操作范例,范例中使用的sourcename是数据库别名,result 是插入数据的结果。关于数据库别名的配置,以及数据库交互的具体说明,用户可在官网查看数据库交互专题。
返回:any
@@ -308,3 +308,190 @@
返回:any
## 网络访问以及相关函数
## `ImportantItems_Call(stock_arr, end_t, sort_by, return_number)`
上市公司最新主要财务指标排行。
| 参数 | 类型 | 说明 |
| --------------- | -------- | ------------------------------ |
| `stock_arr` | array | 数组。股票列表。 |
| `end_t` | datetime | 整数。报告期。 |
| `sort_by` | any | 整数。排序字段,取值如下: |
| `return_number` | any | 整数。返回个数,-1时返回全部。 |
返回:array
## `fl_ImportFile(import_type, id)`
ImportFile函数教学函数。导入保存类型为importType的指定ID证券数据文件。若文件不存在则返回'file not exist',若文件导入失败则返回'Import file fail'。其中虚拟目录名为'testdir',用户应申请服务器权限并且建立好该虚拟目录。
| 参数 | 类型 | 说明 |
| ------------- | ------ | ---------- |
| `import_type` | any | 用户自定义 |
| `id` | string | 证券 |
返回:any
## `fl_WriteFile(b_kname, t)`
WriteFile函数教学函数。将指定板块BKname的每一只股票在指定日T的行情数据保存到虚拟目录'testdir'下的'HqData.dat'文件,写出成功则返回'convert finished'。用户应申请好服务器权限,并建立好虚拟目录'testdir'。
| 参数 | 类型 | 说明 |
| --------- | -------- | -------- |
| `b_kname` | string | 系统板块 |
| `t` | datetime | 日期 |
返回:any
## `fl_ExportFile(export_type, id, t)`
Export函数教学函数。将指定股票ID的历史报告期十大股东序列数据以exportType文件形式导出到虚拟目录'testdir'下,若导入成功则返回'export success',否则返回'export fail!'。用户应当申请好服务器权限,并建立好虚拟目录'testdir'。
| 参数 | 类型 | 说明 |
| ------------- | ------ | ---------- |
| `export_type` | any | 用户自定义 |
| `id` | string | 证券 |
| `t` | any | 日期 |
返回:string
## `ft_Expression2_3(l1)`
表达式函数教学函数。返回指定股票在指定日180个序列的L1乖离率,与系统参数(股票,周期,时间,复权相关)
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `l1` | any | 整数 |
返回:any
## `ft_Expression1()`
表达式教学函数。返回当前股票收盘价的5个周期的平均值,与当前系统参数(股票,时间,周期)相关。
返回:float
## `readExcelSheets(alias, file_name, sheets_name, use_ole)`
从Excel文件中读出Sheets列表。
| 参数 | 类型 | 说明 |
| ------------- | ---------- | -------------------------------------------------------------------------------- |
| `alias` | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。 |
| `sheets_name` | array | 返回值。存贮读出的SHEETS名称,存贮为一个一维字符串数组。 |
| `use_ole` | bool=false | 布尔型。是否使用Excel来读取,默认直接采用读文件的方式。设置为真则要求安装Excel。 |
返回:bool
### 示例
```tsl
// 读取本地文件的sheet列表名
rdo2 readExcelSheets('', 'd:\\test\\test.xls', r, 0);
return r;
// 结果:array("Sheet1","Sheet2","Sheet3")
```
## `exportFile2(_type, alias, file_name, data, include_header, include_index, sheet, range)`
将数据导出到指定Sheet、指定数据位置Range的excel文件,仅支持Type类型为ftxls()的,为了兼容其他类型,如果输入的类型是非ftxls()的,则执行exportfile导出数据且无法指定Sheet和Range。注:导出时对应的excel文件需要关闭。
| 参数 | 类型 | 说明 |
| ---------------- | ------ | ----------------------------------------------------------------- |
| `_type` | | 整数类型。参考导入导出类型函数。 |
| `alias` | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。 |
| `data` | | 数据,需要导出的数据。 |
| `include_header` | bool | 布尔类型。为真时导出的文件包含字段头部信息。缺省时候为真。 |
| `include_index` | bool | 布尔类型。为真时导出的文件包含数组下标信息。缺省时候为假。 |
| `sheet` | string | 字符串类型,指定Sheet。 |
| `range` | string | 字符串类型,指定单元格,如:”A1”表示要把数据导出到A1开始的单元格。 |
返回:integer|string
### 示例
```tsl
// 导出10 * 5全1矩阵,到C: \\test.xlsx 文件的Sheet3C2单元格。
data := ones(10, 5);
ret := rdo2 exportFile2(ftXls(), "", "C:\\test.xlsx", data, 1, 0, "Sheet3", "C2");
return ret;
// 结果:1 (表示数据导出成功,可以在c盘看到test.xlsx文件)
```
## `importFile2(_type, alias, file_name, data, include_header, include_index, force_single, sheet, range)`
导入excel中指定Sheet的内容,可选择指定数据范围Range。仅支持Type类型为ftxls()的,为了兼容其他类型,如果输入的类型是非ftxls()的,则执行importfile导入数据且无法指定数据位置Range。
| 参数 | 类型 | 说明 |
| ---------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `_type` | integer | 整数类型。参考导入导出类型函数。 |
| `alias` | string | 字符串类型。参考目录别名。 |
| `file_name` | string | 字符串类型。文件名称。 |
| `data` | bool | 变参返回,存贮导入的数据。当导入成功的时候,数据将存放在Data。 |
| `include_header` | bool | 布尔类型。为真时认为导入的文件包含字段头部信息。缺省时候为真。 |
| `include_index` | bool | 布尔类型。为真时认为导入的文件包含数组下标信息。缺省时候为假。 |
| `force_single` | bool | 布尔类型。为真时认为导入的文件是一个一维数组。缺省时候为假。 |
| `sheet` | string | 字符串类型,指定Sheet。 |
| `range` | string | 字符串类型,指定单元格范围,如果为空导入Sheet的所有数据,非空则必须为excel的Range,如:“A1:E13“。 |
返回:bool
### 示例
```tsl
// 导入"C:\\test.xlsx"文件中的Sheet3的"C2:E5"数据,包含字段名称。
ret := rdo2 importFile2(ftXls(), "", "C:\\test.xlsx", data, 1, 0, 0, "Sheet3", "C2:E5");
if ret then
return data;
else
return "导入失败";
// 输出:
// 无输出。
// Excel的数据:
```
## `ftCsVne()`
逗号分割文件类型,输出结果禁用1E20等类型
返回:integer
## `fs_InfoId(infoid)`
获得基本面数据教学函数。返回截止到2002年6月30日Infoid相关基本面数据。
| 参数 | 类型 | 说明 |
| -------- | ---- | ------ |
| `infoid` | any | 基本面 |
返回:any
## `ft_Expression2_2(rdate)`
表达式函数教学函数。返回指定股票在报告期rdate的资产负债表,与当前系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ------- | -------- | ------ |
| `rdate` | datetime | 报告期 |
返回:any
## `loadTableEx(table_name)`
加载用户数据TableName,如若TableName非空,则返回TableName数据,否则返回空数组。
| 参数 | 类型 | 说明 |
| ------------ | ------ | -------------------- |
| `table_name` | string | 字符串,数据文件名称 |
返回:array
### 示例
```tsl
return loadTableEx('repitle');
// 返回: repitle为保存好的用户数据
```
@@ -384,3 +384,235 @@ TechCacheDo打开技术类缓存 相关函数。
| `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
File diff suppressed because it is too large Load Diff
@@ -204,3 +204,297 @@ a_src := "%23abcd%20%2010";
return urlToText(a_src);
// 结果:#abcd 10
```
## `NetProfitGrowRatio_12(r_date)`
最近12个月的净利润增长率(%)。 (1)归属于母公司所有者净利润数据取自合并利润分配表; (2)V1:RDate报告期最近12个月的归属于母公司所有者净利润; (3)V2:上年同期PRDate最近12个月的归属于母公司所有者净利润; (4)最近12个月的净利润增长率(%)=(V1-V2)/abs(V2)\*100。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetDebt_12(r_date)`
最近12个月的净债务=付息债务-最近12个月的期末现金余额。 (1)付息债务=短期借款+长期借款。 (2)从资产负债表中取短期债务和长期债务,从现金流量表中取得期末现金余额。根据算法得到净债务。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetAssetsPS_12(r_date)`
最近12个月的每股净资产。 (1)最近12个月的每股净资产=最近12个月归属母公司股东权益合计/总股本; (2)归属母公司股东权益合计取自合并资产负债表,根据最近12个月的算法计算得到最近12个月归属母公司股东权益合计【注1】; (3)总股本取RDate当天的数据。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetAssetsPSGrowRatio_12(r_date)`
最近12个月的每股净资产增长率(%)。 (1)函数从合并利润分配表中取该报告期归属母公司股东权益合计,根据算法得到最近12个月的归属母公司股东权益合计【注1】; (2)取Rdate当日的总股本; (3)最近12个月的每股净资产V1=最近12个月的归属母公司股东权益合计/总股本; (4)同理计算上年同期的最近12个月的每股净资产V2; (5)最近12个月的每股净资产增长率(%)=(V1-V2)/abs(V2)\*100。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetEquityReturn_12(r_date)`
最近12个月的净资产收益率(%)。 (1)净资产收益率(%)=最近12个月净利润/股东权益×100; (2)净利润取自合并利润分配表,根据最近12个月的算法得到最近12个月净利润【注1】; (3)股东权益取自合并资产负债表,只取报告期RDate的数据。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashfromIA_12(r_date)`
最近12个月的投资活动产生的现金流量净额。 (1)投资活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的投资活动产生的现金流量净额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashfromOAGrowRatio_12(r_date)`
最近12个月的经营活动产生的现金流量净额增长率(%)。 (1)经营活动产生的现金流量净额取自合并现金流量表;根据最近12个月的算法得到最近12个月的经营活动产生的现金流量净额V1【注1】; (2)同理取得上年同期最近12个月的经营活动产生的现金流量净额V2; (3)最近12个月的经营活动产生的现金流量净额增长率(%)=(V1-V2)/abs(V2)\*100。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashFromOA_12(r_date)`
最近12个月的经营活动产生的现金流量净额。 (1)经营活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的经营活动产生的现金流量净额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashFromFA_12(r_date)`
最近12个月的筹资活动产生的现金流量净额。 (1)筹资活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的筹资活动产生的现金流量净额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetIncrease_12(r_date)`
最近12个月的现金及现金等价物净增加额。 (1)现金及现金等价物净增加额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的现金及现金等价物净增加额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetProfit_12(r_date)`
最近12个月的归属于母公司所有者的净利润。 (1)母公司所有者的净利润取自合并利润分配表; (2)根据最近12个月的算法得到最近12个月的母公司所有者的净利润【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetProfit2_12(r_date)`
最近12月净利润(业绩快报),与系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| -------- | -------- | ------------ |
| `r_date` | datetime | 整数。报告期 |
返回:float
## `NetEquityReturn_Year(r_date, n)`
最近N年的净资产收益率(%)。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)取Q2报告期的归属于母公司所有者的净利润(合并利润分配表)v1,以及Q2报告期的归属母公司股东权益合计(合并资产负债表)v2; (3)最近N年的净资产收益率(%)=v1/v2\*100。
| 参数 | 类型 | 说明 |
| -------- | -------- | --------------- |
| `r_date` | datetime | 整数,报告期; |
| `n` | any | 整数,最近N年。 |
返回:float
## `NetAssetsPerShare_Year(r_date)`
最近1年的每股净资产。 (1)取向后兼容RDate的最新报告期NewRDate; (2)从资产负债表中取报告期NewRDate的归属母公司股东权益合计V1,以及NewRDate当天的总股本V2; (3)最近1年的每股净资产=V1/V2; (4)注意,资产负债表的科目不统计最近12个月的数据,只返回报告期的数据。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期; |
返回:float
## `NetProfit_Year(r_date, n)`
最近N年的归属于母公司所有者的净利润。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)在合并利润分配表取Q2报告期的归属于母公司所有者的净利润。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期; |
| `n` | any | 整数,最近N年 |
返回:float
## `NetIncrease_Q(r_date)`
季度的现金及现金等价物净增加额。 (1)从合并现金流量表中取出现金及现金等价物净增加额; (2)按照季度的算法,计算出RDate季度的现金及现金等价物净增加额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashfromIA_Q(r_date)`
季度的投资活动产生的现金流量净额。 (1)从合并现金流量表中取出投资活动产生的现金流量净额; (2)按照季度的算法,计算出RDate季度的投资活动产生的现金流量净额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashFromOA_Q(r_date)`
季度的经营活动产生的现金流量净额。 (1)从合并现金流量表中取出经营活动产生的现金流量净额; (2)按照季度的算法,计算出RDate季度的经营活动产生的现金流量净额【注1】。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期。 |
返回:float
## `NetCashFromFA_Q(r_date)`
计算指定报告期最近1季度的筹资活动产生的现金流。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的筹资活动产生的现金流。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期; |
返回:float
## `NetProfit_Q(r_date)`
计算指定报告期最近1季度的净利润。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的净利润。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `r_date` | datetime | 整数,报告期; |
返回:float
## `NetProfit2_Q(r_date)`
归属于母公司所有者净利润(业绩快报),与系统参数(股票)相关。 实数。归属于母公司所有者净利润(业绩快报)。
| 参数 | 类型 | 说明 |
| -------- | -------- | ------------ |
| `r_date` | datetime | 整数。报告期 |
返回:float
## `netassetweeklylist_call(fund_arr, end_t, beg_t, sort_by, sort_order, return_number)`
基金列表指定区间单位净值、累计净值及其变化。
| 参数 | 类型 | 说明 |
| --------------- | -------- | -------------------------------------- |
| `fund_arr` | array | 数组。基金列表。 |
| `end_t` | datetime | 日期。截止日期。 |
| `beg_t` | datetime | 日期。同比日期。 |
| `sort_by` | string | 字符串。排序字段,取值如下: |
| `sort_order` | any | 整数。排序方法,1表示正序,0表示逆序。 |
| `return_number` | any | 整数。返回个数。 |
返回:array
## `setHttpAcceptencodingon(session, is_zip)`
设定是否支持压缩。
| 参数 | 类型 | 说明 |
| --------- | ------ | -------------------------- |
| `session` | comobj | session ID |
| `is_zip` | bool | 是否支持压缩传输,默认支持 |
返回:any
### 示例
```tsl
url := "http://www.baidu.com";
sid := createHttpSession();
setHttpAcceptencodingon(sid, false); // 设定为不允许压缩传输
setHttpCallBack(sid, findfunction("DownProg01")); // 进度回调
r := getHttp(url, 60000, v, code);
echo "\r\nDone", '->code:', code, '->返回内容总长度:', length(v), "\r\n";
return 0;
// --------------进度回调函数---------------------
function DownProg01(sid, alldn_b, dn_b, allup_b, up_b); // progresscallback-不提前结束
begin
if dn_b > 0 then // 如果大于0则打印
begin
echo "AlldnB:", alldn_b, ",dnB:", dn_b, ",AllupB:", allup_b, ",upB:", up_b, "\r\n";
end;
return 0; // not done
end;
// 打印信息如下:
```
## `setHttpAcceptencoding(session, acceptencodingstr)`
设定压缩格式编码类型。
| 参数 | 类型 | 说明 |
| ------------------- | ------ | ------------------- |
| `session` | comobj | session ID |
| `acceptencodingstr` | string | Accept-Encoding类型 |
返回:any
### 示例
```tsl
url := "http://www.baidu.com";
sid := createHttpSession();
setHttpAcceptencoding(sid, "gzip"); // 设定压缩格式编码类型
setHttpCallBack(sid, findfunction("DownProg01")); // 进度回调
r := getHttp(url, 60000, v, code);
echo "\r\nDone", '->code:', code, '->返回内容总长度:', length(v), "\r\n";
return 0;
// --------------进度回调函数---------------------
function DownProg01(sid, alldn_b, dn_b, allup_b, up_b); // progresscallback-不提前结束
begin
if dn_b > 0 then // 如果大于0则打印
begin
echo "AlldnB:", alldn_b, ",dnB:", dn_b, ",AllupB:", allup_b, ",upB:", up_b, "\r\n";
end;
return 0; // not done
end;
// 打印结果:
// 注:当http进度回调时,当服务器使用分块传输(启用压缩通常会使用分块传输)时, 无法预先知道总大小所以可能出现为0的情况,属于正常现象。
```
@@ -470,3 +470,911 @@ Src := "The First LETTER won't be replaced by&#160
return htmlToText(src);
// 结果:The First LETTER won't be replaced by 'one', but the Second letter will.
```
## 字符串 / 正则、模糊匹配、进制与拼音(由 base 迁入)
## `getPyStringList()`
汉字拼音首字母对照表
返回:tslobj
### 示例
```tsl
sl := getPyStringList();
return sl.values("明");
// 返回:M
```
## `sameFileName(s1, s2)`
比较两个文件名是否相同,如果同名返回true,否则返回false。
| 参数 | 类型 | 说明 |
| ---- | ------ | --------------------- |
| `s1` | string | 字符串,比较的文件名1 |
| `s2` | string | 字符串,比较的文件名2 |
返回:bool
### 示例
```tsl
return sameFileName('index.tsl', "test.tsl");
// 输出:0
```
## `formatFloatExt(v, dtype)`
格式化输出-数字
| 参数 | 类型 | 说明 |
| ------- | ------- | ---------- |
| `v` | real | 实数 |
| `dtype` | integer | 数据的格式 |
返回:string
### 示例
```tsl
return formatFloatExt(12345.67, 1);
// 结果:’ 12,345.67
return formatFloatExt("123");
// 结果:’ -
```
## `spaceByNumber(n)`
生成N个空格字符串
| 参数 | 类型 | 说明 |
| ---- | ------- | ---- |
| `n` | integer | 整数 |
返回:string
### 示例
```tsl
return write('---', spaceByNumber(2), '---');
// 运行信息打印结果:
```
## `tryUppercase(s)`
将字符串S转换成大写并返回,不抛出异常,转换失败时返回""
| 参数 | 类型 | 说明 |
| ---- | ------ | --------------- |
| `s` | string | 字符串,原字符串 |
返回:string
### 示例
```tsl
return tryUppercase("abc");
// 结果:"ABC"
```
## `tryLowercase(s)`
将字符串S转换成小写并返回,不抛出异常,转换失败时返回""
| 参数 | 类型 | 说明 |
| ---- | ------ | --------------- |
| `s` | string | 字符串,原字符串 |
返回:string
### 示例
```tsl
return tryUppercase("ABC");
// 结果:"abc"
```
## `letters(vlaue, ul)`
将数字与在字符串进行对照转换。基本用法同R的letters。在超出26的时候,仿excel的列名的规则提取。用于将excel数字列名转为字符串列名:1->'A'。
| 参数 | 类型 | 说明 |
| ------- | ------- | ----------------------- |
| `vlaue` | integer | 整数。正整数列名 |
| `ul` | integer | 整数。是否大写,默认为1 |
返回:string/array
### 示例
```tsl
return letters(1, 0);
// 结果:a
```
## `decToInt64(s)`
将字符串转换为64位整数。
| 参数 | 类型 | 说明 |
| ---- | ------ | ------------------------ |
| `s` | string | 字符串。需转换的字符串。 |
返回:integer
### 示例
范例01
```tsl
return decToInt64("12"); // 输出: 12L
```
范例02:十六进制格式字符串的转换
```tsl
return decToInt64("0x12"); // 报错
return strToInt64("0x12"); // 输出:18L
```
## `decToInt64Def(s, default)`
将字符串转换为64位整数。如果转换失败,则返回Default值。
| 参数 | 类型 | 说明 |
| --------- | ------- | ---------------------------- |
| `s` | string | 字符串。需转换的字符串 |
| `default` | integer | 整数。转换失败时返回的默认值 |
返回:integer
### 示例
范例01
```tsl
return decToInt64Def("12", 1); // 输出: 12L
return decToInt64Def("test", 1); // 输出: 1L
```
范例02:十六进制格式字符串的转换
```tsl
return decToInt64Def("0x12", 1); // 输出: 1L
return strToInt64Def("0x12", 1); // 输出:18L
```
## `tryDecToInt64(s, value)`
将字符串转换为64位整数。若转换成功,转换值通过Value输出。
| 参数 | 类型 | 说明 |
| ------- | ------------ | ----------------------------------------------- |
| `s` | string | 字符串。需转换的字符串 |
| `value` | integer\|nil | 变参。转换成功,为转换后的整数;否则,为NIL值。 |
返回:bool
### 示例
范例01:转换成功
```tsl
ret := tryDecToInt64("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12L
```
范例02:转换失败
```tsl
ret := tryDecToInt64("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
```
范例03:十六进制格式字符串的转换
```tsl
ret := tryDecToInt64("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
ret := tryStrToInt64("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18L
```
## `decToInt32(s)`
将字符串转换为32位整数。
| 参数 | 类型 | 说明 |
| ---- | ------ | ---------------------- |
| `s` | string | 字符串。需转换的字符串 |
返回:integer
### 示例
范例01
```tsl
return decToInt32("12"); // 输出: 12
```
范例02:十六进制格式字符串的转换
```tsl
return decToInt32("0x12"); // 报错
return strToInt32("0x12"); // 输出:18
```
## `decToInt32Def(s, default)`
将字符串转换为32位整数。如果转换失败,则返回Default值。
| 参数 | 类型 | 说明 |
| --------- | ------- | ---------------------------- |
| `s` | string | 字符串。需转换的字符串 |
| `default` | integer | 整数。转换失败时返回的默认值 |
返回:integer
### 示例
范例01
```tsl
return decToInt32Def("12", 1); // 输出: 12
return decToInt32Def("test", 1); // 输出: 1
```
范例02:十六进制格式字符串的转换
```tsl
return decToInt32Def("0x12", 1); // 输出: 1
return strToInt32Def("0x12", 1); // 输出:18
```
## `tryDecToInt32(s, value)`
将字符串转换为32位整数。若转换成功,转换值通过Value输出。
| 参数 | 类型 | 说明 |
| ------- | ------------ | ----------------------------------------------- |
| `s` | string | 字符串。需转换的字符串 |
| `value` | integer\|nil | 变参。转换成功,为转换后的整数;否则,为NIL值。 |
返回:bool
### 示例
范例01:转换成功
```tsl
ret := tryDecToInt32("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12
```
范例02:转换失败
```tsl
ret := tryDecToInt32("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
```
范例03:十六进制格式字符串的转换
```tsl
ret := tryDecToInt32("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
ret := tryStrToInt32("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18
```
## `decToInt(s)`
将字符串转换为整数。
| 参数 | 类型 | 说明 |
| ---- | ------ | ---------------------- |
| `s` | string | 字符串。需转换的字符串 |
返回:integer
### 示例
范例01
```tsl
return decToInt("12"); // 输出: 12
```
范例02:十六进制格式字符串的转换
```tsl
return decToInt("0x12"); // 报错
return strToInt("0x12"); // 输出:18
```
## `decToIntDef(s, default)`
将字符串转换为整数。如果转换失败,则返回Default值。
| 参数 | 类型 | 说明 |
| --------- | ------- | ---------------------------- |
| `s` | string | 字符串。需转换的字符串 |
| `default` | integer | 整数。转换失败时返回的默认值 |
返回:integer
### 示例
范例01
```tsl
return decToIntDef("12", 1); // 输出: 12
return decToIntDef("test", 1); // 输出: 1
```
范例02:十六进制格式字符串的转换
```tsl
return decToIntDef("0x12", 1); // 输出: 1
return strToIntDef("0x12", 1); // 输出:18
```
## `tryDecToInt(s, value)`
将字符串转换为整数。若转换成功,转换值通过Value输出。
| 参数 | 类型 | 说明 |
| ------- | ------------ | ----------------------------------------------- |
| `s` | string | 字符串。需转换的字符串 |
| `value` | integer\|nil | 变参。转换成功,为转换后的整数;否则,为NIL值。 |
返回:bool
### 示例
范例01:转换成功
```tsl
ret := tryDecToInt("12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: 12
```
范例02:转换失败
```tsl
ret := tryDecToInt("test", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
```
范例03:十六进制格式字符串的转换
```tsl
ret := tryDecToInt("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出: "转换失败!"
ret := tryStrToInt("0x12", value);
if ret then
return value;
else
return "转换失败!";
// 输出:18
```
## `floatToStrne(value)`
将实数转换成字符串类型。和FloatToStr的区别:在处理浮点数据时,FloatToStrne的结果不会输出为1E15等格式
| 参数 | 类型 | 说明 |
| ------- | ---- | ---- |
| `value` | real | 实数 |
返回:string
### 示例
```tsl
return floatToStrne(23.4);
// 输出字符串:"23.4"
return floatToStrne(1E15);
// 大数量级数据,输出:"1000000000000000"
```
## `fuzzyCompare(_type, s1, s2)`
根据指定算法,计算两字符串的相似性
| 参数 | 类型 | 说明 |
| ------- | ------- | ------------------------------------ |
| `_type` | integer | 模糊匹配算法类型,支持如下几种算法: |
| `s1` | string | 字符串1 |
| `s2` | string | 字符串2 |
返回:real
### 示例
```tsl
// 使用Jaccard相似度算法,计算字符串"kitten"和"sitting"的相似性
return fuzzyCompare(fzJaccard(), "kitten", "sitting"); // 等价于FuzzyCompare(2,"kitten","sitting")
// 返回:0.222222222222222
```
## `fuzzyCompareEx(_type, s1, s2, n, nret)`
根据指定算法,计算两字符串的相似性
| 参数 | 类型 | 说明 |
| ------- | ------- | ---------------------------------------------------------------------------------- |
| `_type` | integer | 模糊匹配算法类型,支持如下几种算法: |
| `s1` | string | 字符串1 |
| `s2` | string | 字符串2 |
| `n` | integer | 仅指定算法为FzJaccard、FzCosine、FzSimHash时,该参数有效;其对应含义和默认值如下: |
| `nret` | integer | 输出值;指定不同的算法时,其对应含义如下: |
返回:real
### 示例
```tsl
// 使用Jaccard相似度算法,指定切分字符长度为1,计算字符串"kitten"和"sitting"的相似性
t := fuzzyCompareEx(fzJaccard(), "kitten", "sitting", 1, nret);
return array(t, nret);
// t值为相似性,nret值为两字符串切分后交集中元素个数,返回值为array(0.428571428571429,3)
```
## `fzEditDistance()`
基于编辑距离(Edit Distance)的模糊匹配算法,核心是计算将一个字符串转换为另一个字符串所需的最小编辑操作次数,允许的操作包含插入、删除、替换三类。
返回:integer
### 示例
范例一:FuzzyCompare相似性计算
```tsl
return fuzzyCompare(fzEditDistance(), "kitten", "sitting");
// 返回:0.571428571428571
```
范例一:FuzzyCompareEx相似性计算
```tsl
t := fuzzyCompareEx(fzEditDistance(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.571428571428571,3)
// 算法对比解析:
// 字符串"kitten"转换为"sitting"需要3步(k->se->i,添加g),字符串总长度7,相似度为1-3/7=4/7(即0.571428571428571
```
## `fzHammingDistance()`
Hamming Distance(汉明距离)算法类型:计算两字符串对应位置上不同字符的数量。
返回:integer
### 示例
范例一:FuzzyCompare相似性计算
```tsl
return fuzzyCompare(fzHammingDistance(), "kitten", "sitting");
// 返回:0.571428571428571
```
范例二:FuzzyCompareEx相似性计算
```tsl
t := fuzzyCompareEx(fzHammingDistance(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.571428571428571,3)
// 算法对比解析:
// 字符串"kitten"、"sitting"对应位置上不同的字符有3处(k->s, e->i, g),字符串总长度为7,相似度为1-3/7=4/7(即0.571428571428571
```
## `fzLongestSubstring()`
Longest Substring(最长公共子串)算法类型:找出两字符串中连续出现的最长相同子串。
返回:integer
### 示例
范例一:FuzzyCompare相似性计算
```tsl
return fuzzyCompare(fzLongestSubstring(), "kitten", "sitting");
// 返回:0.428571428571429
```
范例二:FuzzyCompareEx相似性计算
```tsl
t := fuzzyCompareEx(fzLongestSubstring(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.428571428571429,3)
// 算法对比解析:
// 字符串"kitten"、"sitting"中连续出现的最长相同子串为"itt",字符串总长度为7,相似度为3/7(即0.428571428571429
```
## `fzLongestSequnce()`
Longest Sequnce(最长公共子序列)算法类型:找出两字符串中顺序相同但不必连续的最长子序列
返回:integer
### 示例
范例一:FuzzyCompare相似性计算
```tsl
return fuzzyCompare(fzLongestSequnce(), "kitten", "sitting");
// 返回:0.571428571428571
```
范例二:FuzzyCompareEx相似性计算
```tsl
t := fuzzyCompareEx(fzLongestSequnce(), "kitten", "sitting", n, nret);
return array(t, nret);
// 返回:array(0.571428571428571,4)
// 算法对比解析:
// 字符串"kitten"、"sitting"中顺序相同但不必连续的最长子序列为"ittn",字符串总长度为7,相似度为4/7(即0.571428571428571
```
## `fzJaccard()`
Jaccard相似度算法类型:将字符串根据指定长度n(默认值为2)划分为两个字符集合,计算两集合交集元素个数与并集元素个数的比值。
返回:integer
### 示例
范例一:FuzzyCompare相似性计算,字符切分长度为2
```tsl
return fuzzyCompare(fzJaccard(), "kitten", "sitting");
// 返回:0.222222222222222
```
范例二:FuzzyCompareEx相似性计算,指定字符切分长度为1
```tsl
t := fuzzyCompareEx(fzJaccard(), "kitten", "sitting", 1, nret);
return array(t, nret);
// 返回:array(0.428571428571429,3)
// 算法对比解析:
// FuzzyCompare:字符切分长度为2,字符串"kitten"切分后的集合为:{ki, it, tt, te, en}"sitting"为:{si, it, tt, ti, in, ng};交集:{it, tt},并集:{ki, it, tt, te, en, si, ti, in, ng},相似度为2/9(即0.222222222222222
// FuzzyCompareEx:指定字符切分长度为1,字符串"kitten"切分后的集合为:{k, i, t, e, n}"sitting"为:{s, i, t, n, g},交集:{i, t, n},并集:{k, i, t, e, n, s, g},相似度为3/7(即0.428571428571429
```
## `fzCosine()`
Cosine(余弦相似度)算法类型:将字符串根据指定长度n(默认值为2)划分为两个字符集合,将字符集合转换为向量,计算两向量夹角的余弦值。
返回:integer
### 示例
范例一:FuzzyCompare相似性计算,字符切分长度为2
```tsl
return fuzzyCompare(fzCosine(), "kitten", "sitting");
// 返回:0.365148371670111
```
范例二:FuzzyCompareEx相似性计算,指定字符切分长度为1
```tsl
return fuzzyCompareEx(fzCosine(), "kitten", "sitting", 1, nret);
// 返回:0.746202507244636
// 算法对比解析:
// FuzzyCompare:字符切分长度为2,字符串"kitten"切分后的集合为:{ki, it, tt, te, en}"sitting"{si, it, tt, ti, in, ng};转换成向量分别为:[1, 1, 1, 1, 1, 0, 0, 0, 0]、[0, 1, 1, 0, 0, 1, 1, 1, 1],代入算法中,计算出的相似度为0.365148371670111
// FuzzyCompareEx:字符切分长度为1,字符串"kitten"切分后的集合为:{k, i, t, e, n}"sitting"{s, i, t, n, g},转换成向量分别为:[1, 1, 2, 1, 1, 0, 0]、[0, 2, 2, 0, 1, 1, 1],代入算法中,计算出的相似度为0.746202507244636
```
## `fzJaroWinkler()`
Jaro-Winkler距离算法类型:先统计两字符串的匹配字符数与换位次数,并代入Jaro距离算法公式,得到相似度,再根据两字符串的公共前缀长度给予额外加权,得到最终的相似度
返回:integer
### 示例
范例一:FuzzyCompare相似性计算
```tsl
return fuzzyCompare(fzJaroWinkler(), "kitten", "sitting");
// 返回:0.746031746031746
```
范例二:FuzzyCompareEx相似性计算
```tsl
return fuzzyCompareEx(fzJaroWinkler(), "kitten", "sitting", n, nret);
// 返回:0.746031746031746
```
## `fzSimHash()`
SimHash(局部敏感哈希)算法类型:对字符串分词并计算加权哈希生成二进制指纹,比较两个指纹间的对应位置上不同字符的数量
返回:integer
### 示例
范例一:FuzzyCompare相似性计算,特征词数量为3
```tsl
return fuzzyCompare(fzSimHash(), "kitten", "sitting");
// 返回:0.640625
```
范例二:FuzzyCompareEx相似性计算,特征词数量为1
```tsl
t := fuzzyCompareEx(fzSimHash(), "kitten", "sitting", 1, nret);
return array(t, nret);
// 返回:array(0.921875,5)
```
## `formatStrExt(s)`
判断字符串是否是字符串,不是字符串的显示为“-”
| 参数 | 类型 | 说明 |
| ---- | ------ | ------ |
| `s` | string | 字符串 |
返回:string
### 示例
```tsl
return formatStrExt('aaaaa');
// 结果:’aaaaa
return formatStrExt(123);
// 结果:’-
```
## `seprateStrToTotal(s)`
把用;分割的字符串转换为#分割
| 参数 | 类型 | 说明 |
| ---- | ------ | ------ |
| `s` | string | 字符串 |
返回:string
### 示例
```tsl
return seprateStrToTotal('债券型;现金型;配置型;股票型;保本型');
// 结果:’债券型#现金型#配置型#股票型#保本型
```
## `totalStrToSeprate(s)`
把用#分割的字符串转换为;分割
| 参数 | 类型 | 说明 |
| ---- | ------ | ------ |
| `s` | string | 字符串 |
返回:string
### 示例
```tsl
return totalStrToSeprate ('债券型#现金型#配置型#股票型#保本型');
// 结果:’债券型;现金型;配置型;股票型;保本型’
```
## `dateStrToArr(end_dates, sep1, sep2)`
把日期区间字符串转换为列表
| 参数 | 类型 | 说明 |
| ----------- | ------ | -------------------- |
| `end_dates` | string | 日期区间字符串 |
| `sep1` | string | 日期区间字符串分割符 |
| `sep2` | string | 开始和截止日期分割符 |
返回:array
### 示例
```tsl
return dateStrToArr('2007-9-10;2007-9-10', '$', ';'); // '$'表示结束位置
// 输出:
// 示例包含说明文字,未作为可执行片段运行。
```
## `rDateStrToArr(rdate_list)`
把报告期字符串转换为列表
| 参数 | 类型 | 说明 |
| ------------ | ------ | ------------------------------------------ |
| `rdate_list` | string | 字符串,报告期字符串,多个报告期以分号区分 |
返回:array
### 示例
```tsl
return rDateStrToArr('20070331;20070630');
// 输出:
// Execute script error at Line:1
// function:__main__:line 1:instruction:usercall: function:rDateStrToArr compile error or not found
// function:__main__:line 1:instruction:usercall: function execute error
```
## `replaceStrByReg(s, reg_from_text, to_text)`
正则表达式快速字符串替换,大小写敏感。
| 参数 | 类型 | 说明 |
| --------------- | ------ | -------------------------------- |
| `s` | string | 字符串。源串 |
| `reg_from_text` | string | 字符串。待替换的部分,正则表达式 |
| `to_text` | string | 字符串。替换的字符串 |
返回:string
### 示例
```tsl
return replaceStrByReg("abcdeak", "A", "kkkk");
// 结果:abcdeak
```
## `replaceTextByReg(s, reg_from_text, to_text)`
正则表达式快速字符串替换,大小写不敏感。
| 参数 | 类型 | 说明 |
| --------------- | ------ | -------------------------------- |
| `s` | string | 字符串。源串 |
| `reg_from_text` | string | 字符串。待替换的部分,正则表达式 |
| `to_text` | string | 字符串。替换的字符串 |
返回:string
### 示例
```tsl
return replaceTextByReg("abcdeak", "a", "kkkk");
// 结果:kkkkbcdekkkkk
```
## `parseRegExpr3(s, reg_from_text, to_text, parse_ctrls)`
直接返回输出的正则表达式解析。
| 参数 | 类型 | 说明 |
| --------------- | ------ | -------------------------------- |
| `s` | string | 字符串。源串 |
| `reg_from_text` | string | 字符串。待替换的部分,正则表达式 |
| `to_text` | string | 字符串。替换的字符串 |
| `parse_ctrls` | string | 字符串。正则表达式控制串 |
返回:string
### 示例
```tsl
return parseRegExpr3("abcdeak", "ab", "kkkk", "ir");
// 结果:kkkkcdeak
```
## `floatToStrneW(value)`
将实数转换成宽字节字符串类型。和FloatToStrW的区别:在处理大数量级数据(如1E15、10^15等)时,FloatToStrneW的结果不会输出为1E15等格式。
| 参数 | 类型 | 说明 |
| ------- | ---- | ---- |
| `value` | real | 实数 |
返回:string
### 示例
```tsl
return floatToStrneW(1234.1234);
// 输出:L"1234.1234"
return floatToStrneW(1E15);
// 大数量级数据,输出:L"1000000000000000"
```
## `hztoPy(hz)`
汉字翻译为拼音
| 参数 | 类型 | 说明 |
| ---- | ------ | ----------- |
| `hz` | string | String 汉字 |
返回:string
### 示例
```tsl
return hztoPy("华夏优势"); // HXYS
return hztoPy("华夏盛势"); // HXCS HXSS
```
## `tostring(v)`
将数值转成字符串类型
| 参数 | 类型 | 说明 |
| ---- | ------ | ---- |
| `v` | number | 数值 |
返回:string
## `DT_Date()`
返回'Date'字符串。
返回:string
## `DT_Str()`
返回'String'字符串。
返回:string
## `DT_Real()`
返回'Real'字符串。
返回:string
@@ -310,3 +310,68 @@ Windows上获取进程id对应的句柄,Linux上获取指定文件ID的复制I
| `wait_ms` | int | 整数,等待的毫秒数,-1则为永远等待。 |
返回:int
## `sysGetMemoryUsage()`
获取系统内存状态
返回:array,tablearray
### 示例
```tsl
// 获得系统内存状态
return sysGetMemoryUsage();
```
## `sysGetProcessMemoryUsage(pid)`
获取进程的内存使用状态
| 参数 | 类型 | 说明 |
| ----- | ------- | ---------------------------------------------------------- |
| `pid` | integer | 整数,可选参数,进程ID。未指定时默认获取自身的内存使用状态 |
返回:array
### 示例
```tsl
// 获得自身的内存使用状态
return sysGetProcessMemoryUsage();
```
## `sysLibCVersion()`
获取系统中C语言支持库的版本
返回:string
### 示例
```tsl
// 获得C语言支持库的版本
return sysLibCVersion();
// 返回:"10.0.26100.8521"
```
## `processField(field_name, call_back)`
对相应的数据进行处理,注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ------------ | ------ | ---------------- |
| `field_name` | string | 字符串,字段名称 |
| `call_back` | string | 字符串,函数名称 |
返回:array,tablearray
## `processFirstField(call_back)`
对相应数据进行处理。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ----------- | ------ | ---------------- |
| `call_back` | string | 字符串,函数名称 |
返回:array,tablearray
@@ -67,3 +67,149 @@
| `v` | binary | 二进制类型,STM流 |
返回:any
## `DataBaseRatioId_tdhy()`
泰达荷银-常用的财务数据
返回:array
## `DataBaseRatioId_Jy2(id)`
Jy常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
## `DataBaseRatioId_Ht(id)`
海通常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
## `DataBaseRatioId_Wind2()`
Wind常用的财务比率分析数据
返回:array
## `DataBaseRatioId_ghjj()`
国海基金-常用的财务数据
返回:array
## `DataBaseRatioId_nfjj()`
南方基金-常用的财务数据
返回:array
## `IF_1(c)`
条件语句if教学函数。传入参数C,如果C大于10则返回整数20,否则返回10。
| 参数 | 类型 | 说明 |
| ---- | ----- | ---- |
| `c` | float | 实数 |
返回:any
## `IF_2(q)`
条件语句if教学函数。传入参数q,对q的值进行判断来返回相应的字符串。
| 参数 | 类型 | 说明 |
| ---- | ----- | ---- |
| `q` | float | 实数 |
返回:string
## `IF_3(a)`
条件语句if教学函数。传入参数a,对a的值进行判断来返回相应的字符串。
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `a` | any | 整数 |
返回:string
## `dataisequal(v1, v2)`
判断2个变量是否相等
| 参数 | 类型 | 说明 |
| ---- | ---- | -------------- |
| `v1` | any | 任意类型,变量1 |
| `v2` | any | 任意类型,变量2 |
返回:bool
## `DataProcess_MF(arr, fwm)`
极值处理(多因子),对数据表以列为单位处理奇异值。其中arr为数据表,fwm为处理方法。
| 参数 | 类型 | 说明 |
| ----- | ------ | -------------------- |
| `arr` | array | 数据表类型 |
| `fwm` | string | 用户自定义,处理方法 |
返回:any
## `DataBaseRatioId_Jy()`
Jy常用的财务比率分析数据
返回:array
## `DataBaseRatioId_Wind()`
Wind常用的财务比率分析数据
返回:array
## `DataBaseRatioId_Tinysoft(id)`
Tinysoft常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
## `DataBaseRatioId_Genius(id)`
Genius常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
## `floatN(r, n)`
使用银行家算法进行四舍五入,精确到10Adigit位。“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一”
| 参数 | 类型 | 说明 |
| ---- | ------- | ------------------------ |
| `r` | real | 实数 |
| `n` | integer | 整型数据,保留的小数位数 |
返回:real
#### 示例
```tsl
return floatN(12.6578, 2);
// 结果:12.66
```