♻️ 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.
This commit is contained in:
csh
2026-07-20 09:08:38 +08:00
parent c69278283f
commit 1f19954dd7
51 changed files with 14116 additions and 14239 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ description: "Use when writing or reviewing TSL code and needing authoritative T
Use this skill for TSL API facts only: function/module names, exact signatures,
parameters, return values, and examples. For TSL syntax, control flow, variables,
object model, or runtime language rules, use the TSL language docs instead.
object model, or runtime language rules, use the `tsl-syntax-reference` skill instead.
Do not infer API signatures from memory or similar languages. TSL names are
case-insensitive, but underscores are significant: do not remove underscores or
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,108 +0,0 @@
# Builtin - 基础 / 表达式与动态调用
## `fn_MainAndSubFunc()`
函数的定义与调用教学函数。函数本身调用了另外一个累积求和的函数,返回0到9的累积求和。
返回:any
## `fn_Func2(bkname)`
getbk()函数教学函数。返回Bkname板块的所有股票。
| 参数 | 类型 | 说明 |
| -------- | ------ | -------- |
| `bkname` | string | 系统板块 |
返回:any
## `fn_CallByPara()`
函数的定义与调用教学函数。函数本身定义了一个整数a=1,调用另一个函数使得a自加1。
返回:any
## `fn_CallByParaSub(a)`
TSL基本函数教学函数。函数对传入的参数自加1,本身不返回任何值。
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `a` | any | 整数 |
返回:any
## `fn_Main(begt, endt)`
TSL基本函数教学函数。获得板块‘深圳A股’股票序列中各股票在Begt至EndT的换手率与涨幅。
| 参数 | 类型 | 说明 |
| ------ | -------- | -------------- |
| `begt` | datetime | 日期,开始日期 |
| `endt` | datetime | 日期,截止日期 |
返回:any
## `fc_tryExcept()`
Try-Except教学函数。对字符串‘3.2’进行整形转字符串,如果捕获到错误,则抛出异常'类型转换错误'。
返回:string
## `fc_Raise(a)`
Raise教学函数。参数a和0比较大小,如果a大于0则返回a的值,否则弹出 异常信息'a不能小于0'。
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `a` | any | real |
返回:any
## `fc_DebugReturn()`
DebugReturn教学函数。调试返回,后面跟返回值,可在任何地方直接将结果返回到客户端,而不是象RETURN一样返回到上一级别,这有助于用户调试使用。
返回:any
## `fc_break()`
循环语句教学函数。对nI自1向10000自乘,当自乘值大于10000时结束循环,返回nI的值。
返回:any
## `fc_while()`
while循环语句教学函数。对i自1向99累加到初始值为1的sum,返回sum。
返回:any
## `fc_continue()`
continue循环语句教学函数。对i自0向100累积求和,若遇到偶数则跳出本次循环,返回0到100的奇数和。
返回:any
## `fc_For()`
for循环语句教学函数。对数组array(1,2,3)遍历,返回累积求和值。
返回:array
## `fCallBack()`
字符串或函数指针,call事件回调函数;未指定时,必须重写CallBack方法
返回:any
## `callBack(name, param, realdata)`
虚方法,TS-OPS服务端call事件处理函数;若未指定FCallBack,则必须重写该方法
| 参数 | 类型 | 说明 |
| ---------- | ----------------- | ---- |
| `name` | string\|tfunction | |
| `param` | array | |
| `realdata` | array | |
返回:array,tablearray
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -2,24 +2,6 @@
## 类型转换
### `floatN(r, n)`
使用银行家算法进行四舍五入,精确到10Adigit位。“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一”
| 参数 | 类型 | 说明 |
| ---- | ------- | ------------------------ |
| `r` | real | 实数 |
| `n` | integer | 整型数据,保留的小数位数 |
返回:real
#### 示例
```tsl
return floatN(12.6578, 2);
// 结果:12.66
```
### `dataType(data, n)`
根据Data的数据类型返回对应的值。当Data为数组时,N生效,支持对数组中的每个维度或每个单元格进行数据类型的判断。
@@ -33,25 +15,38 @@ return floatN(12.6578, 2);
#### 示例
范例01:当参数为数组型变量时,返回数组类型对应的整数 5
```tsl
// 当参数为数组型变量时,返回数组类型对应的整数5。
a := Array(34, 12); // 定义a为一个数组
result := dataType(a);
return result; // 5
// 当参数为整数型变量时,返回整数类型对应的整数0。
return result;
// 输出:5
```
范例02:当参数为整数型变量时,返回整数类型对应的整数 0
```tsl
a := 23; // 定义a为一个整数
result := dataType(a);
return result; // 0
// 对数组第一维度数据进行类型判断
return result;
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.14, "A", (1, 2, 3), nil);
return dataType(t, -1);
// 输出:
// 对数组中每一数据进行类型判断
// 输出:array(0,1,2,5,10)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3.14, "A", (1, 2, 3), nil);
return dataType(t, 1);
// 输出:
// array(0,1,2,
// (0,0,0),10)
// 输出:array(0,1,2,(0,0,0),10)
```
### `createBinary(len)`
@@ -86,161 +81,6 @@ return dataType(t, 1);
返回:bool
### `DataBaseRatioId_Jy()`
Jy常用的财务比率分析数据
返回:array
### `DataBaseRatioId_Wind()`
Wind常用的财务比率分析数据
返回:array
### `DataBaseRatioId_Tinysoft(id)`
Tinysoft常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
### `DataBaseRatioId_tdhy()`
泰达荷银-常用的财务数据
返回:array
### `DataBaseRatioId_Jy2(id)`
Jy常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
### `DataBaseRatioId_Ht(id)`
海通常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `id` | any | 整数类型 |
返回:array
### `DataBaseRatioId_Genius(id)`
Genius常用的财务比率分析数据
| 参数 | 类型 | 说明 |
| ---- | ---- | -------- |
| `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
### `createComObj(guid, obj)`
创建COM对象。如果创建成功则返回真,否则返回假。
| 参数 | 类型 | 说明 |
| ------ | ------ | ---------------- |
| `guid` | string | 对象的类GUID串。 |
| `obj` | object | 保存创建的对象。 |
返回:bool
### `dataisequal(v1, v2)`
判断2个变量是否相等
| 参数 | 类型 | 说明 |
| ---- | ---- | -------------- |
| `v1` | any | 任意类型,变量1 |
| `v2` | any | 任意类型,变量2 |
返回:bool
### `DataProcess_MF(arr, fwm)`
极值处理(多因子),对数据表以列为单位处理奇异值。其中arr为数据表,fwm为处理方法。
| 参数 | 类型 | 说明 |
| ----- | ------ | -------------------- |
| `arr` | array | 数据表类型 |
| `fwm` | string | 用户自定义,处理方法 |
返回:any
### `create(url, header, onmessage, u, p, s, reconn)`
构造方法
| 参数 | 类型 | 说明 |
| ----------- | --------- | --------------------------------------------------------------- |
| `url` | string | TS-OPS服务注册地址 |
| `header` | string | TS-OPS服务注册时需要指定的头部信息,比如TS-OPS-CALL等 |
| `onmessage` | tfunction | 消息处理过程,指向一个函数。可通过Findfunction("函数名")产生 |
| `u` | string | 用户名 |
| `p` | string | 用户密码 |
| `s` | string | 租户Session Key;使用特殊租户(调用功能列表为\*)替代用户时指定 |
| `reconn` | bool | 是否启用断开自动重连机制 |
返回:any
### `ifInt(value, n)`
判断value是否是一个32位整数类型。可通过可选参数N对数组中的行或元素进行判断。
@@ -263,7 +103,7 @@ r2 := ifInt(3.14);
r3 := ifInt("A");
r4 := ifInt(array(1, 2, 3));
return array(r1, r2, r3, r4);
// 结果array(1,0,0,0)
// 输出array(1,0,0,0)
```
范例二:
@@ -272,7 +112,7 @@ return array(r1, r2, r3, r4);
// 对数组第一维度数据进行类型判断
t := array(1, 3.14, "A", (1, 2, 3), nil);
return ifInt(t, -1);
// 结果array(1,0,0,0,0)
// 输出array(1,0,0,0,0)
```
范例三:
@@ -281,7 +121,7 @@ return ifInt(t, -1);
// 对数组中每一数据进行类型判断
t := array(1, 3.14, "A", (1, 2.1, 3), nil);
return ifInt(t, 1);
// 结果array(1,0,0,(1,0,1),0)
// 输出array(1,0,0,(1,0,1),0)
```
### `ifInt64(value, n)`
@@ -297,21 +137,36 @@ return ifInt(t, 1);
#### 示例
范例01:当参数为长整型变量时,返回 1
```tsl
// 当参数为整数类型变量时,返回true。
a := 23L; // 定义a为一个64位整数
return ifInt64(a);
// 当参数为非整数型变量时,返回false。
// 输出:1
```
范例02:当参数为非长整型变量时,返回 0
```tsl
a := 2.3; // 定义a为一个非64位整数
return ifInt64(a);
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3L, "A", (1, 2, 3), nil);
return ifInt64(t, -1);
// 结果array(0,1,0,0,0)
// 对数组中每一数据进行类型判断
// 输出array(0,1,0,0,0)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3L, "A", (1, 2L, 3), nil);
return ifInt64(t, 1);
// 结果array(0,1,0,(0,1,0),0)
// 输出array(0,1,0,(0,1,0),0)
```
### `ifReal(value, n)`
@@ -327,23 +182,38 @@ return ifInt64(t, 1);
#### 示例
范例01:当参数为实数类型变量时,返回 1
```tsl
// 当参数为实数类型变量时,返回true。
a := 2.233; // 定义a为一个实数
result := ifReal(a);
return result;
// 当参数为非整数型变量时,返回false。
// 输出:1
```
范例02:当参数为非实数类型变量时,返回 0
```tsl
a := array(23, 54, 67); // 定义a为一个非实数
result := ifReal (a);
result := ifReal(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.56, "A", (1, 2, 3), nil);
return ifInt64(t, -1);
// 结果array(0,1,0,0,0)
// 对数组中每一数据进行类型判断
return ifReal(t, -1);
// 输出array(0,1,0,0,0)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3.56, "A", (1, 2.14, 3), nil);
return ifInt64(t, 1);
// 结果array(0,1,0,(0,1,0),0)
return ifReal(t, 1);
// 输出array(0,1,0,(0,1,0),0)
```
### `ifNumber(value, n)`
@@ -359,23 +229,38 @@ return ifInt64(t, 1);
#### 示例
范例01:当参数为数字类型(整数或者实数)变量时,返回 1
```tsl
// 当参数为数字类型(整数或者实数)变量时,返回true。
a := 2.233; // 定义a为一个实数
result := ifNumber (a);
result := ifNumber(a);
return result;
// 当参数为非数字类型(整数或者实数)变量时,返回false。
// 输出:1
```
范例02:当参数为非数字类型变量时,返回 0
```tsl
a := array(23, 54, 67); // 定义a为一个非数字类型
result := ifNumber (a);
result := ifNumber(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.56, "A", (1, 2, 3), nil);
return ifNumber(t, -1);
// 结果array(1,1,0,0,0)
// 对数组中每一数据进行类型判断,nan也为数字类型
// 输出array(1,1,0,0,0)
```
范例04:对数组中每一数据进行类型判断,nan 也为数字类型
```tsl
t := array(1, 3.56, "A", (nan, 2.14, "C"), nil);
return ifNumber(t, 1);
// 结果array(1,1,0,(1,1,0),0)
// 输出array(1,1,0,(1,1,0),0)
```
### `ifString(value, n)`
@@ -391,23 +276,38 @@ return ifNumber(t, 1);
#### 示例
范例01:当参数为字符串类型变量时,返回 1
```tsl
// 当参数为字符串类型变量时,返回true。
a := 'test'; // 定义a为一个字符串
result := ifString (a);
result := ifString(a);
return result;
// 当参数为非字符串类型变量时,返回false。
// 输出:1
```
范例02:当参数为非字符串类型变量时,返回 0
```tsl
a := array(23, 54, 67); // 定义a为一个非字符串
result := ifString (a);
result := ifString(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.56, "A", (1, 2, 3), nil);
return ifString(t, -1);
// 结果array(0,0,1,0,0)
// 对数组中每一数据进行类型判断
// 输出array(0,0,1,0,0)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3.56, "A", (nan, 2.14, "C"), nil);
return ifString(t, 1);
// 结果array(0,0,1,(0,0,1),0)
// 输出array(0,0,1,(0,0,1),0)
```
### `ifArray(value, n)`
@@ -423,23 +323,38 @@ return ifString(t, 1);
#### 示例
范例01:当参数为数组类型变量时,返回 1
```tsl
// 当参数为数组类型变量时,返回true。
a := array(23, 54, 67); // 定义a为一个数组
result := ifArray (a);
result := ifArray(a);
return result;
// 当参数为非数组类型变量时,返回false。
// 输出:1
```
范例02:当参数为非数组类型变量时,返回 0
```tsl
a := 34; // 定义a为一个非数组
result := ifArray (a);
result := ifArray(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.56, "A", (1, "C", 3.14), nil);
return ifArray(t, -1);
// 结果array(0,0,0,1,0)
// 对数组中每一数据进行类型判断
// 输出array(0,0,0,1,0)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3.56, "A", (nan, 2.14, "C"), nil);
return ifArray(t, 1);
// 结果array(0,0,0,(0,0,0),0)
// 输出array(0,0,0,(0,0,0),0)
```
### `ifNil(value, n)`
@@ -455,22 +370,37 @@ return ifArray(t, 1);
#### 示例
范例01:当参数为空时,返回 1
```tsl
// 参数为空时,返回true。
result := ifNil (nil); // 函数参数为空
result := ifNil(nil); // 函数参数为空
return result;
// 当参数不为空时,返回false。
// 输出:1
```
范例02:当参数不为空时,返回 0
```tsl
a := 34; // 函数参数不为空
result := ifNil (a);
result := ifNil(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.16, "A", (nil, "C", 3.14), nil);
return ifNil(t, -1);
// 结果array(0,0,0,0,1)
// 对数组中每一数据进行类型判断
// 输出array(0,0,0,0,1)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3.56, "A", (nil, 2.14, "C"), nil);
return ifNil(t, 1);
// 结果array(0,0,0,(1,0,0),1)
// 输出array(0,0,0,(1,0,0),1)
```
### `ifExp(value, n)`
@@ -486,23 +416,38 @@ return ifNil(t, 1);
#### 示例
范例01:当参数是一个表达式类型时,返回 1
```tsl
// 当参数是一个表达式类型时,返回true。
a := @'dfhdv'+'dbf'; // 函数参数a为一个表达式
result := ifExp (a);
result := ifExp(a);
return result;
// 当参数不是一个表达式类型时,返回false。
// 输出:1
```
范例02:当参数不是一个表达式类型时,返回 0
```tsl
a := 'sdhv'+'dbf'; // 函数参数a不为表达式
result := ifExp (a);
result := ifExp(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
t := array(1, 3.16, @"A", (nil, @"C", 3.14), nil);
return ifExp(t, -1);
// 结果array(0,0,1,0,0)
// 对数组中每一数据进行类型判断
// 输出array(0,0,1,0,0)
```
范例04:对数组中每一数据进行类型判断
```tsl
t := array(1, 3.56, @"A", (nil, 2.14, @"C"), nil);
return ifExp(t, 1);
// 结果array(0,0,1,(0,0,1),0)
// 输出array(0,0,1,(0,0,1),0)
```
### `ifBinary(value, n)`
@@ -518,25 +463,40 @@ return ifExp(t, 1);
#### 示例
范例01:当参数是一个二进制类型时,返回 1
```tsl
// 当参数是一个二进制类型时,返回true。
a := binary('111111'); // 函数参数a为二进制类型
result := ifBinary (a);
result := ifBinary(a);
return result;
// 当参数不是一个二进制类型时,返回false。
// 输出:1
```
范例02:当参数不是一个二进制类型时,返回 0
```tsl
a := 'sdhv'; // 函数参数a不为二进制类型
result := ifBinary (a);
result := ifBinary(a);
return result;
// 对数组第一维度数据进行类型判断
// 输出:0
```
范例03:对数组第一维度数据进行类型判断
```tsl
b := binary("3.14");
t := array(1, b, "A", (nil, b, 3.14), nil);
return ifBinary(t, -1);
// 结果array(0,1,0,0,0)
// 对数组中每一数据进行类型判断
// 输出array(0,1,0,0,0)
```
范例04:对数组中每一数据进行类型判断
```tsl
b := binary("3.14");
t := array(1, b, "A", (nil, 2.14, b), nil);
return ifBinary(t, 1);
// 结果array(0,1,0,(0,0,1),0)
// 输出array(0,1,0,(0,0,1),0)
```
### `ifFmarray(value)`
@@ -574,16 +534,23 @@ return ifBinary(t, 1);
#### 示例
范例01:当参数是一个图形类型时,返回 1
```tsl
// 当参数是一个图形类型时,返回true。
g_data := nDay2('MA5' , ma( close() , 5 ) );
g1 := graph( gtLine() , "MA5" , gdata , gfColor() , clBlue() );
result := ifGraph (g1);
g_data := nDay2('MA5', ma(close(), 5));
g1 := graph(gtLine(), "MA5", g_data, gfColor(), clBlue());
result := ifGraph(g1);
return result;
// 当参数不是一个图形类型时,返回false。
// 输出:1(该示例依赖行情与图表运行环境,命令行解释器下无法构造图形对象)
```
范例02:当参数不是一个图形类型时,返回 0
```tsl
a := 'sdhv'+'dbf'; // 函数参数a不为图形类型
result := ifGraph (a);
result := ifGraph(a);
return result;
// 输出:0
```
### `ifGraphgroup(value, n)`
@@ -599,21 +566,27 @@ return result;
#### 示例
范例01:当参数是一个图形组合类型时,返回 1
```tsl
// 当参数是一个图形组合类型时,返回true。
vol_data := nDay2(gfVol() , vol() , gfColor() , ifThen ( close() > open() , clRed() , clGreen() ) );
mavol := nDay2('MA5', ma ( vol() , 5 ) );
vol_data := nDay2(gfVol(), vol(), gfColor(), ifThen(close() > open(), clRed(), clGreen()));
mavol := nDay2('MA5', ma(vol(), 5));
vol_graph := graph(gtBar(), 'VOLGraph', vol_data);
mavol_graph := graph(gtLine(), 'MA5Graph', mavol, gfColor(), clBlue());
g1 := graphGroup(vol_graph, mavol_graph, gfMinValue(), 0);
// 调用函GraphGroup创建一个图形组合类型变量g1
result := ifGraphGroup (g1);
g1 := graphGroup(vol_graph, mavol_graph, gfMinValue(), 0); // 用GraphGroup创建图形组合类型变量g1
result := ifGraphGroup(g1);
return result;
g_data := nDay2('MA5' , ma( close() , 5 ) );
g1 := graph( gtLine() , "MA5" , gdata , gfColor() , clBlue() );
result := ifGraphGroup (g1);
// 输出:1(该示例依赖行情与图表运行环境,命令行解释器下无法构造图形组合对象)
```
范例02:当参数是图形(非图形组合)类型时,返回 0
```tsl
g_data := nDay2('MA5', ma(close(), 5));
g1 := graph(gtLine(), "MA5", g_data, gfColor(), clBlue());
result := ifGraphGroup(g1);
return result;
// 返回0
// 输出:0(该示例依赖行情与图表运行环境,命令行解释器下无法构造图形对象)
```
### `ifMatrix(value, n)`
@@ -629,15 +602,22 @@ return result;
#### 示例
范例01:当参数是一个Matrix类型时,返回 1
```tsl
// 当参数是一个Matrix类型时,返回true。
a := createMatrix(3, 4); // 使用CreateMatrix创建一个Matrix类型变量
result := ifMatrix (a);
result := ifMatrix(a);
return result;
// 当参数不是一个Matrix类型时,返回false。
// 输出:1
```
范例02:当参数不是一个Matrix类型时,返回 0
```tsl
a := 'sdhv'; // 函数参数a不为Matrix类型
result := ifMatrix (a);
result := ifMatrix(a);
return result;
// 输出:0
```
### `ifObj(value, n)`
@@ -653,8 +633,9 @@ return result;
#### 示例
范例01:当参数是一个对象类型时,返回 1
```tsl
// 当参数是一个对象类型时,返回true。
type function14=class() // 声明类
function SetName(new_name);
begin
@@ -662,12 +643,18 @@ name := new_name;
end;
end;
obj := CreateObject('Function14'); // 使用CreateObject函数创建上面类Function14的对象
result := ifObj (obj);
result := ifObj(obj);
return result;
// 当参数不是一个对象类型时,返回false。
// 输出:1(该示例依赖对象运行环境,命令行解释器下无法构造类对象)
```
范例02:当参数不是一个对象类型时,返回 0
```tsl
a := 'sdhv'; // 函数参数a不为对象类型
result := ifObj (a);
result := ifObj(a);
return result;
// 输出:0
```
### `getOleObject(class_name, method, obj)`
@@ -129,7 +129,7 @@ return pyCall('numpy.random', 'randint', high: 9, low: 6);
// 本地执行以下脚本
pyRun("a=math.pi"); // 此处会报错因为没有 import math
return pyError();
// 返回 name 'math' is not defined
// 输出 name 'math' is not defined
```
## `rEval(eval_string, code)`
File diff suppressed because it is too large Load Diff
@@ -1 +0,0 @@
# Builtin - 金融 / 债券
@@ -1 +0,0 @@
# Builtin - 金融 / 财务与基本面
@@ -1 +0,0 @@
# Builtin - 金融 / 基金
@@ -1 +0,0 @@
# Builtin - 金融 / 期货
@@ -1 +0,0 @@
# Builtin - 金融 / 期权与权证
@@ -1 +0,0 @@
# Builtin - 金融 / 板块与指数
@@ -1 +0,0 @@
# Builtin - 金融 / 股票
@@ -255,70 +255,6 @@
返回:byte
## `CLSH_SexField()`
管理层-性别字段。根据不同的数据库提供商返回对应的值
返回:string
## `CLSH_ShareAmountField()`
管理层持股-持股数字段。根据不同的数据库提供商返回对应的值
返回:string
## `CLSH_ChangeDateField()`
管理层-变动日字段。根据不同的数据库提供商返回对应的值
返回:string
## `CLSH_AgeField()`
管理层-年龄字段。根据不同的数据库提供商返回对应的值
返回:string
## `CLSH_PositionField()`
管理层-任职类别字段。根据不同的数据库提供商返回对应的值
返回:string
## `CLSH_DegreeField()`
管理层-学历字段。根据不同的数据库提供商返回对应的值
返回:string
## `CLSH_NameField()`
管理层-姓名字段。根据不同的数据库提供商返回对应的值
返回:string
## `Close8_AfterDay(number_of_days, days_type)`
上市后\_T0+N天收盘(已复权),T0日为股票上市的第一个交易日,与系统证券pn_stock()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()有关。调用时注意系统参数的设置
| 参数 | 类型 | 说明 |
| ---------------- | ---- | ----------------------- |
| `number_of_days` | any | 整数类型,推移天数,N天 |
| `days_type` | any | 天数类型 |
返回:float
## `Close8_AfterMonth(number_of_days, days_type)`
上市后\_T0+N月收盘(已复权),T0日为股票上市的第一个交易日,与系统证券pn_stock()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()有关。调用时注意系统参数的设置
| 参数 | 类型 | 说明 |
| ---------------- | ---- | ----------------------- |
| `number_of_days` | any | 整数类型,推移天数,N月 |
| `days_type` | any | 天数类型 |
返回:float
## `class(ts_optimizer)`
TSPortfolioOptimizer组合优化框架类,主要封装了常见的组合优化目标和组合约束条件。 优化目标:跟踪误差最小、超额收益最大、信息比率最大、组合风险最小、组合你和指数残差平方和最小、组合收益最大等; 约束条件:包括线性约束和非线性约束。线性约束包括个股权重、行业权重等约束;非线性约束包括超额收益、跟踪误差、信息比率等约束; 用户也可以自己重写自己的优化目标和约束条件。 详细说明及范例见组合优化专题,如下链接。
@@ -328,38 +264,3 @@ TSPortfolioOptimizer组合优化框架类,主要封装了常见的组合优化
| `ts_optimizer` | any | |
返回:any
## `Cluster_Kmeans(sample, n, options)`
sample是一个样本数据观测矩阵,每一行是一个样本数据,本函数依据各种不同的距离对样本进行快速聚类
| 参数 | 类型 | 说明 |
| --------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `sample` | array | 样本数据观测矩阵,每一行是一个样本数据 |
| `n` | any | 分类数,整数类型 |
| `options` | array | 功能选项;options\['maxiter'\]:最大迭代次数,默认次数20options\['tol'\]:迭代精度,样本中心变化,默认迭代精度1.0e-15options\['distance'\]:距离方式,参数的输入格式参考\[Distance\]name的输入,默认为欧氏距离;options\['out'\]:输出格式,0为输出为各个样本对应的类,1为输出每行为一个类默认为1 |
返回:array
## `Cluster_System(a, dmethods, methods, options)`
sample是一个样本数据观测矩阵,每一行是一个样本数据,本函数依据各种不同的距离对样本进行谱系聚类
| 参数 | 类型 | 说明 |
| ---------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `a` | array | 样本数据观测矩阵,每一行是一个样本数据 |
| `dmethods` | any | 整数或字符串类型,距离方式,参数的输入格式参考\[Distance\]name的输入,缺省欧式距离 |
| `methods` | any | 1:组间以中心距离,默认组间中心距离;2:以组间最短距离;3:以组间最大距离 |
| `options` | array | 默认为输出谱系树;Options\['best':1\]:输出最优分类;Options\['tree':1\]:输出谱系树,默认输出谱系关系;Options\['out':0\]:最佳分类排列方式。1每一行为一个类(默认)0各个样本对应的类 |
返回:array
## `Cluster_ward(sample)`
对类之间距离采用ward法(离差平方和)进行谱系聚类
| 参数 | 类型 | 说明 |
| -------- | ----- | ---------------------------- |
| `sample` | array | 二维数字数组,每行为一个样本 |
返回:any
@@ -415,73 +415,3 @@ return graphGroup(g1, g2, g3);
// function:__main__:line 8:instruction:usercall: 执行函数 graph 出错。
// function:__main__:line 8:instruction:usercall: function execute error
```
## `gfBias_Eval(l1)`
乘离率绘图教学函数。返回指定股票在截止日N(默认180)个序列的L1乘离率图形,与系统参数(股票,周期,时间,复权相关)
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `l1` | any | 整数 |
返回:any
## `mergeGraph(g1, g2, g3, gn)`
将运行结果为图像的多个参数图像叠加,返回叠加后的图形组合。
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------------------------- |
| `g1` | graph | 图形1,一般是由graph函数返回的图形 |
| `g2` | graph | 图形2,一般是由graph函数返回的图形 |
| `g3` | graph | 图形3,一般是由graph函数返回的图形 |
| `gn` | graph | 图形n,一般是由graph函数返回的图形 |
返回:graph
### 示例
```tsl
setSysParam(pn_stock(), 'SZ000063');
setSysParam(pn_date(), 20190301T);
setSysParam(pn_nday(), 100);
t1 := nDay2(gfOpen(), open() ,
gfClose(), close(),
gfHigh(), high(),
gfLow(), low(),
gfTime(), dateTimeToStr(sp_time()),
// KLine颜色
gfColor(), ifThen3(close(), open(),
clRed() , // 涨颜色
clYellow() , // 平颜色
clLime() // 跌颜色
),
gfFill(), ifThen3(close(), open(), flClear(), flSolid(), flSolid())
);
t2 := nDay2('MA5', ma(close(), 5)); // 5日均线
t3 := nDay2('MA10', ma(close(), 10)); // 10日均线
t4 := nDay2('MA20', ma(close(), 20)); // 20日均线
g1 := graph(gtKLine(), 'KLine', t1);
g2 := graph(gtLine(), 'MA5', t2);
g3 := graph(gtLine(), 'MA10', t3);
g4 := graph(gtLine(), 'MA20', t4);
return mergeGraph(g1, g2, g3, g4);
// 返回:
```
## `getColorByIndex(index)`
依据Index值,获得颜色数组内的指定颜色整数代号。
| 参数 | 类型 | 说明 |
| ------- | ------- | ---------------- |
| `index` | integer | 整数,颜色索引号 |
返回:integer
### 示例
```tsl
return getColorByIndex(1);
// 返回:16711680
```
@@ -10,7 +10,7 @@
```tsl
return rdo2 uiInteger();
// 结果0
// 输出0
```
## `uiBoolean()`
@@ -23,7 +23,7 @@ return rdo2 uiInteger();
```tsl
return rdo2 uiBoolean();
// 结果1
// 输出1
```
## `uiString()`
@@ -36,7 +36,7 @@ return rdo2 uiBoolean();
```tsl
return rdo2 uiString();
// 结果2
// 输出2
```
## `uiDate()`
@@ -49,7 +49,7 @@ return rdo2 uiString();
```tsl
return rdo2 uiDate();
// 结果3
// 输出3
```
## `uiDouble()`
@@ -62,7 +62,7 @@ return rdo2 uiDate();
```tsl
return rdo2 uiDouble();
// 结果4
// 输出4
```
## `uiMarketList()`
@@ -75,7 +75,7 @@ return rdo2 uiDouble();
```tsl
return rdo2 uiMarketList();
// 结果5
// 输出5
```
## `uiIndexList()`
@@ -88,7 +88,7 @@ return rdo2 uiMarketList();
```tsl
return rdo2 uiIndexList();
// 结果6
// 输出6
```
## `uiStockList()`
@@ -101,7 +101,7 @@ return rdo2 uiIndexList();
```tsl
return rdo2 uiStockList();
// 结果7
// 输出7
```
## `uiSelfBkList()`
@@ -114,7 +114,7 @@ return rdo2 uiStockList();
```tsl
return rdo2 uiSelfBkList();
// 结果8
// 输出8
```
## `uiSysBkList()`
@@ -127,7 +127,7 @@ return rdo2 uiSelfBkList();
```tsl
return rdo2 uiSysBkList();
// 结果9
// 输出9
```
## `uiRightStyle()`
@@ -140,7 +140,7 @@ return rdo2 uiSysBkList();
```tsl
return rdo2 uiRightStyle();
// 结果11
// 输出11
```
## `uiCycle()`
@@ -153,7 +153,7 @@ return rdo2 uiRightStyle();
```tsl
return rdo2 uiCycle();
// 结果12
// 输出12
```
## `uiReportDate()`
@@ -166,7 +166,7 @@ return rdo2 uiCycle();
```tsl
return rdo2 uiReportDate();
// 结果13
// 输出13
```
## `uiBasicIdList()`
@@ -179,7 +179,7 @@ return rdo2 uiReportDate();
```tsl
return rdo2 uiBasicIdList();
// 结果14
// 输出14
```
## `uiUserDefine()`
@@ -192,7 +192,7 @@ return rdo2 uiBasicIdList();
```tsl
return rdo2 uiUserDefine();
// 结果17
// 输出17
```
## `uiOneDimArray()`
@@ -205,7 +205,7 @@ return rdo2 uiUserDefine();
```tsl
return rdo2 uiOneDimArray();
// 结果18
// 输出18
```
## `uiTwoDimDoubleArray()`
@@ -218,7 +218,7 @@ return rdo2 uiOneDimArray();
```tsl
return rdo2 uiTwoDimDoubleArray();
// 结果19
// 输出19
```
## `uiOneDimStringArray()`
@@ -231,7 +231,7 @@ return rdo2 uiTwoDimDoubleArray();
```tsl
return rdo2 uiOneDimStringArray();
// 结果20
// 输出20
```
## `uiTwoDimStringArray()`
@@ -244,7 +244,7 @@ return rdo2 uiOneDimStringArray();
```tsl
return rdo2 uiTwoDimStringArray();
// 结果21
// 输出21
```
## `uiOneDimDateArray()`
@@ -257,7 +257,7 @@ return rdo2 uiTwoDimStringArray();
```tsl
return rdo2 uiOneDimDateArray();
// 结果22
// 输出22
```
## `uiTwoDimDateArray()`
@@ -270,7 +270,7 @@ return rdo2 uiOneDimDateArray();
```tsl
return rdo2 uiTwoDimDateArray();
// 结果23
// 输出23
```
## `uiTable()`
@@ -283,7 +283,7 @@ return rdo2 uiTwoDimDateArray();
```tsl
return rdo2 uiTable();
// 结果24
// 输出24
```
## `uiUserData()`
@@ -296,7 +296,7 @@ return rdo2 uiTable();
```tsl
return rdo2 uiUserData();
// 结果25
// 输出25
```
## `uiRightDay()`
@@ -309,7 +309,7 @@ return rdo2 uiUserData();
```tsl
return rdo2 uiRightDay();
// 结果27
// 输出27
```
## `uiBasicId()`
@@ -322,7 +322,7 @@ return rdo2 uiRightDay();
```tsl
return rdo2 uiBasicId();
// 结果29
// 输出29
```
## `uiYear()`
@@ -335,7 +335,7 @@ return rdo2 uiBasicId();
```tsl
return rdo2 uiYear();
// 结果31
// 输出31
```
## `uiMonth()`
@@ -348,7 +348,7 @@ return rdo2 uiYear();
```tsl
return rdo2 uiMonth();
// 结果32
// 输出32
```
## `uiDay()`
@@ -361,7 +361,7 @@ return rdo2 uiMonth();
```tsl
return rdo2 uiDay();
// 结果33
// 输出33
```
## `promptForFileName(file_name, filter, default_ext, title, initial_dir, save_dialog)`
@@ -416,7 +416,7 @@ define[0]['Value'] := 10;
define[1]['Name'] := 'NeedFunds';
define[1]['Comment'] := '是否需要基金';
define[1]['Type'] := rdo2 uiBoolean();
define[1]['Value'] := true;
define[1]['Value'] := 'true';
define[2]['Name'] := 'Name';
define[2]['Comment'] := '输入名称';
define[2]['Type'] := rdo2 uiString();
@@ -2,42 +2,6 @@
这些条目来自旧 TSL language basic 文档中尚未归入现有 codegen 模块的函数/方法。
## `GradVector(fun, x)`
梯度,返回一维数组,为x点在各个方向上的导数
旧定义:`GradVector(fun;x):Array`
来源:TSL语言基础 > 数学与统计教程 > 数值计算函数 > 数值微分和积分
Source ID30549
| 参数 | 类型 | 说明 |
| ----- | ---- | ---------------- |
| `fun` | | 字符串,函数名 |
| `x` | | 一维数组,指定点 |
返回:Array,一维数组, x点在各个方向上的导数
## `differential(fun, x, toler, m)`
计算微分
旧定义:`differential(fun;x;toler;m):Real`
来源:TSL语言基础 > 数学与统计教程 > 数值计算函数 > 数值微分和积分
Source ID30548
| 参数 | 类型 | 说明 |
| ------- | ---- | ---------------------------------------------------------------------- |
| `fun` | | 目标函数(字符串类型) |
| `x` | | 数据点(实数类型) |
| `toler` | | 精度(实数类型)默认1.490116119384766e-008 |
| `m` | | 方法(字符串extrapolation,外推法,limitation极限法)默认extrapolation |
返回:Real
## `DeleteInstance(obj)`
删除由MakeInstance生成的函数指针。
@@ -94,25 +58,6 @@ Source ID31527
返回:Array,缓存的信息,各字段对应的信息如下: 表格:下标 / 说明;name / 名称;memsize / 全局缓存所占用的字节;refs / 引用计数;tmexpired / 是否数据时间已经过期;createtm / 创建的时间;endtm / 设置的过期时间;expired / 是否数据已经过期(被重置);expiredtm / 数据被重置的时间
## `CombinatorialOptimizer(pf_info_data, constraints, beg_t, end_t)`
范例(t):
旧定义:`CombinatorialOptimizer(PFInfoData;Constraints: Array;BegT;EndT:Date);`
来源:TSL语言基础 > 数学与统计教程 > 优化方法 > 组合优化 > 组合优化接口
Source ID30650
| 参数 | 类型 | 说明 |
| -------------- | ----- | -------------------------- |
| `pf_info_data` | Array | 组合基本信息,配置比例 |
| `constraints` | Array | 优化模型类型及约束条件信息 |
| `beg_t` | Date | 数据开始时间 |
| `end_t` | Date | 数据截止时间 |
返回:any,优化目标; 组合权重; 最优权重下的约束条件值。 表9-5 输入参数PFInfoData字段 表格:字段 / 含义 / 类型 / 单位 / 缺省值 / 备注;IndexId / 指数代码 / Varchar / - / SH000300 / 优化模型0、1、3StockId / 股票代码 / Varchar / - / - / 优化模型0、1、2、3StockName / 股票名称 / Varchar / - / - / -Weight / 初始权重 / Numeric / (%) / 等比例 / -Industry / 行业名称 / Varchar / - / 申万一级行业 / - 注意:上表备注中的0、1、2、3表示在对应的优化目标下,该字段不为空,优化模型详细请参考优化模型函数说明: 表9-6 约束信息Constraints 表格:字段 / 类型 / 单位 / 缺省值 / 备注;优化模型 / Int / % / 0(跟踪误差最小) / 详细参考:表9-7;收益数据类型 / Int / - / 0 / 0涨幅,1对数收益率;组合收益计算 / Int / - / 0 / 0:Rebalance 1:非Rebalance;权重和 / Real / % / 100 / 0,1,2,3;分层优化 / Bool / - / False / 使用分层优化方法 (仅对模型0,1有效);是否用行业指数 / Bool / - / True / False:使用基准提供的个股计算复合指数 (“分层优化”为真时有效);基准数据 / Array / - / 分层优化不使用行业指数时非空 / 格式参考:表9-5 (“分层优化”为真时有效);是否返回优化参数 / Bool / - / False / False:不返回优化信息 (“分层优化”为真时有效);行业约束 / Array / % / 0<=W行业<=100 / 详细参考:表9-8;股票约束 / Array / % / 0<=W股票<=100 / 详细参考:表9-9;组合期望收益 / Real / (%) / 不能缺省 / 仅对优化模型2有意义;收益率协方差矩阵 / Array / (%) / 取数据计算 / 仅对优化模型2有意义;期望收益率序列 / Array / (%) / 取数据计算 / 仅对优化模型2有意义;组合跟踪误差约束 / Real / (%) / 不能缺省 / 仅对优化模型3有意义 表9-7 优化模型 表格:参数 / 含义 / 备注;0 / 跟踪误差最小 / 指数跟踪模型优化;1 / 信息比率最大 / 指数跟踪模型优化;2 / 风险最小 / Markowitz均值―方差模型;3 / 收益最大 / Roll收益模型 表9-8 行业约束 表格:字段 / 类型 / 含义 / 是否非空 / 备注;Industry / Varchar / 行业名称 / 1 / “ALL”全部的行业范围为Lb到UbLb / Array / 下界 / 1 / -Ub / Array / 上界 / 1 / - 注:表示某个行业的配比在Lb与Ub之间,如果Lb=Ub,则表示该行业的配比等于Lb。
## `RDo()`
调用本地函数,不等待返回结果而继续执行。 如果本地的函数需要系统参数,则用With带系统参数,例如With Array("abcd":123,"bcd":234); 与RDo2相比,RDo只提交任务而不等待函数的执行的返回。
@@ -4656,25 +4656,6 @@ Source ID31531
## TSL语言基础 > 数学与统计教程 > 数值计算函数 > 数值微分和积分
### `Diff(y, n)`
序列差分
旧类型:function
旧定义:`diff(Y:Array;n:Int):Array`
来源:TSL语言基础 > 数学与统计教程 > 数值计算函数 > 数值微分和积分
Source ID30547
| 参数 | 类型 | 说明 |
| ---- | ----- | ----------------------- |
| `y` | Array | 需要做差分的数组数据 |
| `n` | Int | 差分的阶数,0阶不做处理 |
返回:Array,数组,序列
## TSL语言基础 > 矩阵计算 > 矩阵查找和遍历的保留字和算符
### `MFind(matrix, exp, ret_values, replace_value)`
@@ -4925,60 +4906,4 @@ Source ID32859
## depth=3
### `TSBackTesting()`
旧参考文档待分类条目:TSBackTesting。
旧类型:function
旧定义:未在审计源中提取到。
来源:depth=3
Source ID27801
Source URL<http://www.tinysoft.com/tsdn/helpdoc/display.tsl?id=27801>
### `TSOptimizer()`
旧参考文档待分类条目:TSOptimizer。
旧类型:function
旧定义:未在审计源中提取到。
来源:depth=3
Source ID21162
Source URL<http://www.tinysoft.com/tsdn/helpdoc/display.tsl?id=21162>
## depth=4
### `TableType()`
旧参考文档待分类条目:TableType。
旧类型:function
旧定义:未在审计源中提取到。
来源:depth=4
Source ID20591
Source URL<http://www.tinysoft.com/tsdn/helpdoc/display.tsl?id=20591>
### `TSPortfolioOptimizer()`
旧参考文档待分类条目:TSPortfolioOptimizer。
旧类型:function
旧定义:未在审计源中提取到。
来源:depth=4
Source ID27924
Source URL<http://www.tinysoft.com/tsdn/helpdoc/display.tsl?id=27924>
@@ -1 +0,0 @@
# Builtin - 行情 / 行情数据
@@ -1 +0,0 @@
# Builtin - 行情 / 技术分析
@@ -1 +0,0 @@
# Builtin - 行情 / 时间序列
@@ -38,39 +38,6 @@
## 数值微积分
### `MTM_f(n, m, _type)`
动力指标
| 参数 | 类型 | 说明 |
| ------- | ---- | -------- |
| `n` | any | 天数 |
| `m` | any | 天数 |
| `_type` | any | 结果类型 |
返回:any
### `MTMMa_v(n, m)`
动力指标MTM的移动平均MTMMa,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
| ---- | ---- | ---------------- |
| `n` | any | 整数,交易日天数 |
| `m` | any | 整数,交易日天数 |
返回:float
### `MTM_v(n)`
动力指标MTM,计算当日收盘价C与N日前的收盘价Cn之差M,差值越来越大则意味着市势正加速上升,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
| 参数 | 类型 | 说明 |
| ---- | ---- | ---------------- |
| `n` | any | 整数,交易日天数 |
返回:float
### `frameMean_JS(data, b_type, equal_var, alpha)`
均值JS压缩估计
@@ -140,167 +107,6 @@
返回:array
### `ar_GetValue2()`
数组类型教学函数。返回当前股票历史资产负债表序列的第四项,与系统参数(股票)相关。
返回:array
### `ar_SubArray(stocks, rdate)`
字符串数组类型教学函数。返回字符串数组Stocks中每一只股票在指定报告期Rdate的十大股东情况。
| 参数 | 类型 | 说明 |
| -------- | -------- | -------------- |
| `stocks` | array | 证券,股票代码 |
| `rdate` | datetime | 报告期 |
返回:array
### `ar_Define1(_type)`
数组类型教学函数。跟据Type的值来返回相应的随机数组。
| 参数 | 类型 | 说明 |
| ------- | ---- | ---------- |
| `_type` | any | 用户自定义 |
返回:array
### `ar_GetValue1(bkname)`
数组类型教学函数。对板块Bkname下证券代码遍历,获得每个证券当前时间的收盘价。
| 参数 | 类型 | 说明 |
| -------- | ------ | ---------- |
| `bkname` | string | 市场与板块 |
返回:array
### `ar_Define3()`
数组类型教学函数。创建一个10×10的二维随机数组,同时对列下标命名。
返回:array
### `Demo_mt_va_Cholesky()`
mt_va_Cholesky()函数教学函数。对指定对称正定矩阵的行列式值平方根,其中矩阵为array( (5.0,7.0,6.0,5.0),(7.0,12.0,8.0,7.0), (6.0,8.0,10.0,9.0),(5.0,7.0,9.0,10.0));。
返回:float
### `Demo_mt_iv_Gauss_Jordan()`
mt_iv_Gauss_Jordan()函数教学函数。求一般实矩阵的逆矩阵,其中求逆的矩阵A=array((0.2368,0.2471,0.2568,1.2671),(0.1968,0.2071,1.2168,0.2271),(0.1581,1.1675,0.1768,0.1871),(1.1161,0.1254,0.1397,0.149))。
返回:any
### `Demo_mt_Subtraction()`
mt_Subtraction()函数教学函数。矩阵减法,其中矩阵A=array((3,-3),(5,-5))B=array((-2,4),(1,8)),返回A-B。
返回:any
### `Demo_mt_Addition()`
mt_Addition ()函数教学函数。矩阵加法,其中矩阵A=array((3,-3),(5,-5))B=array((-2,4),(1,8)),返回A+B。
返回:any
### `Demo_mt_Transposition()`
mt_Transposition()函数教学函数。矩阵转置,返回转置后的矩阵,其中转置的矩阵A=array((3,-3,11),()5,-5,8)。
返回:any
### `Framedrop_duplicates(data, subset, keep, rowname)`
数据表-去重
| 参数 | 类型 | 说明 |
| --------- | ------ | --------------------------------------------------- |
| `data` | array | Table,二维数据表,源数据 |
| `subset` | string | String,去重字段 |
| `keep` | string | String,去重保留方法,""f"":保留首个,""l"":保留最后 |
| `rowname` | string | String,保留原索引重置字段名 |
返回:array
### `Framedrop_na(data, how, subset)`
数据表-去掉含Nan的行
| 参数 | 类型 | 说明 |
| -------- | ------ | ------------------------------------------------------ |
| `data` | array | Table,二维数据表,源数据 |
| `how` | string | String,去na行方法,默认/1/""any"":任意,2/""all"":所有 |
| `subset` | string | String,去重字段 |
返回:array
### `framePivot_table(t, index, columns, vals, aggfunc, aggfuncnames)`
分组、透视、汇总,类似可见Pivot_table
| 参数 | 类型 | 说明 |
| -------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `t` | any | 数据表类型,数据表 |
| `index` | string | 字符串,行分类字段,字段值含有nill等不可设为索引 |
| `columns` | array | 一维字符串数组,列分类字段,字段值含有nill等不可设为索引 |
| `vals` | array | 一维字符串数组,值字段,未指定时,代表对所有除index、columns 指定字段之外的所有字段计算 |
| `aggfunc` | string | 字符串,值汇总函数,支持如下:;a、所有 TS_SQL 聚合函数:e.g:"avg"(avgof),"sum"(sumof)b、内置函数:"\_details": 分组详情;"\_first": 第一个;"\_last": 最后一个;c、自定义函数中使用关键字thisgroup 得到当前分组数据。 |
| `aggfuncnames` | array | 一维字符串数组,自定义汇总函数名称对照表 |
返回:array
### `Framelag_zf(t, period, fillzero)`
数据表-推移涨幅(%) 涨幅(%)算法: period>0: 前n期涨幅 r\[i\] := (t(i)/t(i-period)-1)\*100; period<0: 到未来n期涨幅 r\[i\] := (t(i-period)/t(i)-1)\*100; 注意period>0时,与framePct_change的结果一致。
| 参数 | 类型 | 说明 |
| ---------- | ----- | --------------------------------------- |
| `t` | array | Array of number,数据表,支持一维和二维 |
| `period` | any | Integer,移动期数,默认1 |
| `fillzero` | bool | Bool,下标越界是,是否返回0.False返回inf |
返回:array
### `Framepct_change(t, period, fillzero)`
数据表-到当期的变动百分比(%) 变动百分比(%)算法 r\[i\] := (t(i)/t(i-period)-1)\*100;
| 参数 | 类型 | 说明 |
| ---------- | ----- | ---------------------------------------- |
| `t` | array | Array of number,数据表,支持一维和二维 |
| `period` | any | Integer,变动期数,默认1 |
| `fillzero` | bool | Bool,下标越界是,是否返回0. False返回inf |
返回:array
### `Frame_addprefix(t, prefix, ifcopy)`
数据表-数组下标批量加前缀 二维数组,对列名加前缀 一维数组,对行下标加前缀
| 参数 | 类型 | 说明 |
| -------- | ------ | -------------------------------------- |
| `t` | any | Table,源数组 |
| `prefix` | string | String,前缀 |
| `ifcopy` | bool | Bool,是否在拷贝后的数组改列名,默认True |
返回:array
### `Frame_addsuffix(t, suffix, ifcopy)`
数据表-数组下标批量加后缀 二维数组,对列名加后缀 一维数组,对行下标加后缀
| 参数 | 类型 | 说明 |
| -------- | ------ | --------------------------------------- |
| `t` | any | Table,源数组 |
| `suffix` | string | String,后缀 |
| `ifcopy` | bool | Bool,是否在拷贝后的数组改列名,默认True |
返回:array
### `frameIndex_filter(rawkeys, filter_cond, filter_type, dz_valuetokey)`
数组筛选器,用于下标数组行名或列名的筛选器
@@ -427,32 +233,6 @@ mt_Transposition()函数教学函数。矩阵转置,返回转置后的矩阵
返回:any
### `chol(h, l, p, options, sneg)`
进行乔列斯基分解,H对称正定,则可以得到三角阵L
| 参数 | 类型 | 说明 |
| --------- | ------- | ------------------------------------------------------------ |
| `h` | array | 需要被分解的对称矩阵,正定矩阵的分解才能成功 |
| `l` | array | 变参返回乔列斯基分解得到的三角阵 |
| `p` | integer | 变参返回H的分解信息,-1表示全部分解成功,否则表示分解到第p步 |
| `options` | array | 三角阵选项,默认'upper'为上三角,'lower' 为下三角 |
| `sneg` | array | 当 H 非正定时计算曲率方向,正定时为空 |
返回:array
#### 示例
```tsl
h := corr(rand(100, 4));
chol(h, l, p); // 乔列斯基分解
if p = -1 then return l; // p=-1表示分解成功
// 输出:
// Execute script error at Line:1
// function:__main__:line 1:instruction:rand: function:corr compile error or not found
// function:__main__:line 1:instruction:rand: function execute error
```
### `mt_decompose_qr(m, q, r, e, qr_type)`
E缺省的时候,对矩阵进行QR分解,M=Q :\*R,不缺省E的时候对矩阵进行QRe分解,M:\*e=Q:\*R.该分解使得R矩阵的对角元按绝对值从大倒小排列
@@ -516,277 +296,3 @@ ldl 分解基础函数,如果a正定L\*D\*`L=A;
| `p` | array | 分解结果的行列信息.a如果为正定矩阵那么p为1到length(a)递增序列.此时,ra的下三角为 L矩阵,对角元为D矩阵.当p为非递增序列,时表示行列置换信息.如果p\[i\]=k>0 and k<> i+1,那么a的i行和k-1行互换,i列与k-1列互换,p\[i\]=k<0 那么d在此处为2\*2的块,在ra的i-1,i行列的4个元,a的第i行和k-1行互换,i列和k-1列互换. |
返回:array
### `reIndex2(data, flag)`
修改数组的行标或列名,主要用于字符串下标修改为数字下标等
| 参数 | 类型 | 说明 |
| ------ | ---------------- | ---- |
| `data` | array,tablearray | |
| `flag` | integer | |
返回:array,tablearray
#### 示例
范例数据表:a := array('C':('A':1,'B':'too'),'D':('A':2,'B':'two'));
```tsl
// 其显示如下:
```
范例一:将表列标改为数字
```tsl
a := array('C': ('A': 1, 'B': 'too'), 'D': ('A': 2, 'B': 'two'));
return reIndex2(a, 0);
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:usercall: function:reIndex2 compile error or not found
// function:__main__:line 2:instruction:usercall: function execute error
```
范例二:将行列标作为首列首行
```tsl
a := array('C': ('A': 1, 'B': 'too'), 'D': ('A': 2, 'B': 'two'));
return reIndex2(a, 5);
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:usercall: function:reIndex2 compile error or not found
// function:__main__:line 2:instruction:usercall: function execute error
```
### `orth(a)`
矩阵范围内的标准正交基向量
| 参数 | 类型 | 说明 |
| ---- | ----- | ------ |
| `a` | array | 数组, |
返回:array
#### 示例
```tsl
// 计算矩阵A的标准正交基
a := array((0, 1), (1, 1), (1, 0));
return orth(a);
// 输出:
// Execute script error at Line:3
// function:__main__:line 3:instruction:usercall: function:orth compile error or not found
// function:__main__:line 3:instruction:usercall: function execute error
```
### `det(a)`
行列式
| 参数 | 类型 | 说明 |
| ---- | ----- | ----------------- |
| `a` | array | 二维数字数组 样本 |
返回:real
#### 示例
```tsl
a := array((1, 2), (3, 4));
return det(a); // -2
```
### `isSymmetry(a, tol)`
判断是否为对称矩阵
| 参数 | 类型 | 说明 |
| ----- | ----- | -------------- |
| `a` | array | array 二维数组 |
| `tol` | real | real 精度 |
返回:integer
#### 示例
```tsl
a := array((2, 1), (1, 3));
return isSymmetry(a, 0.1); // 1
```
### `diag(a)`
对角阵
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------- |
| `a` | array | array 数组 |
返回:array
#### 示例
```tsl
a := array((2, 1), (1, 3));
return diag(a); // array(2,3);
```
### `norm2(a, flag)`
范数
| 参数 | 类型 | 说明 |
| ------ | ------ | ----------------- |
| `a` | array | 二维数字数组 样本 |
| `flag` | string | string 范数类型 |
返回:real
#### 示例
```tsl
a := array((2, 1), (1, 3));
return norm2(a, 'inf'); // 4
```
### `roots(p)`
一元n次方程求根
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `p` | array | array 多项式 |
返回:array
#### 示例
```tsl
// 求根:3x^3+x^2+x^1+0^0=0
return roots(array(0, 1, 1, 3));
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:array: function:roots compile error or not found
// function:__main__:line 2:instruction:array: function execute error
```
### `cond(x)`
求矩阵 X 的条件数,最大奇异值除最小奇异值
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------------------------- |
| `x` | array | array 需要求条件数的矩阵或二维数组 |
返回:real
#### 示例
```tsl
x := array((9, 1), (-1, 0), (0, 2), (1, 1));
return cond(x); // 4.22
```
### `pinv(a, t)`
伪逆
| 参数 | 类型 | 说明 |
| ---- | ----- | --------------------------------------- |
| `a` | array | array 矩阵 |
| `t` | real | real 精度 默认为 2.220446049250313e-016 |
返回:array
#### 示例
```tsl
x := array((9, 1), (-1, 0), (0, 2), (1, 1));
return pinv(x);
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:usercall: function:pinv compile error or not found
// function:__main__:line 2:instruction:usercall: function execute error
```
### `eigen(a, eigen, eigenvectors, isreal)`
特征根与特征向量
| 参数 | 类型 | 说明 |
| -------------- | ------- | --------------------------------- |
| `a` | array | array 特征值分解的数据 |
| `eigen` | array | array 变参返回特征值 |
| `eigenvectors` | array | array 变参返回特征向量 |
| `isreal` | integer | bool 是否只输出实特征值及特征向量 |
返回:integer
#### 示例
```tsl
a := array((1, 2), (3, 4));
eigen(a, eigen);
return eigen;
// array(-0.37,5.37)
```
### `isDefinite(h)`
判断矩阵是否正定、半正定,采用 Cholesky 分解方法
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------- |
| `h` | array | array 样本 |
返回:real
#### 示例
```tsl
x := array((3, 1), (1, 4));
return isDefinite(x); // 1
```
### `transPose(data)`
数组转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ------ | ----- | ----------------------------------------------------- |
| `data` | array | 数据表结构数据,第一列数据必须为字符串并且列数要大于3 |
返回:array
### `transPoseForChart(data)`
表格转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ------ | ----- | ---------- |
| `data` | array | 数据表类型 |
返回:array
### `transPoseForChartSysParam()`
表格转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
返回:array
### `transPoseForChartSysParamEx()`
表格转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
返回:array
### `transDataStandardize(nil_v)`
空(NIL)数据标准化。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ------- | ------- | ------------------------- |
| `nil_v` | integer | Nil类型的数据标准化后的值 |
返回:array
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,29 +1,5 @@
# Builtin - 待复核
## `pn_StockArr()`
当前成分股。
返回:string
## `InfoTest_()`
获得国海基金-常用的财务数据
返回:array
## `PN_ActualDate()`
系统当前日期。
返回:string|datetime
## `Pn_IndexID()`
市场指数代码。
返回:string
## `qkfilterCC_createDateTreeIndex(data_cc, datefield, if_sort)`
持仓类数据 根据日期构建索引;持仓类数据,要求已按日期 排序,从小到大,相同日期放一起
@@ -48,122 +24,6 @@
返回:array
## `TSB_Data1(bk_names, beg_t, end_t, buy_cond, top_n, holding)`
买卖记录
| 参数 | 类型 | 说明 |
| ---------- | -------- | -------------------------------- |
| `bk_names` | string | 字符串,以分号分割,板块名称列表 |
| `beg_t` | datetime | 日期型时间,开始时间 |
| `end_t` | datetime | 日期型时间,截止日期 |
| `buy_cond` | any | 表达式,买入条件 |
| `top_n` | any | 整数,返回个数 |
| `holding` | any | 整数,持有天数 |
返回:array
## `TSB_Data2(bk_names, beg_t, end_t)`
返回板块的指数涨幅,采用总股本加权
| 参数 | 类型 | 说明 |
| ---------- | -------- | -------------------------------- |
| `bk_names` | string | 字符串,以分号分割,板块名称列表 |
| `beg_t` | datetime | 日期型时间,验证开始时间 |
| `end_t` | datetime | 日期型时间,验证截止日期 |
返回:array
## `TE_ExtremeSummary(subtotals, cycle)`
组合/单券极端交易情况统计,功能: 对交易小计数据,按累计收益率进行极端情况统计,包括以下几个方面 最大连盈次数、最大连亏次数, 最大连盈幅度(%)、最大连亏幅度(%), 最大单次盈利(%)、最大单次亏损(%), 最大连盈时间、最大连亏时间 详细说明见下述文档的极端评价: 《深圳天软科技-应用专题-策略评价01:天软交易策略评价框架TSTradingEvaluation》
| 参数 | 类型 | 说明 |
| ----------- | ---- | ---------------------------------------------------------------------------------------------------------------- |
| `subtotals` | any | 数组,交易小计数据;字段必须包含;开仓时间:(datetime);平仓时间:(datetime);持仓时间:(real);累计收益率(%):(real) |
| `cycle` | any | 周期,用于计算持续时间 |
返回:array
## `TE_MatchOCTradeData(talltradedata, flag, returntype, pfinfodata)`
每笔交易的开平仓匹配,功能: 对交易明细按券&交易方向进行开平仓自动匹配处理(以开仓数据为基准) 匹配规则:提供先建先平及先建后平方式 详细说明请见文末FAQ: 《深圳天软科技-应用专题-策略评价01:天软交易策略评价框架TSTradingEvaluation》
| 参数 | 类型 | 说明 |
| --------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `talltradedata` | any | 数组,交易明细数据;字段必须包含标准的回测中交易明细字段;字段包含:截止日,代码,名称,方向,动作,乘数,保证金比例(%),;成交价,成交量,费率(%),成交金额(税前),费用,成交金额,备注 |
| `flag` | any | 整型,平仓方式; 0:先建先平(默认);1:后建先平 |
| `returntype` | any | 整型,返回匹配结果类型;;1:全部匹配结果(包含不完整)(默认);2:仅含完整匹配的结果 |
| `pfinfodata` | any | 数组,回测初始化信息,重新获取交易明细时设置回测属性;1)分红再投资:0:不参与;1:参与再投资(默认);2)自动参与配股:0:不参与;1:参与(默认);3)货币基金自动分红再投资:0:不参与;1:参与(默认) |
返回:array
## `TSTrade_CalCC(end_t, tp_gp, tjy)`
TSTrade_CalCC 相关函数。
| 参数 | 类型 | 说明 |
| ------- | -------- | ---------------------- |
| `end_t` | datetime | 日期型时间,截止日 |
| `tp_gp` | array | 数据表类型,昨持仓 |
| `tjy` | array | 数据表类型,今交易数据 |
返回:array
## `Ts_sampevalutelib(return_value)`
中间函数,测试数据示例
| 参数 | 类型 | 说明 |
| -------------- | ----- | ---------------- |
| `return_value` | array | 返回一个数据示例 |
返回:array
## `CheckInPutData_UP(t)`
自定义权重字段完整性检查
| 参数 | 类型 | 说明 |
| ---- | ----- | ------ |
| `t` | array | 数据表 |
返回:bool
## `ZxCompareReturn_Pgm(beg_year, end_year, _type, info_id_arr)`
返回区间财务指标纵比值,数据类型为数据表
| 参数 | 类型 | 说明 |
| ------------- | ----- | ---------------------- |
| `beg_year` | any | 整数,起止年限 |
| `end_year` | any | 整数,截止年限 |
| `_type` | any | 用户自定义,报告期类型 |
| `info_id_arr` | array | 基本面数据,基本面内容 |
返回:any
## `EBIDAvsMainIncome_12(r_date)`
返回最近12个月的税息折旧及摊销前利润。 (1)最近12个月的税息折旧及摊销前利润=EBITDA/最近12个月的主营收入。 2EBITDA=EBIT+新增折旧。 3)计算报告期RDate的EBIT(三种计算方法,参考EBIT_12)v1; (4)从合并资产负债表中取报告期Rdate和去年同期的累计折旧v2、v3 5EBITDA=v1+v2-v3。
| 参数 | 类型 | 说明 |
| -------- | -------- | --------------------------------------- |
| `r_date` | datetime | 整数,报告期;;Type:整数,EBIT计算方法 |
返回:float
## `pmstand_array(v)`
参数转化为一维数组,参数格式兼容
| 参数 | 类型 | 说明 |
| ---- | ---- | -------------------------------------- |
| `v` | any | 转化参数,字符串或者实数,一维数组亦可 |
返回:array
## `GetSWHYBKbydate_IPO(indexid, endt)`
GetSWHYBKbydate_IPO 相关函数。
@@ -210,276 +70,12 @@ GetSWHYBKbydate_IPO 相关函数。
返回:array
## `QueryTopNByField_II(stock_arr, beg_t, end_t, sort_by, sort_order, return_number)`
指标前N名(区间)。
| 参数 | 类型 | 说明 |
| --------------- | -------- | -------------------------------------- |
| `stock_arr` | array | 数组。股票列表。 |
| `beg_t` | datetime | 日期。开始日期。 |
| `end_t` | datetime | 日期。截止日期。 |
| `sort_by` | any | 整数。排序字段,取值如下: |
| `sort_order` | any | 整数。排序方法,1表示正序,0表示逆序。 |
| `return_number` | any | 整数。返回个数。 |
返回:array
## `S_3(beg_y, end_y, r_date_type)`
返回指定证券列表指定年份区间的现金流指标数据。
| 参数 | 类型 | 说明 |
| ------------- | ---- | ---------------- |
| `beg_y` | any | 整型,起始年份 |
| `end_y` | any | 整型,截止年份 |
| `r_date_type` | any | 整型,报告期类型 |
返回:array
## `pg_1(t)`
数据表指标得分详情。
| 参数 | 类型 | 说明 |
| ---- | ----- | -------------- |
| `t` | array | 数组。数据表。 |
返回:array
## `ZBCompare_Call(stock_arr, beg_year, end_year, r_date_type, info_id_arr, show_style, three_dim_type, unit_type)`
股票列表报告期主要财务数据对比(纵比)。
| 参数 | 类型 | 说明 |
| ---------------- | ----- | --------------------------------- |
| `stock_arr` | array | 数组。股票列表。 |
| `beg_year` | any | 整数。起始年限。 |
| `end_year` | any | 整数。截止年限。 |
| `r_date_type` | any | 整数。报告期类型,取值如下: |
| `info_id_arr` | array | 数组。基本面数组。 |
| `show_style` | any | 整数。显示设置,取值如下: |
| `three_dim_type` | any | 整数。三维表格显示格式,取值如下: |
| `unit_type` | any | 整数。显示单位,取值如下: |
返回:array
## `HxCompare_Call(stock_arr, r_date, info_id_arr, show_style, two_dim_type, unit_type)`
股票列表报告期主要财务数据对比(横向)。
| 参数 | 类型 | 说明 |
| -------------- | -------- | ------------------------- |
| `stock_arr` | array | 数组。股票列表。 |
| `r_date` | datetime | 整数。报告期。 |
| `info_id_arr` | array | 数组。基本面数组。 |
| `show_style` | any | 整数。显示设置,取值如下: |
| `two_dim_type` | any | 整数。显示格式,取值如下: |
| `unit_type` | any | 整数。显示单位,取值如下: |
返回:array
## `hd_Public(b_kname, begt, endt)`
采用公用函数中的行情提取函数教学函数,提取板块Bkname中的证券代码,返回每个证券由开始日Begt到截止日Endt的相关行情数据。与系统参数(周期、复权等相关)。
| 参数 | 类型 | 说明 |
| --------- | ---- | -------------------- |
| `b_kname` | any | 市场和板块,板块名称 |
| `begt` | any | 日期,开始日期 |
| `endt` | any | 日期,截止日期 |
返回:any
## `od_GetBkList()`
GetBKList()函数教学函数。得到板块名称为‘指数’的列表。
返回:array
## `oD_GetBkStocks(bkname)`
GetBK()函数教学函数。得到Bkname板块下的股票列表。
| 参数 | 类型 | 说明 |
| -------- | ------ | ---- |
| `bkname` | string | |
返回:array
## `od_RealData(bkname)`
RD()函数教学函数。得到Bkname板块下的股票的24项实时数据。
| 参数 | 类型 | 说明 |
| -------- | ------ | ---- |
| `bkname` | string | |
返回:array
## `es_Operator()`
TSL语法基本教学函数。函数本身介绍了算术运算、关系运算、逻辑运算、自加(减)。
返回:any
## `es_FuncCall()`
TSL语法基本教学函数。函数本身定义了一个数组a,返回a的字段个数。
返回:array
## `es_return()`
return()函数教学函数。函数本身介绍了返回实数、布尔类型、数组的三种返回。
返回:array
## `for_Downto()`
for循环语句教学函数。对nI自100向0循环,对所有的奇数累积求和。
返回:any
## `Demo_na_Error()`
na_errormsg ()函数教学函数。依据se_Gauss()函数传递的插值错误代码,返回数值分析插值错误信息。
返回:string
## `tsExpertClientConfig()`
客户端行为控制函数相关函数。
返回:any
## `roundTo5(v)`
.5处理
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `v` | real | 实数 |
返回:real
### 示例
```tsl
return roundTo5(0.35);
// 结果:0.5
```
## `divValue(v1, v2)`
除法运算。
| 参数 | 类型 | 说明 |
| ---- | ---- | ------------ |
| `v1` | real | 实数,被除数 |
| `v2` | real | 实数,除数 |
返回:real
### 示例
```tsl
return divValue(8, 2);
// 返回:4
```
## `LeastSquares_CurveFitting(factors, y_values)`
执行最小二乘曲线拟合;当 `y_values` 中存在 `nil``nan` 时,跳过对应位置后计算。
| 参数 | 类型 | 说明 |
| ---------- | ----- | ------------ |
| `factors` | array | 拟合因子矩阵 |
| `y_values` | array | 目标值序列 |
返回:array
## `hexToString(str)`
stm用户数据名称转码(十六进制)。
| 参数 | 类型 | 说明 |
| ----- | ------ | -------------------------- |
| `str` | string | 字符串类型,十六进制字符串 |
返回:string
### 示例
```tsl
// 将用户数据名转化为可读串
str := 'hex_74657374646174613031.stm';
return hexToString(str); // 返回testdata01
```
## `dumies_decode(dumiesdata)`
虚拟变量矩阵解构,根据所给的虚拟变量矩阵返回分类变量结果
| 参数 | 类型 | 说明 |
| ------------ | ----- | -------------------------- |
| `dumiesdata` | array | 二维数字数组,虚拟变量矩阵 |
返回:array
## `get_dummies(a, uniques)`
1、根据指定的分类变量,生成虚拟变量/指示变量(dummy/indicator)虚设变量/名义变量/哑 变量,也有称之为one_hot编码,离散特征值二值化 2、如果a中含Nan值,排到uniques的末尾
| 参数 | 类型 | 说明 |
| --------- | ----- | ----------------------------------------- |
| `a` | array | 一维数组,指定的分类变量 |
| `uniques` | array | 一维数组,中间结果:输出各列对应的分类变量 |
返回:array
## `get_dummies2(a)`
1、根据指定的分类变量,生成虚拟变量/指示变量(dummy/indicator)虚设变量/名义变量/哑 变量,也有称之为one_hot编码,离散特征值二值化 2、a中的元素必须都可以做为数组下标,否则请使用get_dummies
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------------------ |
| `a` | array | 一维数组,指定的分类变量 |
返回:array
## `TwoRDateCompare_M1(t1, t2, r_date, r_date2, key_field, from_col, to_col, show_g_value, show_g_percent)`
返回2个数据同比比较的结果。
| 参数 | 类型 | 说明 |
| ---------------- | -------- | -------------------------- |
| `t1` | array | 数组类型,数据1 |
| `t2` | array | 数组类型,数据2 |
| `r_date` | datetime | 报告期类型,报告期 |
| `r_date2` | any | 报告期类型,同比报告期 |
| `key_field` | string | 字符串类型,关键字 |
| `from_col` | any | 整型,要显示变比的开始列号 |
| `to_col` | any | 整型,要显示变比的截止列号 |
| `show_g_value` | bool | 布尔类型,显示变动 |
| `show_g_percent` | bool | 布尔类型,显示变比(%) |
返回:array
## `Pivot_table(t, index, vals, aggfunc, aggfuncnames)`
分组、透视、汇总 1、vals 未指定时,代表对所有除index、columns 指定字段之外的所有字段计算 2、aggfunc 不同含义及设定方法: a、所有字段,统一函数 aggfunc := "avg" 注:代表对vals中所有字段进行计算 b、所有字段,多个函数 aggfunc := array("avg","max"); c、指定字段,指定函数 aggfunc := array("fielda":"avg","filedb":("avg","max")); 注:指定字段时,必须是vals的子集,否则报错。 3、支持匿名函数、与函数指针,其中: a、匿名函数默认命名为"匿名" b、函数指针通过functioninfo得到函数名称 4、aggfunc中支持 a、所有 TS_SQL 聚合函数:e.g:"avg"(avgof),"sum"(sumof) b、内置函数: "\_details": 分组详情 "\_first": 第一个 "\_last": 最后一个 c、自定义函数中使用关键字thisgroup 得到当前分组数据。 5、index/columns中字段值含有nill等不可设为索引。 6、aggfuncnames:给aggfunc定义名称。
| 参数 | 类型 | 说明 |
| -------------- | ------ | ------------------------------ |
| `t` | array | 数组,数据表 |
| `index` | string | array |
| `vals` | string | array |
| `aggfunc` | string | string 值汇总函数 |
| `aggfuncnames` | array | 数组,自定义汇总函数名称对照表 |
返回:string
## `table(t)`
依据数组类型返回不同的值。
@@ -490,145 +86,6 @@ return hexToString(str); // 返回testdata01
返回:array
## `Standarize_II(sample, leib)`
数据预处理,对二维数字数组进行标准化化处理;行:样本个数;列:因子个数.
| 参数 | 类型 | 说明 |
| -------- | ----- | ----------------- |
| `sample` | array | 二维数字数组 样本 |
| `leib` | any | Int 标准化类型 |
返回:array
## `NW_Adjustment_Simplification(y, alpha, al)`
在单因子有效性的检验中,进行检验的往往是组合收益率序列或者因子收益率序列在 时序上是否显著异于零,这一过程本身并不涉及回归过程,因此无法直接使用上一节中介绍的调整方法。然而,我们知道组合收益或者因子收益在时序上极有可能存在异方差和自相关特性,因此在计算序列标准误时,必须对其进行 Newey-West 调整,从而得到其标准差的一致性估计,进而得到更稳健的 t 值。 关于这个问题Bali et al(2016)指出对于单个因子收益率序列的显著性检验,我们可以将其转换为一个简单的线性回归模型:将 1 作为自变量,将因子收益率作为因变量,进行回归得到残差变量。此时残差项即为因子收益率减去它在时间序列上的均值。把残差项和X=1代入即可得到简化的结果,对Q的估计形式如下:QNW-Simple=1Tt=1Tet2+l=1Lt=l+1Twletet-l 其中,wl=1-l1+L 这里的Q实际上不是矩阵,只是一个数。 将Q代入Cov\[β\*\]中就可以求出收益率方差的估计,之后就可以进行T检验了。σ2=QNW-Simple/T
| 参数 | 类型 | 说明 |
| ------- | ----- | ------------------------------------------------------------------------------------- |
| `y` | array | 一维数字数组, 因变量 |
| `alpha` | float | 实数,显著性水平,应为0到1之间的值,默认0.05 |
| `al` | any | 整数,自相关最大滞后阶数,可缺省,默认用Newey and West (1994)?提出的方法计算,至少为1 |
返回:array
## `Robustfit_M(y, x, alpha, constant, wfun, tune, options)`
基于M估计的稳健回归及其检验
| 参数 | 类型 | 说明 |
| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `y` | array | 一维数字数组,因变量 |
| `x` | array | 二维数字数组,自变量 |
| `alpha` | float | 实数,显著性水平 |
| `constant` | bool | object |
| `wfun` | string | 字符串,权重函数 |
| `tune` | float | 实数,调节常数 |
| `options` | array | 可选项,数组类型,格式为array( 'maxiter':最大迭代次数, 'tol':标准误差, 'ifregtest':是否返回回归检验),默认值为array('maxiter':50, 'tol':1e-6, 'ifregtest':True)。其中'maxiter'、'tol'与迭代优化相关,分别表示最大迭代次数与相邻两次迭代的标准误差;'ifregtest'是布尔类型,控制输出结果是否返回回归检验,若为真,其回归检验指标使用加权最小二乘的回归检验,可参考Regression_WLS。 |
返回:array
## `LnRegression_CallBack(x)`
Ln(x)回归回调函数
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------- |
| `x` | array | 二维数字数组类型 |
返回:array
## `MultipleRegression_CallBack(x)`
多元线性回归的回调函数
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------- |
| `x` | array | 二维数字数组类型 |
返回:array
## `PolynomialRegression_Pgm(x, y, m)`
多项式回归测试
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------------- |
| `x` | array | 一维数字数组类型 |
| `y` | array | 一维数字数组类型 |
| `m` | any | 整数类型,拟合最大阶数 |
返回:array
## `MultipleRegression_Pgm(x, y)`
多元线性回归测试
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------- |
| `x` | array | 二维数字数组类型 |
| `y` | array | 一维数字数组类型 |
返回:array
## `MultipleUnLinearRegression_Pgm(x, y, call_back)`
多元非线性回归测试
| 参数 | 类型 | 说明 |
| ----------- | ------ | ---------------------------- |
| `x` | array | 二维数字数组类型,观察数据点 |
| `y` | array | 一维数字数组类型,观察数据值 |
| `call_back` | string | 字符串类型 |
返回:array
## `MultiUnLineralRegression_CallBack(x)`
多元非线性回归的回调函数
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------- |
| `x` | array | 二维数字数组类型 |
返回:array
## `H_J_CallBack(x, r)`
H_J算法回调
| 参数 | 类型 | 说明 |
| ---- | ----- | ---------------- |
| `x` | array | 一维数字数组类型 |
| `r` | float | 实数类型 |
返回:float
## `RatioValue_Math(v1, v2)`
比率(数学分析)。针对除法计算处理,主要是对除0情况的考虑。
| 参数 | 类型 | 说明 |
| ---- | ----- | ------------ |
| `v1` | float | 实数。期末值 |
| `v2` | float | 实数。期初值 |
返回:float
## `Norm_LinearTransform(mu, sigma, a, b)`
正态分布线性变换,得到变换后的均值、协方差或方差
| 参数 | 类型 | 说明 |
| ------- | ----- | -------------------------------------- |
| `mu` | array | 实数或二维数组(n\*1),原正态分布均值 |
| `sigma` | array | 实数或二维数组(n\*1),原正态分布方差 |
| `a` | array | 实数或二维数组(n\*1),线性变换常数项 |
| `b` | array | 实数或二维数组(n\*1),线性变换系数项 |
返回:array
## `mdo(function_name, in1, in_n)`
单返回值的MATLAB函数调用。
@@ -861,103 +318,6 @@ call、subscription事件类型处理方法。根据参数sub判断是call还是
return testTable('testA'); // 测试用户数据"testA"是否存在。返回值为1,即存在,0即不存在。
```
## `userDataUpLoad(filedir, if_tanscode)`
上传用户数据,输入本地用户数据的路径及名称,通过该函数可上传至服务器。
| 参数 | 类型 | 说明 |
| ------------- | ------- | ------------------------------ |
| `filedir` | string | 字符串类型,用户数据路径及名称 |
| `if_tanscode` | integer | 整型,用户名称是否转码 |
返回:string
### 示例
```tsl
// dir为用户本地用户数据的存贮目录
filedir := 'C:\\Users\\xxxx\\Tinysoft\\Analyse.NET\\D254A848\\xxx\\UserDB\\hex_74657374646174613031.stm';
return userDataUpLoad(filedir); // 返回上传结果提示信息。
```
## `transFileName(dir, if_tanscode)`
获取本地用户数据列表(仅用于自动存储在本地的STM数据)。
| 参数 | 类型 | 说明 |
| ------------- | ------- | ---------------------- |
| `dir` | string | 字符串类型,路径 |
| `if_tanscode` | integer | 整型,用户名称是否转码 |
返回:array
### 示例
```tsl
// 获取本地用户数据列表
dir := 'C:\\Users\\xxxx\\Tinysoft\\Analyse.NET\\D254A848\\xxx\\UserDB';
return transFileName(dir); // 返回用户数据列表
```
## `delPrecode()`
将第一列的8位标准代码转为6位标准代码。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
返回:array,tablearray
## `twoDimFormat2()`
指标为主(二维表)。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
返回:array,tablearray
## `isTwoDim(t)`
是否为二维表。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ---- | ----- | -------------- |
| `t` | array | 任意类型的数据 |
返回:bool
## `transForm(data)`
数组转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
| 参数 | 类型 | 说明 |
| ------ | ----- | -------------- |
| `data` | array | 数据表类型数据 |
返回:integer
## `delPrecodeCallBack(s)`
去除证券代码前面的“SH”、“SZ”、“OF”、“BK”标识
| 参数 | 类型 | 说明 |
| ---- | ------ | ------ |
| `s` | string | 字符串 |
返回:string
### 示例
```tsl
return delPrecodeCallBack('SH600000');
// 结果:’ 600000
```
## `checkDataCanBeExtract(data)`
检查是否存在可展开的数据。
| 参数 | 类型 | 说明 |
| ------ | ----- | -------------- |
| `data` | array | 数据表类型数据 |
返回:integer
## `Gu_SimpleDataTransform(mtype, nodatecol)`
时序数据简单处理变形,譬如:累加、累乘、单期转多期。基于列名(含截止日、日期、date),跳过日期列 注意:该函数主要用于客户端结果处理,不提供给用户程序编辑。
@@ -969,130 +329,12 @@ return delPrecodeCallBack('SH600000');
返回:array
## `getDefaultFuncNameByStock(stock_id)`
默认函数名,对于不同类型的证券代码,返回的默认函数名称不一致;
| 参数 | 类型 | 说明 |
| ---------- | ------ | -------- |
| `stock_id` | string | 证券代码 |
返回:string
## `getTypeOfStock(stock_id)`
证券品种
| 参数 | 类型 | 说明 |
| ---------- | ------ | -------- |
| `stock_id` | string | 证券代码 |
返回:integer
### 示例
```tsl
return getTypeOfStock('OF000001');
// 结果:4
```
## `Gu_ExtractResultData()`
穿透展示数组,用于展示<量化分析>结果专用嵌套数组结构的分析结果,结构为「键名:数组值」的键值对格式,支持一维/二维数组嵌套 注意:该函数主要用于客户端结果处理,不提供给用户程序编辑。
返回:array
## `thisFuncUnderConstruction()`
返回"本模型正在维护中.....请稍候再使用"出错信息
返回:string
## `thisFunOnlyForIndex()`
返回'本模型只适用于指数!'字符串
返回:string
## `Demo_framestyle_constyle_dotweb(endt, cy, n)`
范例-格式化图表-005-条件格式,热门行业(dotWeb用) 在dotweb中的使用方式一致, 要想解析看到效果 需两步操作 (1)Web_Html_Table将带样式的数据表转为html【去掉此步骤,即可在dotweb 中使用】 (2)设置模型结果类型为【网页内容】
| 参数 | 类型 | 说明 |
| ------ | -------- | ------------ |
| `endt` | datetime | Date,截止日 |
| `cy` | any | Cycle,周期 |
| `n` | any | Integer,个数 |
返回:array
## `Demo_framestyle_constyle_net(endt, cy, n)`
范例-格式化图表-004-条件格式,热门行业(平台用) 平台端展示格式化图表用 在dotweb中的使用方式一致, 要想解析看到效果,需两步操作 (1)Web_Html_Table将带样式的数据表转为html【去掉此步骤,即可在dotweb 中使用】 (2)设置模型结果类型为【网页内容】
| 参数 | 类型 | 说明 |
| ------ | -------- | ------------ |
| `endt` | datetime | Date,截止日 |
| `cy` | any | Cycle,周期 |
| `n` | any | Integer,个数 |
返回:string
## `Demo_framestyle_heatmaptb_net(endt)`
范例-格式化图表-003-色阶映射(平台用) 平台端展示格式化图表用 在dotweb中的使用方式一致, 要想解析看到效果、需两步操作 (1)Web_Html_Table将带样式的数据表转为html【去掉此步骤,即可在dotweb 中使用】 (2)设置模型结果类型为【网页内容】
| 参数 | 类型 | 说明 |
| ------ | -------- | ----------- |
| `endt` | datetime | Date,截止日 |
返回:string
## `Demo_framestyle_net(endt)`
范例-格式化图表-002-平台用 与在dotweb中的使用方式一致, 要想解析看到效果,需两步操作 (1)Web_Html_Table将带样式的数据表转为html (2)设置模型结果类型为【网页内容】
| 参数 | 类型 | 说明 |
| ------ | -------- | ----------- |
| `endt` | datetime | Date,截止日 |
返回:string
## `Demo_framestyle_web(endt)`
范例-格式化图表-001-dotWeb用 自带css样式,在dotweb中直接使用此模型的返回即可
| 参数 | 类型 | 说明 |
| ------ | -------- | ----------- |
| `endt` | datetime | Date,截止日 |
返回:array
## `Demo_framestyle_data(endt, n, ifyearnamecol)`
格式化图图表使用的数据 返回上证50 历年 Roe
| 参数 | 类型 | 说明 |
| --------------- | -------- | --------------------- |
| `endt` | datetime | Date,截止日 |
| `n` | any | Integer,年份 |
| `ifyearnamecol` | bool | Bool,是否以年份做列名 |
返回:array
## `kerneldensityestimator(data, kernel, h, eps)`
核密度估计
| 参数 | 类型 | 说明 |
| -------- | --------------- | ----------------------------------------------------------------- |
| `data` | array of number | Array of number,样本数据 |
| `kernel` | integer | Integer,核函数类型,可取0,1,2。 |
| `h` | real | Real,带宽,可以理解为数据点的影响范围,越小则表示数据点附近越陡峭 |
| `eps` | number | Number,精确度 |
返回:any
## `tsplot_PerformanceSummary(rt_data, tmplate, fname_endt, fname_pfname, fname_bmname, otherconfig)`
根据单期净值收益率数据表绘制策略报告
@@ -1,36 +1,5 @@
# Builtin - 资源 / 数据库
## `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
## `sqlCommnit(db_alias)`
提交事务。
@@ -38,7 +38,7 @@ return data;
attr := rdo2 fileMode("", "c:\\test11.txt");
ret := rdo2 fileModeToStr(attr);
return ret;
// 结果:” A”
// 输出:” A”
```
## `zipCompress(zip_alias, zip_filename, alias, filename, path)`
@@ -106,106 +106,6 @@ zipExtract('', 'd:\\a.zip', '', 'd:\\tmp', '123');
rarExtract('', 'd:\\a.rar', '', 'd:\\tmp', '123');
```
## `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
## `fs_InfoId(infoid)`
获得基本面数据教学函数。返回截止到2002年6月30日Infoid相关基本面数据。
| 参数 | 类型 | 说明 |
| -------- | ---- | ------ |
| `infoid` | any | 基本面 |
返回:any
## `ft_Expression2_2(rdate)`
表达式函数教学函数。返回指定股票在报告期rdate的资产负债表,与当前系统参数(股票)相关。
| 参数 | 类型 | 说明 |
| ------- | -------- | ------ |
| `rdate` | datetime | 报告期 |
返回:any
## `ft_Expression2_3(l1)`
表达式函数教学函数。返回指定股票在指定日180个序列的L1乖离率,与系统参数(股票,周期,时间,复权相关)
| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `l1` | any | 整数 |
返回:any
## `ft_Expression1()`
表达式教学函数。返回当前股票收盘价的5个周期的平均值,与当前系统参数(股票,时间,周期)相关。
返回:float
## `loadTableEx(table_name)`
加载用户数据TableName,如若TableName非空,则返回TableName数据,否则返回空数组。
| 参数 | 类型 | 说明 |
| ------------ | ------ | -------------------- |
| `table_name` | string | 字符串,数据文件名称 |
返回:array
### 示例
```tsl
return loadTableEx('repitle');
// 返回: repitle为保存好的用户数据
```
## `listTable()`
返回用户数据的名称列表(一维数组)。
@@ -219,93 +119,6 @@ return listTable();
// 输出:如下:
```
## `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
## `loadTable(name, table_type)`
提取用户数据,装入用户表,从name指定的位置将数据导出。TableType参数可省略,默认为0;0或省略时表示装入当前用户表,1表示装入系统表,即可导入系统账号system的用户数据。
@@ -337,7 +150,7 @@ return loadTable('testA');
attr := rdo2 fileAttr("", "c:\\test11.txt");
ret := rdo2 fileAttrToStr(attr);
return ret;
// 结果:”A”
// 输出:”A”
```
## `strToFileAttr(str)`
@@ -355,7 +168,7 @@ return ret;
```tsl
str1 := "A";
return rdo2 strToFileAttr(str1);
// 结果32
// 输出32
```
## `strToFileMode(str)`
@@ -373,7 +186,7 @@ return rdo2 strToFileAttr(str1);
```tsl
str1 := "A";
return rdo2 strToFileMode(str1);
// 结果32
// 输出32
```
## `ftCsv()`
@@ -493,7 +306,7 @@ return data1;
```tsl
// 客户端中本地执行
return rdo2 sysExecName();
// 返回C: \Program Files\Tinysoft\AnalyseNG.NET\TSExpert.exe
// 输出C: \Program Files\Tinysoft\AnalyseNG.NET\TSExpert.exe
// 本地解析器中运行
echo sysExecName();
// 打印信息:C: \Program Files\Tinysoft\AnalyseNG.NET\TSL.exe
@@ -510,7 +323,7 @@ echo sysExecName();
```tsl
// 客户端中本地执行
return rdo2 pluginPath();
// 返回C: \Program Files\Tinysoft\AnalyseNG.NET\Plugin\
// 输出C: \Program Files\Tinysoft\AnalyseNG.NET\Plugin\
```
## `getlogicdrive()`
@@ -545,7 +358,7 @@ return rdo2 getlogicdrive();
```tsl
path := "D:\\test\\test.txt"; // 已经存在的文件
return rdo2 createlink("D:\\test\\txt", path, 1); // 创建一个硬链接
// 结果:创建链接成功,返回1
// 输出:创建链接成功,返回1
```
范例02:创建软链接
@@ -553,7 +366,7 @@ return rdo2 createlink("D:\\test\\txt", path, 1); // 创建一个硬链接
```tsl
path := "D:\\test\\test.txt"; // 已存在的文件
return rdo2 createlink("D:\\test\\txt", path, 0); // 创建一个软链接
// 结果:链接成功,返回1
// 输出:链接成功,返回1
```
## `realpath(name)`
@@ -619,7 +432,7 @@ data := rand(10, 5);
ret := rdo2 exportFile(ftXls(), "", "c:\\test.xls", data);
if ret=1 then return "导出成功";
else return ret; // 出错
// 结果"导出成功" (表示数据导出成功,可以在c盘看到test.xls文件)
// 输出"导出成功" (表示数据导出成功,可以在c盘看到test.xls文件)
```
范例02
@@ -742,7 +555,7 @@ bool=1
ret := rdo2 iniWriteBool("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata9", "bool", 1);
return ret;
// 结果0,写入成功
// 输出0,写入成功
// 文件写入:
```
@@ -771,7 +584,7 @@ date=2014/1/12
ret := rdo2 iniWriteDate("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata2", "date", 41651);
return ret;
// 结果0 ,设置成功
// 输出0 ,设置成功
// 文件修改:
```
@@ -800,7 +613,7 @@ datetime=2014/1/12 14: 00: 00
ret := rdo2 iniWriteDateTime("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata3", "datetime", 41651.5833334);
return ret;
// 结果0,修改成功
// 输出0,修改成功
// 文件修改:
```
@@ -829,7 +642,7 @@ float=9.9
ret := rdo2 iniWriteFloat("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata4", "float", 9.9);
return ret;
// 结果0,修改成功
// 输出0,修改成功
// 文件修改:
```
@@ -858,7 +671,7 @@ INT=100
ret := rdo2 iniWriteInteger("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata5", "INT", 100);
return ret;
// 结果0,修改成功
// 输出0,修改成功
// 文件修改:
```
@@ -887,7 +700,7 @@ time=12: 00: 00
ret := rdo2 iniWriteTime("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata6", "time", 0.5);
return ret;
// 结果0,修改成功
// 输出0,修改成功
// 文件修改:
```
@@ -916,7 +729,7 @@ String=Hello Tinysoft
ret := rdo2 iniWriteString("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "IniData7", "String", 'Hello Tinysoft');
return ret;
// 结果0,修改成功
// 输出0,修改成功
// 文件修改:
```
@@ -940,5 +753,5 @@ return ret;
ret := rdo2 iniDeleteKey("",
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata9", "bool");
return ret;
// 结果0,删除成功
// 输出0,删除成功
```
@@ -22,218 +22,6 @@
返回:array
## `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
## `Network_Node_DegreeCentrality(matrix)`
度中心度
@@ -320,94 +108,12 @@
返回: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
## `sysSendMail()`
(参考文档未提供简述。)
返回:any
## `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的情况,属于正常现象。
```
## `getUrl(src_url, parse_url)`
解析在HTML中出现的URL,返回全路径URL串。
@@ -62,7 +62,7 @@ end
ret := rdo2 sysCreateMutex("tinysoft");
ret1 := rdo2 sysReleaseMutex(ret);
return ret1;
// 结果1
// 输出1
```
## `sysexecnewpipe(flag)`
@@ -175,71 +175,6 @@ else
return "获取进程的子进程列表失败!"
```
## `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
## `sysputenv(env_value)`
设置当前运行环境的指定环境变量的值。
@@ -280,7 +215,7 @@ echo res; // 打印原有环境变量OS的值
res := "OS="$res$";Test"; // 原有环境变量与设置值拼接
ret := sysputenv(res); // 更改当前运行环境的环境变量OS的值
if ret=0 then return sysgetenv("OS"); // 更改成功,获取更改后的环境变量OS的值
// 结果:返回字符串" Windows_NT;Test"
// 输出:返回字符串" Windows_NT;Test"
```
## `sysErrorMessage(code)`
@@ -297,7 +232,7 @@ if ret=0 then return sysgetenv("OS"); // 更改成功,获取更改后的环境
```tsl
return rdo2 sysErrorMessage(200);
// 结果:代码段不可大于或等于 64K。
// 输出:代码段不可大于或等于 64K。
```
## `sysgetenv(name)`
@@ -368,7 +303,7 @@ test_echo.tsf: sleep(2 * 1000); // 停2秒echo 'TestEchoIN\r\n';return 1;
// 创建一个名称为tinysoft的互斥锁
ret := rdo2 sysCreateMutex("tinysoft");
return ret;
// 结果2632
// 输出2632
```
## `sysProcessId()`
@@ -801,7 +736,7 @@ tool_path := "C:\\Program Files\\Windows Media Player";
ret := rdo2 sysExec(tool_path+"\\wmplayer.exe", "D:\\test1\\when_ever.mp3", tool_path, 1, returncode);
ret1 := rdo2 sysCloseHandle(ret);
return ret1;
// 结果1
// 输出1
```
## `dbglocalrunning()`
@@ -151,7 +151,7 @@ if not spec(isTradeDay(i), 'SH000001') then continue;
echo specDate(close(), i);
end
return 1;
// 结果:times为函数运行的次数,seconds为运行时间,op为指令的优化信息,type为函数类型。
// 输出:times为函数运行的次数,seconds为运行时间,op为指令的优化信息,type为函数类型。
```
范例02:内置对象的优化信息返回
@@ -190,98 +190,6 @@ return randomFrom(a);
返回:array
### `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
### `sp_SetSysParam1()`
设置系统参数教学范例,使用缺省系统参数,返回股票.基本信息
返回:any
### `sp_SetSysParam2()`
设置系统参数教学范例,指定系统参数(当前为SH600718),返回股票.基本信息
返回:any
### `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
### `tsAppServerName()`
返回平台设置的名字,如果没有设置,默认是ip:进程路径。
@@ -292,7 +200,7 @@ return ifThen3(1, 2, '左大', '相等', '右大');
```tsl
return tsAppServerName();
// 结果192.168.101.26:z:\server\bin\exec64.exe
// 输出192.168.101.26:z:\server\bin\exec64.exe
```
### `call(func_name, p1, pn)`
@@ -360,65 +268,6 @@ return xml('<?xml version="1.0" encoding="GB2312"?>
// 仅windows中支持,Linux中暂不支持。
```
### `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;
// 输出:
// 示例未提供可直接输出的返回表达式。
```
### `callInArray(func_name, param_content)`
根据名称或者函数指针调用指定的函数,将参数放入一个数组中送入该函数,不支持变参。另外,天软的函数指针可以用thisfunction()获得。该函数与call函数功能类似,注意两个函数设置参数的区别。Call函数直接列举,CallInArray函数将调用的函数的参数放在Array中。
@@ -473,75 +322,12 @@ return b;
end;
// 调用
return callInArray("CCC", array("b": 1, "d": 4));
// 返回1
// 输出1
// 打印结果:A: <NIL> B: 1 C: <NIL> D: 40
// 解析:callINArray在通过数组传参数时,可以通过指定下标的方式给指定参数进行传参,下标对应函数定义中的变量名。
// 上面示例中,只对参数b与d进行了传参,其它两参数没有进行传值,所以是nil。
```
### `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
### `tsAppServer()`
获得当前运行的模型所在的运算服务器的标识。
@@ -553,7 +339,7 @@ return singleVariableExecute(arr, pn_stock(), @close());
```tsl
a := rand(10, 10);
return tsAppServer();
// 结果192.168.101.45:3328(Z:\server\bin5)
// 输出192.168.101.45:3328(Z:\server\bin5)
```
### `dupValue(value)`
@@ -607,7 +393,7 @@ end;
a := 1;
b := 2;
return ifThen(a>b, a, b);
// 返回2。
// 输出2。
```
### `integer(value)`
@@ -727,24 +513,6 @@ return binary('111111'); // 返回值为二进制流。
## 错误与断言函数
### `assert(error)`
断言。若Check为假,返回出错信息
| 参数 | 类型 | 说明 |
| ------- | ------ | ---------- |
| `error` | string | 字符串类型 |
返回:string
#### 示例
```tsl
return assert(0, '无效的语段');
// 输出:
// 示例包含说明文字,未作为可执行片段运行。
```
### `getProfilerInfo(clear)`
获得记录的优化信息。
@@ -24,7 +24,7 @@ ret := rdo2 excelOpen("C:\\VBA.xls");
if ret then
ret1 := rdo2 excelClose("C:\\VBA.xls");
return ret1;
// 结果1
// 输出1
```
## `excelQuit()`
@@ -42,7 +42,7 @@ ret1 := rdo2 excelOpen("C:\\VBA2.xls");
if ret and ret1 then
ret2 := rdo2 excelQuit();
return ret2;
// 结果1
// 输出1
```
## `xlColumns()`
@@ -56,9 +56,3 @@ Chart的数据源由列分割。
Chart的数据源由行分割。
返回:integer
## `isEmpty()`
指定Sheet是否是空Sheet表。
返回:bool
File diff suppressed because it is too large Load Diff
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&#160;First&#160;LETTER&#160;won't&#160;be&#160;replaced&#160;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
```
File diff suppressed because it is too large Load Diff