🎨 style(markdown): format markdown files

This commit is contained in:
csh 2026-01-11 12:58:27 +08:00
parent e3ecd26a88
commit 2b37860331
54 changed files with 10042 additions and 16272 deletions

View File

@ -33,6 +33,7 @@
- **职责**:提供"怎么做"的详细知识
**关键 Skills**
- `$tsl-guide` - TSL 渐进式语法教学(基础/高级/函数库/最佳实践)
- `$performance-optimization` - 跨语言性能优化工作流
- `$testing-workflow` - 跨语言测试策略
@ -87,10 +88,10 @@ Token 消耗:~8,000 tokens
## 性能指标
| 指标 | 之前 | 当前 | 改善 |
|------|--------|--------|------|
| .agents/ 规模 | ~500 行 | 168 行 | **↓ 66%** |
| 持续占用 tokens | ~12,500 | ~4,200 | **↓ 66%** |
| 指标 | 之前 | 当前 | 改善 |
| --------------- | ------- | ------- | --------- |
| .agents/ 规模 | ~500 行 | 168 行 | **↓ 66%** |
| 持续占用 tokens | ~12,500 | ~4,200 | **↓ 66%** |
| 平均场景 tokens | ~12,500 | ~10,500 | **↓ 16%** |
---
@ -100,11 +101,13 @@ Token 消耗:~8,000 tokens
### .agents/ 修改原则
**应该修改**
- ✅ 发现新的安全漏洞类型
- ✅ 核心约定变化(文件命名/格式规则)
- ✅ 新增不可违反的硬性约束
**不应该修改**
- ❌ 添加"建议性"最佳实践 → 应加到 skill
- ❌ 添加详细语法说明 → 应加到 skill 或 docs
- ❌ 超过 50 行限制 → 应拆分到 skill
@ -112,6 +115,7 @@ Token 消耗:~8,000 tokens
### Skills 创建原则
**应该创建**
- ✅ 新增工作流程(如 code-review
- ✅ 新语言需要"从零教学"(如 tsl-guide
- ✅ 跨语言通用知识(如 performance-optimization

View File

@ -186,7 +186,6 @@ git commit -m ":package: deps(playbook): add tsl standards"
> 会自动生成最小版;已存在则不会覆盖。
3. **验收**(任意满足其一即可):
- 目录存在:`.agents/tsl/`
- 规则入口可读:`.agents/tsl/index.md`
- 可选C++ 规则入口可读:`.agents/cpp/index.md`

View File

@ -65,19 +65,23 @@ std::cout << "Elapsed: " << elapsed.count() << "ms\n";
### 3. 优化策略(从高收益到低收益)
**3.1 算法级(优先级最高)**
- 降低复杂度:`O(n^2)` → `O(n log n)``O(n)`
- 避免重复计算:缓存、记忆化
**3.2 数据结构级**
- 选择合适容器:数组 vs 哈希表 vs 树
- 预分配容量,减少扩容
**3.3 循环级**
- 循环内不做 I/O
- 循环内避免重复解析/格式化
- 提前计算循环不变量
**3.4 I/O 级**
- 批量读写(减少系统调用)
- 缓存(明确 TTL 与容量上限)

View File

@ -25,6 +25,7 @@ description: "测试策略与最佳实践TSL/Python/C++):单元测试→
- 一个测试只验证一个行为点
**命名示例**
- `test_add_positive_numbers_returns_sum`
- `test_add_with_zero_returns_other_number`
@ -45,13 +46,13 @@ description: "测试策略与最佳实践TSL/Python/C++):单元测试→
## 何时补测试
| 场景 | 是否需要测试 | 测试类型 |
|------|-------------|---------|
| 新功能 | ✅ 必须 | 单元 + 集成 |
| Bug 修复 | ✅ 必须 | 回归 |
| 重构 | ✅ 必须 | 运行现有测试 |
| 文档/注释 | ❌ 不需要 | - |
| 格式调整 | ❌ 不需要 | - |
| 场景 | 是否需要测试 | 测试类型 |
| --------- | ------------ | ------------ |
| 新功能 | ✅ 必须 | 单元 + 集成 |
| Bug 修复 | ✅ 必须 | 回归 |
| 重构 | ✅ 必须 | 运行现有测试 |
| 文档/注释 | ❌ 不需要 | - |
| 格式调整 | ❌ 不需要 | - |
## 测试可维护性原则

View File

@ -92,6 +92,7 @@ col_0 := matrix[:, 0];
**文件**`references/primer.md`
**内容**
- 变量/常量、类型与字面量
- 数组与表数组表达
- 运算符与表达式
@ -108,6 +109,7 @@ col_0 := matrix[:, 0];
**文件**`references/advanced.md`
**内容**
- Unit/Namespace/函数文件与调用优先级
- Class/Object 模型(继承/override/Create/Destroy
- 扩展语法:矩阵、集合运算、结果集过滤
@ -123,10 +125,12 @@ col_0 := matrix[:, 0];
**文件**`references/functions_index.md`
**内容**
- 函数库分类索引与检索策略
- 对应权威目录:`docs/tsl/syntax_book/function/tsl/index.md`
**重要说明**
- 函数库已拆分为 `docs/tsl/syntax_book/function/` 多文件,**禁止整目录加载**
- 优先在 `docs/tsl/syntax_book/function/tsl/` 下分文件检索
@ -169,6 +173,7 @@ col_0 := matrix[:, 0];
3. 只读取相关函数片段≤100 行)
**检索示例**
```bash
rg -n "\\bTrim\\b" docs/tsl/syntax_book/function/tsl/base.md
rg -n "^######\s+FileExists" docs/tsl/syntax_book/function/tsl/resource.md

View File

@ -74,17 +74,17 @@ var d: integer; // 类型可写可省(类型信息不做强校验)
常见类型(参考 `01_language_basics.md`
| 类型 | 说明 |
|------|------|
| Integer / Int64 | 整数 |
| Real | 浮点数 |
| Boolean | 布尔值true/false |
| TDateTime | 日期时间 |
| String | 字符串 |
| Binary | 二进制 |
| Array | 数组 |
| Matrix / TMatrix | 矩阵 |
| NIL | 空值 |
| 类型 | 说明 |
| ---------------- | -------------------- |
| Integer / Int64 | 整数 |
| Real | 浮点数 |
| Boolean | 布尔值true/false |
| TDateTime | 日期时间 |
| String | 字符串 |
| Binary | 二进制 |
| Array | 数组 |
| Matrix / TMatrix | 矩阵 |
| NIL | 空值 |
示例:

View File

@ -94,7 +94,7 @@
- [MTOC](#mtoc-1)
- [MTOC(TICK:double)获得与某个指定的 TICK 之间的秒数](#mtoctickdouble获得与某个指定的-tick-之间的秒数)
- [\_\_line\_\_](#__line__)
- [\_\_stack\_frame](#__stack_frame)
- [\_\_stack_frame](#__stack_frame)
- [面向对象支持的保留字](#面向对象支持的保留字)
- [TYPE](#type)
- [CLASS](#class)
@ -426,6 +426,7 @@ return Call(a, 1);
```tsl
SysParams["MM"] := 1;等同于 SetSysParam("MM", 1);
```
直接使用 SysParams 来访问和设置系统环境的值的性能会优越于 SetSysParam 和 GetSysParam 函数,尤其当某系统环境变量的值是一个数组的时候。
参见:系统参数设置和获取函数
@ -752,6 +753,7 @@ var 还可以用来声明变量,在使用 Explicit 编译选项的时候,变
```tsl
echo "Today is ", DateToStr(Today()), "now->", TimeToStr(Now());
```
如果在平台运行,会输出信息到客户端
固定功能用法:
@ -815,7 +817,7 @@ end;
function teststatic(key);
begin
// 这个变量A的值是一个不需要每次调用重新构造的静态计算即它右边的表达式不管上层调用多少次它只执行一次
A :=
A :=
static array("ABCD":1, "BBBB":2, "CCCC":3……..);
return A[key];
end;
@ -878,6 +880,7 @@ begin
end;
// 使用了全局变量之后,以上的 testglobal 函数会打印出 100。
```
##### _MYMEM_
应用已经使用的内存大小。
@ -896,6 +899,7 @@ A := 0;
for i := 0 to 99999 do A++;
return MTOC;
```
以上代码可以计算所耗费的秒数
##### MTOC
@ -954,6 +958,7 @@ return array(TE1, TE2, MTOC);
```tsl
type abcd = class
```
Public
```tsl
@ -964,6 +969,7 @@ begin
end;
end;
```
###### CLASS
类关键字,用来定义类,见 TYPE。
@ -1033,6 +1039,7 @@ return ret; // 返回结果0
property A[:String] read GETA write SETA;
property A[:String] Index 1 read GETA Write SETA;
```
###### SELF
SELF 得到当前的对象。
@ -1082,82 +1089,82 @@ else return "Canceled";
##### SQL 语法支持保留字
| 相关的关键字 | 含义 |
| --- | --- |
| Select | 查询语句指定由查询返回的列。详细使用方法见SELECT查询 |
| VSelect | 查询语句,返回一个值 |
| SSelect | 查询语句,返回一维数组 |
| MSelect | 查询语句返回Matrix类型数组 |
| Distinct | 取唯一值,去重复项 |
| SelectOpt | 返回指定类型值selectopt(type)type值不同返回不同类型的值。详见select字句语法。 |
| DRange | Drange(N to M): 从查询结果集中输出从N到M之间的行<br>Drange(N of M): 从查询结果集中输出从 (N-1)/M * 记录总条数到 N/M * 记录总条数 -1 之间的行; |
| As | 对列命名 |
| From | 数据的来源表 |
| MarketTable | 高频行情数据表 |
| InfoTable | 财务类数据表关键字 |
| TradeTable | 交易明细数据表 |
| SqlTable | 用于与第三方数据库交互的关键字 |
| HugeSqlTable | |
| KeepNull | |
| Datekey | 取行情数据时,指定日期关键字 |
| Of | 取数据时,指定股票关键字 |
| Order | 排序与by同时使用order by |
| By | 排序与order同时使用order by |
| Where | 条件 |
| Desc | 排序,逆序 |
| Asc | 排序,正序 |
| Group | 分组 |
| Having | 聚集 |
| ChecksumOf | 生成哈希索引 |
| Countof | 记录统计 |
| SumOf | 和 |
| MaxOf | 最大值 |
| StdevOf | 标准差 |
| VarOf | 在险价值 |
| TotalVarOf | |
| NormOf | 平方和的平方根 |
| MedianOf | 中值 |
| AveDevOf | 离散度 |
| GeoMeanOf | 几何平均值 |
| SkewOf | 偏度 |
| KurtosisOf | 峰度 |
| Skew2Of | 偏度 |
| Kurtosis2Of | 峰度 |
| LargeOf | 最大值 |
| PercentileOf | 百分点 |
| QuartileOf | 四分位的值 |
| TrimMeanOf | 返回数据集中的内部平均值,从头尾去掉指定百分比的数据点,再求平均值 |
| CountOf | 记录个数 |
| AvgOf | 平均值 |
| MinOf | 最小值 |
| AggOf | 利用回调函数计算聚集的值 |
| StdevpOf | 统计标准偏差 |
| VarpOf | 统计方差 |
| ModeOf | 众数 |
| DevSqOf | 样本平均值偏差的平方和 |
| HarMeanOf | 调和平均值 |
| Checksum_AggOf | 校验和 |
| SmallOf | 最小值 |
| PercentRankOf | 数据集中X排位的百分点的值 |
| Rankof | 排位 |
| FrequencyOf | 数值区间在数据集中出现的频率 |
| ProductOf | |
| RefOf | 往前取数据 |
| RefsOf | |
| AggValue | 当前参与聚集的列的值 |
| ThisGroup | 指定分组 |
| ThisRow | 当前行的数据值 |
| ThisRowIndex | 当前行的相对索引值 |
| ThisOrder | 当前排序 |
| Insert | 插入数据 |
| InsertFields | 插入数据的字段列表 |
| Values | 设置或者取得Name=Value模式串中指定的Name的Value值 |
| Update | 修改数据 |
| Set | 修改数据 |
| Delete | 删除数据 |
| DeleteOpt | 设定删除数组时是否自动修改下标SelectOpt对稀疏矩阵用的时候很有意义 |
| FetchFirst | 查询第一条记录 |
| FetchNext | 查询下一条记录 |
| 相关的关键字 | 含义 |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Select | 查询语句指定由查询返回的列。详细使用方法见SELECT查询 |
| VSelect | 查询语句,返回一个值 |
| SSelect | 查询语句,返回一维数组 |
| MSelect | 查询语句返回Matrix类型数组 |
| Distinct | 取唯一值,去重复项 |
| SelectOpt | 返回指定类型值selectopt(type)type值不同返回不同类型的值。详见select字句语法。 |
| DRange | Drange(N to M): 从查询结果集中输出从N到M之间的行<br>Drange(N of M): 从查询结果集中输出从 (N-1)/M _ 记录总条数到 N/M _ 记录总条数 -1 之间的行; |
| As | 对列命名 |
| From | 数据的来源表 |
| MarketTable | 高频行情数据表 |
| InfoTable | 财务类数据表关键字 |
| TradeTable | 交易明细数据表 |
| SqlTable | 用于与第三方数据库交互的关键字 |
| HugeSqlTable | |
| KeepNull | |
| Datekey | 取行情数据时,指定日期关键字 |
| Of | 取数据时,指定股票关键字 |
| Order | 排序与by同时使用order by |
| By | 排序与order同时使用order by |
| Where | 条件 |
| Desc | 排序,逆序 |
| Asc | 排序,正序 |
| Group | 分组 |
| Having | 聚集 |
| ChecksumOf | 生成哈希索引 |
| Countof | 记录统计 |
| SumOf | 和 |
| MaxOf | 最大值 |
| StdevOf | 标准差 |
| VarOf | 在险价值 |
| TotalVarOf | |
| NormOf | 平方和的平方根 |
| MedianOf | 中值 |
| AveDevOf | 离散度 |
| GeoMeanOf | 几何平均值 |
| SkewOf | 偏度 |
| KurtosisOf | 峰度 |
| Skew2Of | 偏度 |
| Kurtosis2Of | 峰度 |
| LargeOf | 最大值 |
| PercentileOf | 百分点 |
| QuartileOf | 四分位的值 |
| TrimMeanOf | 返回数据集中的内部平均值,从头尾去掉指定百分比的数据点,再求平均值 |
| CountOf | 记录个数 |
| AvgOf | 平均值 |
| MinOf | 最小值 |
| AggOf | 利用回调函数计算聚集的值 |
| StdevpOf | 统计标准偏差 |
| VarpOf | 统计方差 |
| ModeOf | 众数 |
| DevSqOf | 样本平均值偏差的平方和 |
| HarMeanOf | 调和平均值 |
| Checksum_AggOf | 校验和 |
| SmallOf | 最小值 |
| PercentRankOf | 数据集中X排位的百分点的值 |
| Rankof | 排位 |
| FrequencyOf | 数值区间在数据集中出现的频率 |
| ProductOf | |
| RefOf | 往前取数据 |
| RefsOf | |
| AggValue | 当前参与聚集的列的值 |
| ThisGroup | 指定分组 |
| ThisRow | 当前行的数据值 |
| ThisRowIndex | 当前行的相对索引值 |
| ThisOrder | 当前排序 |
| Insert | 插入数据 |
| InsertFields | 插入数据的字段列表 |
| Values | 设置或者取得Name=Value模式串中指定的Name的Value值 |
| Update | 修改数据 |
| Set | 修改数据 |
| Delete | 删除数据 |
| DeleteOpt | 设定删除数组时是否自动修改下标SelectOpt对稀疏矩阵用的时候很有意义 |
| FetchFirst | 查询第一条记录 |
| FetchNext | 查询下一条记录 |
##### 被系统保留未被使用的保留字
@ -1528,6 +1535,7 @@ book."则代表的是 This''s a book.
有时候,程序中需要表达特殊的难以直接输入的 ASCII 符,例如笑脸符的 ASCII 值为 1要表达的时候就用#1 就可以表达了,而同样的,回车符的 ASCII 码值为 13可以用#13 来表达,而字符 0 的 ASCII 码值为 48则#48 可以表达数字字符 0。
# 号字符表达方式可以和引号的字符串表达方式串起来表达字符串常量,例如:'The first
line,Hello!'#13#10'The second line,Yeah!'#13#10'The End.'描述的字符串内容为:
The first line,Hello!
@ -1778,6 +1786,7 @@ c := s[0];
```
c 为长度 1 的字符串。
#### ArrayTableArray 数组类型
数组型,数组是程序中最常用的结构数据类型,用来描述一定数目的元素集合。数组的每个元素和下标相关联,根据下标指示数组中元素的位置。
@ -1791,6 +1800,7 @@ arr := array();
arr[0] := -1;
arr[0][0][0] := 0;
```
TSL 的数组,有两种下标,一种为整数,一种为字符串。允许有字符型下标存在,其优点是可以直接描述一张数据表。例如 arrTable 是一个二维数组,我们可以设定其中的一个元素值如下:
```tsl
@ -1914,6 +1924,7 @@ TCLASS 型数据可以用.操作符来调用类方法。
```tsl
class(ClassA).MethodA(a, b);
```
#### ComObj
对象型,对象型是 TSL 中的一种 Com 对象数据类型,用这种类型可以操作各种 Com 对象,如 Excel 以及 Word 对象。
@ -1949,6 +1960,7 @@ com_obj.PropertyName(param1, param2) := value;
```tsl
com_obj.MethodName(param1, param2);
```
如果对象的属性或者方法返回的仍然是对象,支持嵌套调用:
ComObjVariant.<PropName|MethodName>[(P1,P2...)].
@ -2008,6 +2020,7 @@ COM 的调用和 TSL 的对象的调用是没有差异的,也非常类似于 P
GetOleObject("Excel.Application", 0, Obj);
Obj.WorkBooks.Open("C:\\1.xls");
```
上边的代码 Obj.WorkBooks 隐含着返回了一个 WorkBooks 对象
#### TSLObj
@ -2039,6 +2052,7 @@ TSL 语言标示符大小写无关,未初始化的变量为整数 0。
```tsl
var_name := expression;
```
例如:
```tsl
@ -2112,6 +2126,7 @@ TSL 中支持常量、常量成员、运行时常量。
```tsl
const 标识符 = 基础数据类型的常数或常量参与的运算结果;
```
如下:
【常量定义】
@ -2154,11 +2169,13 @@ end;
```tsl
// 运行时常量的赋值符号为”:=”
```
其定义与初始化:
```tsl
const 标识符 := 任何数据类型的常数或任意表达式的返回值;
```
例如:
```tsl
@ -2166,6 +2183,7 @@ const a := 1;
C := 100;
const b := C + now();
```
则此时的 b 只有在第一次运行时才能知道它的具体值。
特性说明:
@ -2182,18 +2200,18 @@ const b := C + now();
##### 常量与运行时常量的对比
| 特点 | 常量定义 | 运行时常量定义 | 变量定义 |
| --- | --- | --- | --- |
| 声明关键字 | Const | Const | 无存在编译选项时用var |
| 初始化赋值符 | = | := | := |
| 初始化数据 | 常量或常量参与的计算 | 任意表达式 | 任意表达式 |
| 初始化计算种类 | 类型与算符有限制,具体可参考:计算种类 | 无约束 | 无约束 |
| 初始化生效 | 初始化时确认,是预知的 | 第一次运行时确认 | 运行时确认 |
| 初始化后是否可被修改 | 不能被修改 | 不能被修改 | 能被修改 |
| 是否支持类成员 | 支持 | 不支持 | 支持 |
| 是否支持声明中初始化类成员 | 支持 | 不支持 | 不支持 |
| 运算效率 | 存储数据较大时效率相对较高 | 存储数据较大时效率相对较高 | 一般 |
| 定义初始化举例 | Const a="Hello"; | Const a:=100+now(); | a:=100+now(); |
| 特点 | 常量定义 | 运行时常量定义 | 变量定义 |
| -------------------------- | -------------------------------------- | -------------------------- | ------------------------- |
| 声明关键字 | Const | Const | 无存在编译选项时用var |
| 初始化赋值符 | = | := | := |
| 初始化数据 | 常量或常量参与的计算 | 任意表达式 | 任意表达式 |
| 初始化计算种类 | 类型与算符有限制,具体可参考:计算种类 | 无约束 | 无约束 |
| 初始化生效 | 初始化时确认,是预知的 | 第一次运行时确认 | 运行时确认 |
| 初始化后是否可被修改 | 不能被修改 | 不能被修改 | 能被修改 |
| 是否支持类成员 | 支持 | 不支持 | 支持 |
| 是否支持声明中初始化类成员 | 支持 | 不支持 | 不支持 |
| 运算效率 | 存储数据较大时效率相对较高 | 存储数据较大时效率相对较高 | 一般 |
| 定义初始化举例 | Const a="Hello"; | Const a:=100+now(); | a:=100+now(); |
##### 常量的产生对其它功能的扩展帮助
@ -2227,6 +2245,7 @@ A := length(A);
A := A\ * 10.0; // A 的类型运算后变成了实数 140.0
A := array(A); // A 的类型变成了数组,内容为 array(140.0)
```
这种变量类型可以改变的特性,我们称之为变量类型的运行时相关,也就是说,变量类型只有在运行到具体位置的时候才可以被明确,这种特性在计算机术语里也可以称之为 TSL 语言是弱类型的语言。
#### TSL 语言变量的初始值
@ -2246,6 +2265,7 @@ int I;//申明 I 为整数类型
```tsl
I = 0; // 赋值语句C 语言的=和 TSL 的 := 意义是一样的
```
先得申明 I 变量为整数,才可以使用 I。
而且这样是不正确的:
@ -2254,6 +2274,7 @@ I = 0; // 赋值语句C 语言的=和 TSL 的 := 意义是一样的
int I;
I := "1234";
```
这样 C 语言会报告类型不匹配的错误,因为无法把一个字符串类型赋给一个整数类型的变量,这就是强类型语言,而且,无论在哪里,只要使用 I都可以知道 I 是整数类型。
#### 数据类型转换与算符重载
@ -2266,6 +2287,7 @@ B := 1;
C := B + StrToInt(A);
// StrToInt 是一个把字符串转换成为整数的函数,我们先不去理解 TSL 的函数的表达方式,函数会在后续章节中讲解
```
在 TSL 中,我们很明确地先把字符串 A 用相关函数转换成为整数再和 B 相加,这样我们很清楚 C 的结果是 1+1234=1235。
假定是支持数据自动转换的语言,这样写就可以了:
@ -2275,6 +2297,7 @@ A := "1234";
B := 1;
C := B + A;
```
编译器会自动识别 B 为整数,整数和后边的类型相加,自动把后边的数据类型转换成为整数,这样我们可以称之为语言内核已经重载了+运算符使得自动执行了将第二操作数自动转换成为和第一个操作数相同的类型也就是自动把字符串”1234”自动转换成为和整数 1 一样的类型的功能。
以上代码看起来显然比没有自动类型转换的看起来要简单和优雅,但是我们再看下一个代码:
@ -2284,6 +2307,7 @@ A := "1234";
B := 1;
C := A + B;
```
这个 C 的结果会是什么呢?由于 A 是字符串,所以先要把 B 的结果 1 先变成字符串"1"再和 A 相加,结果就变成了"12341"。
这样就出现了很意想不到的效果了A+B 的结果与 B+A 的结果是完全不相同的,假定开发人员写的时候稍有不注意,这类的错误是非常容易犯下并难以查找的。
@ -2310,6 +2334,7 @@ TSL 采用 Var 作为前缀来声明变量,具体使用方法为:
```tsl
var varName1, varName2[:type];
```
例如:
```tsl
@ -2343,6 +2368,7 @@ TSL 的算符有的存在.前导,例如 .&,.>等等,需要注意的是,由
```tsl
a := 1;
```
TSL 中 `=` 是关系运算符,赋值使用 `:=`
##### 多参数赋值运算
@ -2352,6 +2378,7 @@ a := 1;
```tsl
[变量 1, 变量 2, ...] := array(值 1, 值 2, ...);
```
注意:
- 右侧数组第一维下标必须为自然数,可为多维数组。
@ -2411,6 +2438,7 @@ return Test(e := 3, [f, g] := array(1, 2), g); // 返回 6
return Test(e := 3, [f, g] := array(1, 2)); // 返回 4c 为 nil
```
注:此用法不常见。
范例 06实用场景当我们执行某个程序之后想要返回多个指标值可以采用这种方式进行处理会更快便捷。比如在数据库交互过程中做一个数据提取的操作的时候我既希望可以返回提取的数据结果集又希望在提取失败时返回具体失败的信息方便查看失败的原因。那此时就希望能一次返回两个结果一个代表数据库操作是否成功的 Bool 类型结果,另一个代表的是提取的结果集或报错信息。那通过数组绑定变量的方式就可以很好地读取到对应的信息值,大致过程如下所示:
@ -2440,20 +2468,20 @@ end;
算术运算符是最常用的运算符,用于从事算术运算,除了四则运算+-\*/以外TSL 还支持求余,整除,自加一,自减一等。
| 运算符 | 运算 | 运算对象 | 结果类型 | 例子 |
| --- | --- | --- | --- | --- |
| + | 加,正号,可为一元或者二元运算符 | 整型、实型、字符串 | 只要有一个运算对象是实型,结果就是实型,如果全部的运算对象都是整型并且运算不是除法,则结果为整型,若运算是除法或者左除,则结果是实型 | 2+1结果为3<br>"222"+"888"结果为"222888" |
| - | 减,负号,可为一元或者二元运算符 | 整型、实型 | | 2-1结果为1 |
| * | 乘 | 整型、实型 | | 2*2结果为4 |
| / | 除 | 整型、实型 | | 2/4结果为0.5<br>注意:在某些语言中,整数常量相除的结果为整数,如果要结果为实数需要其中一个参与运算的元素为实数 |
| \ | 左除 | 整型、<br>实型 | | 3\2的结果为0.666666…<br>左除这种运算符只有少数语言支持,大部分语言并不支持 |
| %,Mod | 取余 | 整型 | 整型 | 例如4 % 3的结果为1 |
| Div | 除取整 | 整型、实型 | 整型 | 例如7 div 3的结果为2 |
| ++ | 自加1一元运算符 | 整型、实型 | 整型、实型 | 见下例 |
| -- | 自减1一元运算符 | 整型、实型 | 整型、实型 | 见下例 |
| ! | 求倒数,一元运算符 | 整型、实型 | 实型 | !A相当于1/A |
| ^ | 求幂 | 整型、实型 | 实数 | 2^3等于2的3次方为8 |
| ~ | 求对数 | 整型、实型 | 实数 | 8~2等于8对2求对数为3 |
| 运算符 | 运算 | 运算对象 | 结果类型 | 例子 |
| ------ | -------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------- |
| + | 加,正号,可为一元或者二元运算符 | 整型、实型、字符串 | 只要有一个运算对象是实型,结果就是实型,如果全部的运算对象都是整型并且运算不是除法,则结果为整型,若运算是除法或者左除,则结果是实型 | 2+1结果为3<br>"222"+"888"结果为"222888" |
| - | 减,负号,可为一元或者二元运算符 | 整型、实型 | | 2-1结果为1 |
| \* | 乘 | 整型、实型 | | 2\*2结果为4 |
| / | 除 | 整型、实型 | | 2/4结果为0.5<br>注意:在某些语言中,整数常量相除的结果为整数,如果要结果为实数需要其中一个参与运算的元素为实数 |
| \ | 左除 | 整型、<br>实型 | | 3\2的结果为0.666666…<br>左除这种运算符只有少数语言支持,大部分语言并不支持 |
| %,Mod | 取余 | 整型 | 整型 | 例如4 % 3的结果为1 |
| Div | 除取整 | 整型、实型 | 整型 | 例如7 div 3的结果为2 |
| ++ | 自加1一元运算符 | 整型、实型 | 整型、实型 | 见下例 |
| -- | 自减1一元运算符 | 整型、实型 | 整型、实型 | 见下例 |
| ! | 求倒数,一元运算符 | 整型、实型 | 实型 | !A相当于1/A |
| ^ | 求幂 | 整型、实型 | 实数 | 2^3等于2的3次方为8 |
| ~ | 求对数 | 整型、实型 | 实数 | 8~2等于8对2求对数为3 |
示例:
@ -2477,25 +2505,25 @@ A--;
在=,<>,<,>,<=,>=等运算符都可以对字符串类型进行判断,判断是以字符串中的字符的 ASCII 码值的大小为原则的,比较原则:从第一个字符开始比,相同则比下一个字符,如果两个字符串不一样长,且短串长度部分都相等,则长串大。此外,大小写的 ASCII 码值是不同的,小写的码值大,因此字符串比较是大小写相关的,例如"A"<"a"为真。
| 运算符 | 运算 | 运算对象 | 例子 |
| --- | --- | --- | --- |
| =,.= | 等于 | 简单类型 | 1=2的结果为假<br>注意:在有些语言中,=被用于赋值符,这样等于判断符就使用== |
| <>,.<> | 不等于 | 简单类型 | 1<>2的结果为真<br>注意:在有些语言中,采用!=作为不等于的判断符 |
| <,.< | 小于 | 简单类型 | 1<2的结果为真 |
| >,.> | 大于 | 简单类型 | 1>2的结果为假<br>"B">"A"结果为真 |
| <=,.<= | 小于等于 | 简单类型 | 1<=2的结果为真 |
| >=,.>= | 大于等于 | 简单类型 | 1>=2的结果为假 |
| LIKE | 模式匹配判断 | 字符串 | "2009-1-1" like "\\d+-\\d+-\\d+"为真<br>在TSL中Like符和SQL的Like的含义不同TSL的Like的右元素为正则表达式左边运算元素为匹配串结果是左边串是否匹配右边的正则表达式关于正则表达式可以参阅的相关正则表达式的章节 |
| 运算符 | 运算 | 运算对象 | 例子 |
| ------ | ------------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| =,.= | 等于 | 简单类型 | 1=2的结果为假<br>注意:在有些语言中,=被用于赋值符,这样等于判断符就使用== |
| <>,.<> | 不等于 | 简单类型 | 1<>2的结果为真<br>注意:在有些语言中,采用!=作为不等于的判断符 |
| <,.< | 小于 | 简单类型 | 1<2的结果为真 |
| >,.> | 大于 | 简单类型 | 1>2的结果为假<br>"B">"A"结果为真 |
| <=,.<= | 小于等于 | 简单类型 | 1<=2的结果为真 |
| >=,.>= | 大于等于 | 简单类型 | 1>=2的结果为假 |
| LIKE | 模式匹配判断 | 字符串 | "2009-1-1" like "\\d+-\\d+-\\d+"为真<br>在TSL中Like符和SQL的Like的含义不同TSL的Like的右元素为正则表达式左边运算元素为匹配串结果是左边串是否匹配右边的正则表达式关于正则表达式可以参阅的相关正则表达式的章节 |
#### 逻辑运算符
逻辑运算符就是对真假的 Boolean 类型进行运算的算符。
| 运算符 | 运算 | 运算对象 | 结果类型 | 例子 |
| --- | --- | --- | --- | --- |
| Not,.!! | 逻辑非,一元运算符 | 布尔型 | 布尔型 | 逻辑非,对真运算则为假,对假运算则为真<br>Not 1的结果为0<br>在C语言或者类C语言中Not的表达为! |
| And,.&& | 逻辑与 | 布尔型 | 布尔型 | 逻辑与,真与真与为真,真与假或者假与假与都为假<br>1 and 2结果为1<br>1 and 0结果为0<br>在C语言或者类C语言中And的表达为&& |
| Or,.\|\| | 逻辑或 | 布尔型 | 布尔型 | 逻辑或,只要一个为真,运算结果就为真<br>1 or 2 结果为1<br>1 or 0结果为1<br>0 or 0结果为0<br>在C语言或者类C语言<br>Or的表达为II |
| 运算符 | 运算 | 运算对象 | 结果类型 | 例子 |
| -------- | ------------------ | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Not,.!! | 逻辑非,一元运算符 | 布尔型 | 布尔型 | 逻辑非,对真运算则为假,对假运算则为真<br>Not 1的结果为0<br>在C语言或者类C语言中Not的表达为! |
| And,.&& | 逻辑与 | 布尔型 | 布尔型 | 逻辑与,真与真与为真,真与假或者假与假与都为假<br>1 and 2结果为1<br>1 and 0结果为0<br>在C语言或者类C语言中And的表达为&& |
| Or,.\|\| | 逻辑或 | 布尔型 | 布尔型 | 逻辑或,只要一个为真,运算结果就为真<br>1 or 2 结果为1<br>1 or 0结果为1<br>0 or 0结果为0<br>在C语言或者类C语言<br>Or的表达为II |
TSL 在很多方面和 Pascal 语言比较类似,但是在 Pascal 语言中Not,And,Or 同时可以作为位运算符,由于 TSL 为弱类型语言为了避免冲突TSL 取消了这一特性,位运算有相应的一组算符和函数。
@ -2601,6 +2629,7 @@ return s;
a := array(1, 2, 3, 4, 5);
b := a . > 3 .? array(2, 3, 4, 5, 6) : array(3, 4, 5, 6, 7);
```
b 的结果为array(3,4,5,5,6)
即,对集合 a 中每个元素的集进行判断取值,然后得到对应的结果返回到结果集中。
@ -2619,6 +2648,7 @@ f2 := fmarray[[100, 10], [200, 20], [300, 30], [400, 40]];
b := f1 . > 3 .? f1:f2;
return b;
```
结果:
例如:将整型矩阵中不符合条件的值用浮点数 10.5 替换
@ -2628,6 +2658,7 @@ f1 := fmarray[[1, 2], [0, 4], [1, 2], [5, 6]];
b := f1 . > 3 .? f1:10.5;
return b;
```
返回的矩阵中,所有单元格类型都为浮点数:
注:即便判断中没有出现符合条件的单元,数据类型不同时也会做包容处理。
@ -2648,16 +2679,16 @@ return b;
下述所说的整数为 32 位整数或 64 位整数。
| 运算符 | 运算 | 运算对象 | 结果类型 | 例子 |
| --- | --- | --- | --- | --- |
| .& | 位与 | 整数 | 整数 | 位与例如3 .& 1 的结果13 .& 4的结果为0在C或者类C语言中.&的表达为& |
| .\| | 位或 | 整数 | 整数 | 位或例如3 .\| 1 的结果33 .\| 4的结果为7在C或者类C语言中.\|的表达为\| |
| .! | 位非(取反) | 整数 | 整数 | 位非,.! 1的结果为-2.! 0的结果为-1在C或者类C语言中位非运算符为~ |
| .^ | 位异或 | 整数 | 整数 | 位异或按位异或相同位为0不同的位为11 .^ 1为01 .^ 5 的值为4在C或者类C语言中.^的表达为^ |
| SHL | 位左移 | 整数 | 整数 | 位向左移动最高移动的N位舍弃 |
| ROL | 左循环移位 | 整数 | 整数 | 位向左移动最高移动的N位卷滚到最低位 |
| SHR | 位右移 | 整数 | 整数 | 位向右移动最低移动的N位舍弃 |
| ROR | 右循环移位 | 整数 | 整数 | 位向右移动最低移动的N位卷滚到最高位 |
| 运算符 | 运算 | 运算对象 | 结果类型 | 例子 |
| ------ | ------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------ |
| .& | 位与 | 整数 | 整数 | 位与例如3 .& 1 的结果13 .& 4的结果为0在C或者类C语言中.&的表达为& |
| .\| | 位或 | 整数 | 整数 | 位或例如3 .\| 1 的结果33 .\| 4的结果为7在C或者类C语言中.\|的表达为\| |
| .! | 位非(取反) | 整数 | 整数 | 位非,.! 1的结果为-2.! 0的结果为-1在C或者类C语言中位非运算符为~ |
| .^ | 位异或 | 整数 | 整数 | 位异或按位异或相同位为0不同的位为11 .^ 1为01 .^ 5 的值为4在C或者类C语言中.^的表达为^ |
| SHL | 位左移 | 整数 | 整数 | 位向左移动最高移动的N位舍弃 |
| ROL | 左循环移位 | 整数 | 整数 | 位向左移动最高移动的N位卷滚到最低位 |
| SHR | 位右移 | 整数 | 整数 | 位向右移动最低移动的N位舍弃 |
| ROR | 右循环移位 | 整数 | 整数 | 位向右移动最低移动的N位卷滚到最高位 |
#### []运算符
@ -2675,6 +2706,7 @@ A := array(1, 2, 3);
B := A[0];
// 那么 B 的结果是 1;
```
[]中的内容就是数组的下标。
如果我们替换掉一行语句
@ -2683,6 +2715,7 @@ B := A[0];
A := array(1, 2, 3);
A[0] := 2;
```
那么数组 A 的内容就变成了 array(2,2,3)。
[]的另外一个作用就是指示字符串中指定下标的字符。
@ -2699,6 +2732,7 @@ A[0] := 2;
A := "ABCD";
B := A[1];
```
那么 B 的结果是"A"
如果要给字符串的某个项来赋值:
@ -2707,6 +2741,7 @@ B := A[1];
A := "ABCD";
A[1] := "B";
```
那么 A 的值变成了"BBCD"
我们也可以用下列方法给字符串的某项赋值:
@ -2715,6 +2750,7 @@ A[1] := "B";
A := "ABCD";
A[1] := 0x30;
```
结果 A 的值变成了"0BCD",因为 16 进制的 30 就是字符 0 的 ASCII 值。
此外,[]算符还可以用于在类 SQL 语法中取字段结果,这个内容在今后的数据查询与 SQL 语言中将会进行具体描述。
@ -2733,6 +2769,7 @@ A[1] := 0x30;
a := 1;
b := a + 1;
```
那么我们知道 b 的结果会是 2我们知道 a+1 就是一个表达式,下边的代码:
```tsl
@ -2740,6 +2777,7 @@ A := 1;
B := @A + 1;
C := eval(B);
```
这里边出现了一个表达式求值的函数,叫 eval而 B 是表达式类型,利用表达式求值函数对 B 这个表达式求值得到的结果就是 2也就是 C 的结果是 2。
执行下边的代码可以得到同样的结果:
@ -2749,12 +2787,13 @@ A := 1;
B := &”A + 1”;
C := eval(B);
```
@符是一个表达式前导符,用于指定后边的内容是一个表达式,而&符号则是把一个字符串的内容编译成为一个表达式使用。
| 运算符 | 运算 | 运算对象 | 结果类型 |
| --- | --- | --- | --- |
| @ | 前导符,直接声明为表达式,一元运算符 | 语句 | 表达式型 |
| & | 转换字符串为表达式,一元运算符 | 字符串类型 | 表达式型 |
| 运算符 | 运算 | 运算对象 | 结果类型 |
| ------ | ------------------------------------ | ---------- | -------- |
| @ | 前导符,直接声明为表达式,一元运算符 | 语句 | 表达式型 |
| & | 转换字符串为表达式,一元运算符 | 字符串类型 | 表达式型 |
表达式运算用于那些需要动态执行而传值无法实现的特殊情况。
@ -2762,9 +2801,9 @@ C := eval(B);
该算符在后续章节中会使用到
| 运算符 | 运算 | 运算对象 | 结果类型 |
| --- | --- | --- | --- |
| . | 对象运算符号,访问对象的属性和方法 | 对象类型 | 任意 |
| 运算符 | 运算 | 运算对象 | 结果类型 |
| ------ | ---------------------------------- | -------- | -------- |
| . | 对象运算符号,访问对象的属性和方法 | 对象类型 | 任意 |
#### 矩阵运算符
@ -2772,19 +2811,19 @@ C := eval(B);
关于矩阵的计算我们将在矩阵计算专门章节里讲述。
| 运算符 | 运算 |
| --- | --- |
| :* | 矩阵乘 |
| :/ | 矩阵除 |
| :\ | 矩阵左除 |
| :^ | 矩阵幂 |
| ! | 矩阵逆和伪逆 |
| \| | 矩阵并右方 |
| :\| | 矩阵并右方(空列不错位,支持非完全矩阵) |
| Union | 矩阵并下方 |
| :: | 矩阵循环 |
| ::= | 矩阵循环赋值 |
| -> | 生成序列数组 |
| 运算符 | 运算 |
| ------ | -------------------------------------- |
| :\* | 矩阵乘 |
| :/ | 矩阵除 |
| :\ | 矩阵左除 |
| :^ | 矩阵幂 |
| ! | 矩阵逆和伪逆 |
| \| | 矩阵并右方 |
| :\| | 矩阵并右方(空列不错位,支持非完全矩阵) |
| Union | 矩阵并下方 |
| :: | 矩阵循环 |
| ::= | 矩阵循环赋值 |
| -> | 生成序列数组 |
#### 集合运算符
@ -2792,14 +2831,14 @@ C := eval(B);
有关集合运算的内容在集合运算章节中会独立讲述。
| 运算符 | 运算 |
| --- | --- |
| IN | 判断元素是否存在或者判定是否是子集 |
| Union2 | 集合并集 |
| Intersect | 集合交集 |
| Outersect | 对称差集 |
| Minus | 集合补集 |
| SQLIN | 行判断,判别是否是元素 |
| 运算符 | 运算 |
| --------- | ---------------------------------- |
| IN | 判断元素是否存在或者判定是否是子集 |
| Union2 | 集合并集 |
| Intersect | 集合交集 |
| Outersect | 对称差集 |
| Minus | 集合补集 |
| SQLIN | 行判断,判别是否是元素 |
#### 过滤集运算符
@ -2807,9 +2846,9 @@ C := eval(B);
过滤集运算也可以对二维结果集的整行内容进行过滤,这样的操作非常类似于集合运算,过滤在过滤集内的类似于交集,而反之类似于减集。但是过滤运算和集合运算的最大差异是:集合运算的结果内容不允许有重复项,而过滤运算的结果允许有重复项,也就是说于被过滤集中的重复项目是不会被自动去重的。
| 运算符 | 运算 |
| --- | --- |
| FilterIn | 过滤在其中 |
| 运算符 | 运算 |
| ----------- | ------------ |
| FilterIn | 过滤在其中 |
| FilterNotIn | 过滤不在其中 |
#### 运算赋值运算符
@ -2819,12 +2858,14 @@ C := eval(B);
```tsl
A := A + B;
```
这条语句的意思读者已经很清楚了,就是将 A+B 的值赋予 A。对于这类运算我们可以用另外一条语句替代
```tsl
A += B;
// 这就叫运算赋值运算符,基本上就是用算符=来替代掉原来的 A:=A 算符 B 的功能。
```
这种算符在 C 以及类 C 语言中被广泛支持,但是或许有的读者会有一个疑问,除了获得代码编写上的简便以外,似乎没有其他用处。其实不然,在很多情况下,采用运算赋值运算符还可以获得效率上的提高。
我们拿字符串的加法来做一个例子:
@ -2833,55 +2874,59 @@ A += B;
A := "";
for i := 0 to 9999 do A := A + "A";
```
```tsl
A := "";
for i := 0 to 9999 do A += "A";
```
这两种写法在计算机的执行上是完全不同的,+=并不仅仅只是写法的简便那么简单。
```tsl
// 在执行 A:=A+"A"的时候,计算机先取出 A 的值,然后执行+的操作,也就是需要先分配一个足够的内存空间存贮 A+"A"的结果,然后再将 A 原来存贮的字符串进行释放,释放以后再把计算的字符串结果复制到 A。
```
而执行 A+="A"的时候,计算机仅仅只需要先把 A 的字符串的存贮空间扩大一个字节,然后再把"A"复制进末尾。
```tsl
// 简单说起来,就是+=可以利用原有变量的存贮空间,而:=则不行,这样就可以基本保障几乎所有类似的运算采用运算赋值运算符会更快速。这个效率尤其在之后的矩阵计算中会体现得更加明显(由于矩阵的每一次计算的结果集相比标量而言都非常庞大,导致:=会不断地生成新结果集和删除旧结果集,使得效率很低)
```
| 运算符 | 算符名称 | 备注 |
| --- | --- | --- |
| += | 加等于 | |
| -= | 减等于 | |
| *= | 乘等于 | |
| /= | 除等于 | |
| \= | 左除等于 | |
| ^= | 幂等于 | |
| ~= | 对数等于 | |
| %= | 模等于 | |
| Div= | 整除等于 | 很特殊的算符,字母和符号并用的算符 |
| .\|= | 位或等于 | |
| .&= | 位与等于 | |
| .\|\|= | 逻辑或等于 | |
| .&&= | 逻辑与等于 | |
| .^= | 位异或等于 | |
| \|= | 矩阵右并等于 | |
| :\|= | 矩阵右并等于 | 和\|=的差异见后续章节中\|和:\|的差异 |
| &= | 矩阵下并等于 | 很特殊的算符,因为&是表达式,所以利用&=来实现union等于的功能 |
| :*= | 矩阵乘等于 | |
| :/= | 矩阵除等于 | |
| :\= | 矩阵左除等于 | |
| :^= | 矩阵幂等于 | |
| Union2= | 集合并等于 | 很特殊的算符,字母和符号并用的算符 |
| Intersect= | 集合交集等于 | 很特殊的算符,字母和符号并用的算符 |
| Outersect= | 集合对称差集= | 很特殊的算符,字母和符号并用的算符 |
| Minus= | 集合补集等于 | 很特殊的算符,字母和符号并用的算符 |
| 运算符 | 算符名称 | 备注 |
| ---------- | ------------- | ------------------------------------------------------------ |
| += | 加等于 | |
| -= | 减等于 | |
| \*= | 乘等于 | |
| /= | 除等于 | |
| \= | 左除等于 | |
| ^= | 幂等于 | |
| ~= | 对数等于 | |
| %= | 模等于 | |
| Div= | 整除等于 | 很特殊的算符,字母和符号并用的算符 |
| .\|= | 位或等于 | |
| .&= | 位与等于 | |
| .\|\|= | 逻辑或等于 | |
| .&&= | 逻辑与等于 | |
| .^= | 位异或等于 | |
| \|= | 矩阵右并等于 | |
| :\|= | 矩阵右并等于 | 和\|=的差异见后续章节中\|和:\|的差异 |
| &= | 矩阵下并等于 | 很特殊的算符,因为&是表达式,所以利用&=来实现union等于的功能 |
| :\*= | 矩阵乘等于 | |
| :/= | 矩阵除等于 | |
| :\= | 矩阵左除等于 | |
| :^= | 矩阵幂等于 | |
| Union2= | 集合并等于 | 很特殊的算符,字母和符号并用的算符 |
| Intersect= | 集合交集等于 | 很特殊的算符,字母和符号并用的算符 |
| Outersect= | 集合对称差集= | 很特殊的算符,字母和符号并用的算符 |
| Minus= | 集合补集等于 | 很特殊的算符,字母和符号并用的算符 |
#### With 设值运算符
| 运算符 | 运算 | 运算对象 | 结果类型 |
| --- | --- | --- | --- |
| => | 设置With的系统参数 | 任意类型 | 无结果 |
| 运算符 | 运算 | 运算对象 | 结果类型 |
| ------ | ------------------ | -------- | -------- |
| => | 设置With的系统参数 | 任意类型 | 无结果 |
#### 算符优先级
@ -2895,19 +2940,19 @@ for i := 0 to 9999 do A += "A";
以下会出现一些在上边未使用的算符,这些算符将会在矩阵计算等章节中详细解释。运算符的优先级有两个特例,就是+-号的优先级分为两种,一个是一元运算符的正负号的优先级,一个是做加减法计算的优先级。
| 运算符 | 优先级 |
| --- | --- |
| (),[],.,?. | 0(最高) |
| &,Not,++,--,`,!,.!,.!! | 1 |
| $ | 2 |
| ^,~,:^ | 3 |
| *,/,\,%,Mod,Div, :*,:/,:\,SHL,SHR,ROL,ROR | 4 |
| +,-,\|,:\|,union,union2,Intersect,Outersect,Minus,.\|,.\|\|,.&,.&&, ->,.^,正号+,负号- | 5 |
| IS,IN,Like,=,<,>,>=,<=,<>,.=,.<>,.>=,.<=,.<,.>,<br>:>, :<,:<>,:==,:>=,:<=,::>,::<,::<>,::==,::>=,::<= | 6 |
| And,Or | 7 |
| : | 8 |
| :=, +=, -=, *=, /=, \=, ^=, ~=, %=, div=, \|=, :\|=, union2=, intersect=, Outersect=, Minus=, &=, :*=, :/=, :\=, :^=, ::=, ::, .\|=, .&=, .\|\|=, .&&=, .^= | 9 |
| @ | 10(最低) |
| 运算符 | 优先级 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| (),[],.,?. | 0(最高) |
| &,Not,++,--,`,!,.!,.!! | 1 |
| $ | 2 |
| ^,~,:^ | 3 |
| _,/,\,%,Mod,Div, :_,:/,:\,SHL,SHR,ROL,ROR | 4 |
| +,-,\|,:\|,union,union2,Intersect,Outersect,Minus,.\|,.\|\|,.&,.&&, ->,.^,正号+,负号- | 5 |
| IS,IN,Like,=,<,>,>=,<=,<>,.=,.<>,.>=,.<=,.<,.>,<br>:>, :<,:<>,:==,:>=,:<=,::>,::<,::<>,::==,::>=,::<= | 6 |
| And,Or | 7 |
| : | 8 |
| :=, +=, -=, _=, /=, \=, ^=, ~=, %=, div=, \|=, :\|=, union2=, intersect=, Outersect=, Minus=, &=, :_=, :/=, :\=, :^=, ::=, ::, .\|=, .&=, .\|\|=, .&&=, .^= | 9 |
| @ | 10(最低) |
值得注意的是,虽然 TSL 语言的算符和 Pascal 语言在很多方面相似,但是算符的优先级却不尽相同,有一个很典型的例子:
@ -3024,6 +3069,7 @@ TSL 提供的布尔表达式可以含有逻辑运算和关系运算。
```tsl
return (a := 1, b := 2, c := 3, a + b + c);
```
这个语句先对 a 赋值,在对 b 赋值,接下来是 c最后执行 a+b+c。类似于
```tsl
@ -3032,27 +3078,30 @@ b := 2;
c := 3;
return a + b + c;
```
也支持作为表达式参与计算,如:
```tsl
A := (b := 2, c := 3, b * c) * c;
```
这个结果是 2*3*3 结果为 18
#### 链式表达式
TSL 语言中目前支持的关系运算符:
| 关系运算符 | 大于 | 小于 | 不等于 | 等于 | 大于等于 | 小于等于 | 说明 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 标量关系算符 | > | < | <> | = | >= | <= | 非链式a<b<c相当于(a<b)<c |
| 标量链式算符 | :> | :< | :<> | :== | :>= | :<= | 链式a:<b:<c相当于(a<b) and (b<c) |
| 矩阵关系算符 | .> | .< | .<> | .= | .>= | .<= | 非链式a.<b.<c相当于(a.<b).<c |
| 矩阵链式算符 | ::> | ::< | ::<> | ::== | ::>= | ::<= | 链式a::<b::<c相当于(a.<b) .&& (b.<c) |
| 关系运算符 | 大于 | 小于 | 不等于 | 等于 | 大于等于 | 小于等于 | 说明 |
| ------------ | ---- | ---- | ------ | ---- | -------- | -------- | -------------------------------------- |
| 标量关系算符 | > | < | <> | = | >= | <= | 非链式a<b<c相当于(a<b)<c |
| 标量链式算符 | :> | :< | :<> | :== | :>= | :<= | 链式a:<b:<c相当于(a<b) and (b<c) |
| 矩阵关系算符 | .> | .< | .<> | .= | .>= | .<= | 非链式a.<b.<c相当于(a.<b).<c |
| 矩阵链式算符 | ::> | ::< | ::<> | ::== | ::>= | ::<= | 链式a::<b::<c相当于(a.<b) .&& (b.<c) |
```tsl
// 注:由于:=是赋值符号,因此链式算符等于符为:==;由于::=是循环赋值等于符号,因此矩阵链式等于为::==
```
##### 标量链式算符
链式比较表达式形式:`a :< b :< c` `x :== y :>`
@ -3126,6 +3175,7 @@ TSL 还可以支持混用 fmarray 和 array 以及标量
S := "AAABBB";
S1 := S[3:4];
```
S1 的结果为"AB",为第三个字符到第四个字符的值。
#### 字符串替换子串 StringValue[StartIndex:EndIndex]:=SubString
@ -3136,6 +3186,7 @@ S1 的结果为"AB",为第三个字符到第四个字符的值。
S := "AAABBB";
S[3:4] := "111";
```
S 的结果为"AA111BB"
含义是替换掉第三个字符到第四个字符的值为"111"。
@ -3149,6 +3200,7 @@ S := "AAABBB";
S[3:4] := "";
S 的结果则为"AABB";
```
#### 字符串插入子串 StringValue[Index:0]:=SubString
假定我们要在指定的位置插入字符串,我们可以采用类似于替换的方法,但是结束索引号设置为 0例如
@ -3157,6 +3209,7 @@ S 的结果则为"AABB";
S := "AAABBB";
S[4:0] := "111";
```
S 的结果为"AAA111BBB"
含义是在第四个字符的位置插入"111"
@ -3271,6 +3324,7 @@ end;
```tsl
with [S => StockID, T => Time] do <statements>;
```
例如:
```tsl
@ -3281,6 +3335,7 @@ begin
diff := close_value - ref_close;
end;
```
其工作原理如下:
先根据 S 和 T 设置当前的股票和日期,然后执行 DO 后的语句,执行完后恢复股票和日期的环境。

View File

@ -169,6 +169,7 @@ B := case <Expression> of
<情况标号表 1> : 表达式 1;
<情况标号表 2> : 表达式 2;
```
…(其它的与普通用法一致)
范例:
@ -573,16 +574,16 @@ MTOC
默认 MTOC 和上次 MTIC 匹配,但是也可以指定某个 MTIC 的返回来计算时间
```tsl
T1 :=
T1 :=
MTIC
;
for i := 0 to 9999 do A++;
TE1 :=
TE1 :=
MTOC(T1)
;
MTIC;
for j := 0 to 9999 do A++;
TE2 :=
TE2 :=
MTOC(T1)
;
return array(TE1, TE2,

View File

@ -160,6 +160,7 @@ begin
return a + b;
end;
```
这样运行的结果和上边的一摸一样TSL 用 in 或者 const 表示送入的为值(形参),而用 out 或者 var 表示送入的为引用(实参)。
既然上边说到了 TSL 语言默认都是实参,为什么还多此一举加入了 out,var 前缀呢?
@ -251,6 +252,7 @@ b := 3;
```
结果:由于 b 未声明,`b := 3` 处会报错。
#### 函数返回以及退出
return
@ -266,6 +268,7 @@ EXIT
```tsl
定义FunctionName([a, [b, [c ...]]] ...);
```
其中a,b,c,表示已定义的参数,...表示不定个数的参数,不限个数,在调用时进行定义。
即支持定义如FuncA(a,b,...)、FuncA(...)等。
@ -642,6 +645,7 @@ begin
echo ##fun(5, 6);
end;
```
注:匿名函数也可以直接在函数参数中直接定义。
例如:
@ -652,6 +656,7 @@ begin
return x + y;
end);
```
### ##匿名函数以及函数指针的调用
#### A(1,2)代表 A 的类型是一个匿名函数或者函数指针类型,调用这个匿名函数或者函数指针代表的函数,送入 12 两个参数。
@ -661,6 +666,7 @@ A(1,2)则表示 A 是一个名字为 A 的函数。
```tsl
B := FindFunction("A"); // FindFunction 可以查找函数并返回该函数的指针。
```
## B(1,2)的运行过程等同于 A(1,2)
### ::指定调用全局函/单元函数
@ -738,6 +744,7 @@ TSL 调用动态库的函数申明基本与 PASCAL 的申明方式相同。
function GetTickCount():Integer; stdcall; external"kernel32.dll"name
"GetTickCount"KeepResident;
```
Stdcall是调用方式对于操作系统库基本是 STDCALL而 C++开发的动态库则是 CDECL
External后接包含动态库名称的常量也可以包含完整路径应注意\的转义)
@ -783,9 +790,11 @@ TSL 调用外部函数指针
##### TSL 调用外部动态库的函数
语法Function newFuncName(p1:DataType;p2:Datetype;…):returnType;external
```tsl
FuncDLL name FuncName;
```
其中,多个参数用;隔开,注意每个参数的参数类型要与原函数对应
returnType是函数返回结果数据类型
@ -816,6 +825,7 @@ function TSstrtofloat(s:string):double;external"tslkrnl.dll"name"TS_strtofloat";
TSLfunPointer := function(p1:DataType;p2:Datetype;…):return type;external
funcPointer;
```
其中funcPointer 为外部函数指针TSLfunPointer 为返回结果,即为天软函数指针。
范例:
@ -858,12 +868,14 @@ Windows 的 API 使用 stdcall 模式。
function TS_strtofloat(s:string):double;external"tslkrnl.dll"name
"TS_strtofloat";
```
等同于:
```tsl
function TS_strtofloat(s:string):double;cdecl;external"tslkrnl.dll"name
"TS_strtofloat";
```
除了 Win32 以外,每种 CPU 架构下只有一套标准调用模式,不需考虑是 stdcall 还是 cdecl。目前只有 Win32 还需要考虑调用方式的申明。
##### 申明函数时使用常量/常量计算结果指定动态库名称

View File

@ -205,6 +205,7 @@ Unit_DfParamsDemo End.
```tsl
unit 的使用具有代码重用,信息隐藏的优势。一个单元的 interface 中的所有标识符(函数,类等)对于使用该 unit 的任何程序都是可用的,而这些标识符的实现部分都隐藏在相应的 unit 中(implementation 部分)。调用者只需要知道接口部分的语法,利用 unit 中的公有方法unit 中的内部运行机制并不是调用者需要关心的,只在 implementation 中定义而不在 interface 定义的内容是不能被 unit 的引用者访问的。
```
一个例子:
```tsl
@ -291,11 +292,13 @@ implementation 中声明的变量或常量,只能被当前 unit 单元内的
```tsl
// 如定义变量 UA,UCvar UA,UC;
```
常量的定义:由关键字 Const 开头,后面接常量,具体用法可参考:常量及常量成员的定义与初始化
```tsl
// 如定义一个常量const UcA=100;
```
外部对单元变量或常量的引用findfunction(UnitName).UnitA
示例:
@ -565,6 +568,7 @@ WEB 端、客户端、命令行解释器端funcext 目录存在于 tslinterp.
NameSpace "NameSpaceName";
FunctionName();
```
当在使用 WEB 开发或者命令行解释器开发的时候,可以在 .tsl 文件的当前路径下创建
`tsl.conf` 文件,并在其中:

View File

@ -313,6 +313,7 @@ TSL 继承的实现方式是:声明类类型时,在 `class` 后的括号中
```tsl
type MyClass = class(BaseClass1[, BaseClass2, ...]);
```
以上代码定义了一个叫做 myClass 的类,它继承自 BaseClass1、BaseClass2 列表。这样我们称 MyClass 为子类BaseClass1BaseClass2…为 MyClass 的基类或父类。也可以叫祖先类.
子类 MyClass 将获得基类(BaseClass1、BaseClass2、…)的所有非私有数据和行为,此外新类可以为自己定义新的数据和行为进行扩展,也可以重新定义基类中的行为.
@ -339,6 +340,7 @@ begin
obj.F1();
end;
```
说明:类 `B` 继承了类 `A` 的方法 `F1`,不需要重复定义。
如果子类的多个基类都有同样的方法,在子类中调用这个方法时需要为这个方法指定具体的父类,方法为在调用的方法前面加上 Class(基类名称).
@ -429,7 +431,7 @@ TSL 成员(包括字段、方法、属性)默认的作用域是 public。
```tsl
type
MyClass :=
MyClass :=
class
(BaseClass)
private
@ -570,12 +572,14 @@ end;
```tsl
class(Thuman).mCount; // 不用实例化来进行调用
```
```tsl
obj := new Thuman(); // 用实例化来进行调用
obj.mCount;
```
#### const 常量成员
常量成员定义的值可以是一个常数也可以是常量参与的计算。具体定义与支持的运算符可参考常量及常量成员的定义与初始化
@ -818,7 +822,7 @@ function Method1(s, a, b); override;
begin
Inherited; // 优先调用父类中Method1(s,a,b)方法,找不到不报错
s := s + "->SubClass";
s2 :=
s2 :=
Inherited Method2(a, b); // 指定调用父类中的Method2(a,b)方法,找不到会报错
s := s + "->" + s2;
return s;
@ -976,7 +980,7 @@ begin
end;
end;
type Ellipse = class(Figure)
function Draw(); //
function Draw(); //
// 注意没有override
begin
Writeln("draw Ellipse");
@ -1061,6 +1065,7 @@ end.
```tsl
function Create()
```
TSL 总是为一个类生成默认的公有(public)的 create 方法, 如果显式没有为类声明 public
create对象初始化时就使用默认的 create 方法,如果用户声明了 public
create 方法对象初始化时就执行用户定义的方法。Create 不可以声明为私有(private)的和受保护(protected)的方法,否则对象初始化时不执行自己声明的方法.
@ -1104,6 +1109,7 @@ end.
```tsl
// 调用 class(BaseClass).Create();
```
#### 析构函数
对象销毁时候执行的方法。声明一个析构函数就像声明一个一般的函数,必须以关键字 Destroy 命名的函数,且无参数,当对象释放时会自动调用。
@ -1111,6 +1117,7 @@ end.
```tsl
function destroy();
```
#### 指定类
如果要指定执行某个类中的方法,需要用 Class 指定类名。
@ -1121,11 +1128,13 @@ function destroy();
class(ClassName).FunctionName;
// 表示执行类 ClassName 中的方法 FunctionName;
```
如果是对实例对象,希望实例对象执行某个祖先类的方法,格式为:
```tsl
class(ClassName, ObjectName).FunctionName;
```
表示实例对象 ObjectName 执行祖先类 ClassName 的 FunctionName 方法。
#### Self
@ -1145,6 +1154,7 @@ class(ClassName, ObjectName).FunctionName;
```tsl
self.functionName();
```
编译器会自动匹配所调用的方法Self 方法一般可以省略。
有一点注意的是:
@ -1187,6 +1197,7 @@ AA.F(); // 输出 A.F2;
// 创建了类型 A 的实例对象F()中的 Self.F2(),表示调用的是类型 A 的 F2();
BB := CreateObject("B");
```
BB.F();//输出 B.F2()
以上代码创建了类型 B 的实例对象,F()中的 Self.F2()表示调用类型 B 的 F2()
@ -1196,6 +1207,7 @@ Self 的这种特性在某些情况下会出现理解上的歧义,如果想固
```tsl
// 以上代码中的 Self.F2()需要换成 class(A).F2();
```
那么以上代码输出
A.F2
@ -1270,6 +1282,7 @@ end;
```tsl
class(类名).类方法
```
示例:
上例中,可以
@ -1277,6 +1290,7 @@ class(类名).类方法
```tsl
class(ClassName).FuncName();
```
注:
一个类方法也可以被当作实例方法使用,使用方法和实例方法完全一样。方法的内部也可以调用实例的字段、属性和方法,如果方法调用了这样的数据或方法,就不能当作类方法使用了,否则的话会出错。
@ -1306,6 +1320,7 @@ property Components: DocxComponentsFacade read components_;
```tsl
2、PropertyName 是自定义合法的属性名,可以带参数,写法如 PropertyName(a, b);
```
3、每个属性至少有一个读限定符或一个写限定符或两者都有它们称为访问限定符具有以下的格式:
read fieldOrMethod
@ -1463,6 +1478,7 @@ property idx0 index"High school"read rindex write windex;
```tsl
class(类名)或者 FindClass(类名字符串)可以获得一个类的类型。
```
CreateObject 支持通过指定类的类型创建实例。
如:
@ -1472,13 +1488,13 @@ obj1 := new T1();
Echo obj1
is class(T1)
; // 判断对象是否是指定类的实例
C1 :=
C1 :=
findclass("t1")
; // 获取指定类的类型
Echo obj1
is C1
;
obj2 :=
obj2 :=
CreateObject(C1)
; // 通过指定类的类型创建实例
```
@ -1494,6 +1510,7 @@ CreateObject(C1)
```tsl
classA := FindClass("A");
```
classA 指向了类 A可以通过 ClassA 调用 A 的共享方法。但是不能调用实例方法,因为 ClassA 没有指向实例对象。
```tsl
@ -1714,7 +1731,6 @@ funcC := findfunction("add", class(TestClass01));
return TSLObjects(0);
```
范例 02获取当前运行环境下所有对象信息以及原对象并通过该结果访问其属性、方法
```tsl
@ -1731,7 +1747,6 @@ t2 := newObjB.add(3, 4);
return array(v1, v2, t1, t2);
```
#### FindFunction
在对象或类中查找方法:
@ -1772,11 +1787,13 @@ begin
F2.do();
end.
```
#### ThisFunction
```tsl
F := ThisFunction(Object or class.function);
```
查找方法的又一个方法;参数格式为:
1. 对象名.方法名,如果创建了对象,可用这种方法。
@ -1805,6 +1822,7 @@ begin
F2.do();
end.
```
#### FunctionInfo
调用方法:
@ -1813,25 +1831,25 @@ end.
获取函数的信息。返回存放函数信息的字符串下标数组。
| 下标 | 数据类型 | 描述 |
| --- | --- | --- |
| functionname | String | 方法名 |
| parameter | Array | 方法参数 |
| returntype | Stirng | 函数返回值 |
| returndim | Integer | 数组的维度,0表示不是数组 |
| calltype | Integer | 调用类型 |
| classname | Stirng | 所在的类名 |
| 下标 | 数据类型 | 描述 |
| ------------ | -------- | ------------------------ |
| functionname | String | 方法名 |
| parameter | Array | 方法参数 |
| returntype | Stirng | 函数返回值 |
| returndim | Integer | 数组的维度,0表示不是数组 |
| calltype | Integer | 调用类型 |
| classname | Stirng | 所在的类名 |
其中parameter 下标所对应的数组也是字符串下标数组。
下标
| 下标 | 数据类型 | 描述 |
| --- | --- | --- |
| nme | String | 参数名称 |
| tpe | String | 参数类型 |
| dm | Integer | 数组的维度 |
| out | Integer | |
| 下标 | 数据类型 | 描述 |
| ---- | -------- | ---------- |
| nme | String | 参数名称 |
| tpe | String | 参数类型 |
| dm | Integer | 数组的维度 |
| out | Integer | |
注意:
@ -2045,8 +2063,8 @@ begin
FMoneyMX := array();
FMoneyMX[0]["时间"] := datetimetostr(now()); // 初始资产
FMoneyMX[0]["当前余额"] := v; // 初始资产
FMoneyMX[0]["出金"] := 0; //
FMoneyMX[0]["入金"] := 0; //
FMoneyMX[0]["出金"] := 0; //
FMoneyMX[0]["入金"] := 0; //
FlastR := -1;
FnewR := 0;
end;
@ -2215,6 +2233,7 @@ array(2,3,4,1000,6)
```tsl
c := b++;后:
```
c.data:
array(2,3,4,1000,6)
@ -2230,6 +2249,7 @@ array(3,4,5,1001,7)
```tsl
// 在单元中的类,可通过 obj:=new Unit1.Class1.Class2()的方式进行构建
```
通过 Type ClassA=Class(Unit1.Class1.Class2...)模式进行继承
#### 继承单元中的类
@ -2247,6 +2267,7 @@ ClassA=Class(Unit1.Class1.Class2...)模式来定义类Class 中包含“单
type ClassA = class(Unit1.Class1.Class2, OtherClass)
end;
```
例如:`type ClassA = class(Unit1.Class1.Class2)` 表示 ClassA 直接继承单元 Unit1 中 Class1 内部定义的嵌套类 Class2。
书写时需注意,必须完整、准确的指定从单元名到最终类名的全部路径,否则会执行失败。
@ -3080,28 +3101,28 @@ return array(
TCipher 类用于多重对称加密算法,其支持的算法有:
| mode | 算法名 | 密钥长度(字节) | IV长度字节 |
| --- | --- | --- | --- |
| 1 | DES_ECB | 8 | 0 |
| 2 | DEC_CBC | 8 | 8 |
| 3 | DES_CFB | 8 | 8 |
| 4 | DES_OFB | 8 | 8 |
| 5 | IDEA_ECB | 16 | 0 |
| 6 | IDEA_CBC | 16 | 8 |
| 7 | IDEA_CFB | 16 | 8 |
| 8 | IDEA_OFB | 16 | 8 |
| 9 | AES_128_ECB | 16 | 0 |
| 10 | AES_128_CBC | 16 | 16 |
| 11 | AES_128_CFB | 16 | 16 |
| 12 | AES_128_OFB | 16 | 16 |
| 13 | AES_192_ECB | 24 | 0 |
| 14 | AES_192_CBC | 24 | 16 |
| 15 | AES_192_CFB | 24 | 16 |
| 16 | AES_192_OFB | 24 | 16 |
| 17 | AES_256_ECB | 32 | 0 |
| 18 | AES_256_CBC | 32 | 16 |
| 19 | AES_256_CFB | 32 | 16 |
| 20 | AES_256_OFB | 32 | 16 |
| mode | 算法名 | 密钥长度(字节) | IV长度字节 |
| ---- | ----------- | ---------------- | -------------- |
| 1 | DES_ECB | 8 | 0 |
| 2 | DEC_CBC | 8 | 8 |
| 3 | DES_CFB | 8 | 8 |
| 4 | DES_OFB | 8 | 8 |
| 5 | IDEA_ECB | 16 | 0 |
| 6 | IDEA_CBC | 16 | 8 |
| 7 | IDEA_CFB | 16 | 8 |
| 8 | IDEA_OFB | 16 | 8 |
| 9 | AES_128_ECB | 16 | 0 |
| 10 | AES_128_CBC | 16 | 16 |
| 11 | AES_128_CFB | 16 | 16 |
| 12 | AES_128_OFB | 16 | 16 |
| 13 | AES_192_ECB | 24 | 0 |
| 14 | AES_192_CBC | 24 | 16 |
| 15 | AES_192_CFB | 24 | 16 |
| 16 | AES_192_OFB | 24 | 16 |
| 17 | AES_256_ECB | 32 | 0 |
| 18 | AES_256_CBC | 32 | 16 |
| 19 | AES_256_CFB | 32 | 16 |
| 20 | AES_256_OFB | 32 | 16 |
##### TCipher 类的属性
@ -3204,7 +3225,6 @@ end;
return r;
```
###### StringsW
- Values
@ -3264,7 +3284,6 @@ obj.ValueFromIndex(1) := "888"; // 写入即给指定位置的value重新赋
return array(s0, obj.DelimitedText);
```
###### TextW
- Values
@ -3435,7 +3454,6 @@ obj.CommaText := 'ABC,12,"3,a""bc"';
return array(obj.strings(0), obj.strings(1), obj.strings(2));
```
###### DelimitedText
范例
@ -3456,7 +3474,6 @@ for i := 0 to SN - 1 do r[i] := obj.strings(i);
return r;
```
###### Names
范例
@ -4089,7 +4106,6 @@ obj.GetStrings(getObj);
return getObj.GetText();
```
###### SetStrings
范例
@ -4119,7 +4135,6 @@ obj.GetStrings(getObj);
return getObj.GetText();
```
##### TMemIniFile 的属性
###### CaseSensitive
@ -4153,7 +4168,6 @@ t2 := obj.ReadString("test", "string", ""); // 大小写不一致
return array(t1, t2);
```
#### TRegistryIniFile 对象
参考TIniFile 对象
@ -4492,6 +4506,7 @@ Session 管理器,可以用来在 WEB 服务器端存贮信息,例如存贮
```tsl
TSessionMan 对象的创建方法CreateObject("TSessionMan");
```
##### TSessionMan 的方法
###### NewSession
@ -4841,7 +4856,6 @@ if ret then return msg;
else return "获取指定邮件前3行内容失败";
```
###### RetrieveMsgSize
范例
@ -4880,7 +4894,6 @@ if ret then return msg.asstring;
else return "获取指定邮件内容失败!";
```
###### RetrieveHeader
范例 01获取指定邮件头部信息
@ -4893,7 +4906,6 @@ if ret then return msg.asstring;
else return "获取指定邮件内容失败!";
```
###### RetrieveRaw
范例 01获取指定邮件的原始内容
@ -4906,7 +4918,6 @@ if ret then return msg;
else return "获取指定邮件内容失败!";
```
###### UIDL
范例
@ -4951,7 +4962,6 @@ pop3Obj := new pop3("pop3.tinysoft.com.cn", "username", "password");
return := pop3Obj.CAPA();
```
##### Pop3 对象属性
###### AuthType

File diff suppressed because it is too large Load Diff

View File

@ -32,6 +32,7 @@
```tsl
R[i] := #函数名(参数…) with array(系统参数列表…) timeout N;
```
其中with 语句可指定网格运算子程中的系统参数,此输入可省
timeout
@ -353,6 +354,7 @@ begin
SetGlobalCache(Cache, V);
end;
```
但这样存在几个问题:
一是全局缓存的设置是需要权限的,一旦采用这样的模式,代码只能运行在高权限下。
@ -368,6 +370,7 @@ begin
SetGlobalCache(Cache, V);
end;
```
我们需要在 IsDataNeedReCalc 里来检查诸如外部数据的版本是否发生了变更等工作,往往这种检查对事件的耗费远远大于全局缓存的获取,这样又会影响到用户模型的效率。
##### 期望的方式
@ -377,6 +380,7 @@ end;
```tsl
if not GetGlobalCache(CacheName, V) then V := CalcDataCall();
```
由于全局缓存系统管了生成,所以我们只需要取即可,如果系统未生成,我们直接进入计算模式。
##### 不推荐的模式
@ -384,6 +388,7 @@ if not GetGlobalCache(CacheName, V) then V := CalcDataCall();
```tsl
GetGlobalCache(CacheName, V);
```
有的开发者会在升级应用后,将取数程序变成了最简单的模式,假设缓存的获得会成功,这样在项目实施中并无不可,假设数据的初始化和数据变更确定性由系统其他部分完成了,这样也带来了数据底层来源和上层应用分离的优势。
但在产品开发中,我们并不推荐如此模式,因为这样会带来了新的问题。
@ -497,4 +502,5 @@ Automonthreads 设置的是启动的监控管理线程的数量。
```tsl
// 如果初始化和监控 TSL 需要调用内外部的 TSL 函数来进行数据准备,设计者推荐用户采用 data:=sudo("modeluser",getcalcdata())的模式来进行数据的一些准备工作,因为 GetCalcData()这类的函数往往不需要任何特殊权限,这样可以最大限度地防止非授权代码的运行。
```
如果我们仅仅只是利用初始化和监控进行一些系统性操作,设计者强烈建议不需要使用一些中间函数,将除了二进制函数外的实现直接在.TSL 里完成,这样做可以让这些代码可以独立运行。如果无法保障这一点,强烈建议将无需权限运行的内容以 sudo 模式来运行。

View File

@ -45,6 +45,7 @@ TSL 语言中支持复数的表达,虚数单位用 j 表示,记复数 z 为
z := 4 + 3j;
z := complex(4, 3);
```
即表示 z 是一个实部为 4虚部为 3 的复数。
复数在客户端中的显示如下:
@ -98,11 +99,13 @@ return datatype(z);
z1 := 4 + 3j;
z2 := 5 + 12j;
```
加法:
```tsl
return z1 + z2;
```
返回9.0+15.0j
减法:
@ -110,6 +113,7 @@ return z1 + z2;
```tsl
return z2 - z1;
```
返回1.0+9.0j
乘法:
@ -117,6 +121,7 @@ return z2 - z1;
```tsl
return z1 * z2;
```
返回:-16.0+63.0j
除法:
@ -124,44 +129,44 @@ return z1 * z2;
```tsl
return z2 / z1;
```
返回2.24+1.32j
##### 复数支持的算符列表
基础运算符(与实数一致):
| 运算符 | 说明 | 示例 |
| --- | --- | --- |
| + | 加 | `1+2j + (2+3j)` |
| - | 减,负号 | `2+3j - (3+1j)` |
| * | 乘 | `(2+3j) * (3+1j)` |
| / | 除 | `(2+3j) / (3+1j)` |
| \\ | 左除 | `(3+1j) \\ (2+3j)` |
| ~ | 求对数 | `(8+6j) ~ (3+1j)` |
| ^ | 求幂 | `(3+1j)^2` |
| ! | 求倒数 | `!(3+1j)` |
| ++ | 自增 | `(a := 3+1j, a++, a)` |
| -- | 自减 | `(a := 3+1j, a--, a)` |
| = | 等于 | `(0+2j) = 2j` |
| <> | 不等 | `(0+2j) <> 2j` |
| $ | 字符串转换与拼接 | `(3+2j)$"A"` |
| like | 相似判定 | `3.55+4.16j like 3.55` |
| 运算符 | 说明 | 示例 |
| ------ | ---------------- | ---------------------- |
| + | 加 | `1+2j + (2+3j)` |
| - | 减,负号 | `2+3j - (3+1j)` |
| \* | 乘 | `(2+3j) * (3+1j)` |
| / | 除 | `(2+3j) / (3+1j)` |
| \\ | 左除 | `(3+1j) \\ (2+3j)` |
| ~ | 求对数 | `(8+6j) ~ (3+1j)` |
| ^ | 求幂 | `(3+1j)^2` |
| ! | 求倒数 | `!(3+1j)` |
| ++ | 自增 | `(a := 3+1j, a++, a)` |
| -- | 自减 | `(a := 3+1j, a--, a)` |
| = | 等于 | `(0+2j) = 2j` |
| <> | 不等 | `(0+2j) <> 2j` |
| $ | 字符串转换与拼接 | `(3+2j)$"A"` |
| like | 相似判定 | `3.55+4.16j like 3.55` |
赋值运算符:
| 运算符 | 说明 | 示例 |
| --- | --- | --- |
| += | 加等于 | `(a := 3+1j, a += 2+3j, a)` |
| -= | 减等于 | `(a := 3+1j, a -= 2+3j, a)` |
| *= | 乘等于 | `(a := 3+1j, a *= 2+3j, a)` |
| /= | 除等于 | `(a := 2+3j, a /= 3+1j, a)` |
| \\= | 左除等于 | `(a := 3+1j, a \\= 2+3j, a)` |
| ^= | 幂等于 | `(a := 3+1j, a ^= 2, a)` |
| ~= | 对数等于 | `(a := 8+6j, a ~= 3+1j, a)` |
| 运算符 | 说明 | 示例 |
| ------ | -------- | ---------------------------- |
| += | 加等于 | `(a := 3+1j, a += 2+3j, a)` |
| -= | 减等于 | `(a := 3+1j, a -= 2+3j, a)` |
| \*= | 乘等于 | `(a := 3+1j, a *= 2+3j, a)` |
| /= | 除等于 | `(a := 2+3j, a /= 3+1j, a)` |
| \\= | 左除等于 | `(a := 3+1j, a \\= 2+3j, a)` |
| ^= | 幂等于 | `(a := 3+1j, a ^= 2, a)` |
| ~= | 对数等于 | `(a := 8+6j, a ~= 3+1j, a)` |
矩阵与集合相关的运算符与示例见 06 扩展语法(矩阵/集合)章节。
#### 相关模型
##### 复数生成
@ -280,118 +285,115 @@ A := array(1 + 2j, 2.5 + 3j);
A: := real(mcell);
return A;
```
返回的结果为array(1.0,2.5)
###### 复数支持的常用函数列表
| No | 函数名 | 功能 | 举例 |
| --- | --- | --- | --- |
| 1 | Complex | 构建复数或复数矩阵 | Complex(1,2)返回1+2j |
| 2 | IfComplex | 判断是否为复数 | IfComplex(1+2j)返回1 |
| 3 | Datatype | 判断数据类型 复数的编号为41 | Datatype(1+2j)返回41 |
| 4 | real | 取实部 | 如real(2.5+3.2j)返回实数2.5 |
| 5 | Imag | 取虚部 | 如Imag(2.5+3.2j)返回实数3.2 |
| 6 | Conj | 共轭复数 | 如Conj (2.5+3.2j)返回2.5-3.2j |
| 7 | Abs | 取模 | 如Abs(3+4j)返回复数的模5 |
| 8 | Minit | 初始化FMArray | 如Minit(3,1+2j) |
| 9 | Minitdiag | 对角矩阵初始化FMArray | 如MinitDiag(3,3,1+0j); |
| 10 | Sqr | 求平方 | 如Sqr(3+1j) |
| 11 | Sqrt | 求平方根 | 如sqrt(5+12j) |
| 12 | dupValue | 复制值 | 如dupValue(2+1j) |
| 13 | Integer | 强制转换为整数 | 如Integer(3.33+2.5j)结果为3 |
| 14 | Int64 | 对实部进行取整 | int64(2.5+1.6j)返回2 |
| 15 | log10 | 以10为底的对数 | 如log10(2+1j) |
| 16 | Log2 | 以2为底的对数 | 如log2(2+1j) |
| 17 | LogN | 以指定N为底的对数 | 如LogN(3,2+1j) |
| 18 | Int | 将实部与虚部保留整数部分 | int(2.5+1.6j) 返回2.0+1.0j |
| 19 | Frac | 对实部与虚部进取小数部分 | Frac(6.4-3.2j)返回0.4-0.2j |
| 20 | Ceil | 对实部与虚部进行向上取整 | Ceil(6.1+3.5j)结果为7.0+4.0j |
| 21 | Ceil32 | 对实部与虚部进行向上取整 | Ceil32(6.1+3.5j)结果为7.0+4.0j |
| 22 | Ceil64 | 对实部与虚部进行向上取整 | Ceil64(6.1+3.5j) 结果为7.0+4.0j |
| 23 | Floor | 对实部与虚部进行向下取整 | Floor(6.1+3.5j)结果为6.0+3.0j |
| 24 | Floor32 | 对实部与虚部进行向下取整 | Floor32(6.1+3.5j)结果为6.0+3.0j |
| 25 | Floor64 | 对实部与虚部进行向下取整 | Floor64(6.1+3.5j)结果为6.0+3.0j |
| 26 | Trunc | 对实部与虚部进行近0取整 | Trunc(6.1-3.2j)结果为6.0-3.0j |
| 27 | Trunc32 | 对实部与虚部进行近0取整 | Trunc32(6.1-3.2j)结果为6.0-3.0j |
| 28 | Trunc64 | 对实部与虚部进行近0取整 | Trunc64(6.1-3.2j)结果为6.0-3.0j |
| | 精度相关函数,对实部与虚部分别进行处理 | | |
| 29 | FloatN | 四舍五入 | 如FloatN(2145.3456-1234.3446j,2) 返回2145.35-1234.34j |
| 30 | RoundTo5 | .5处理 | RoundTo5(2.45-21.05j) 返回2.5-21.0j |
| 31 | RoundTo | 四舍五入,银行家算法 | roundto(123.3446-123.3446j,-2) 返回123.34-123.34j |
| 32 | SimpleRoundTo | 四舍五入 | simpleroundto(2154.3456-1246.3456j,2) 返回2200.0-1200.0j |
| 33 | Round | 四舍五入后输出整数,银行家算法 | round(2145.3456-1234.3456j) 返回2145.0-1234.0j |
| 34 | round32 | 四舍五入后输出整数,银行家算法 | round32(6.5+3.5j) 返回6.0+4.0j |
| 35 | round64 | 四舍五入后输出整数,银行家算法 | Round64(6.5+3.5j) 返回6.0+4.0j |
| 36 | simpleround | 四舍五入后输出整数 | simpleround(6.5+3.5j) 返回7.0+4.0j |
| 37 | simpleround32 | 四舍五入后输出整数 | simpleround32(6.5+3.5j) 返回7.0+4.0j |
| 38 | simpleround64 | 四舍五入后输出整数 | Simpleround64(6.5+3.5j) 返回7.0+4.0j |
| | 其它基础函数 | | |
| 39 | IsZero | 在指定精度下是否等于0可用于判断两个值是否相等 | IsZero(0.000001+0.0001j,0.00001)结果为0 |
| 40 | ToStn | 转换成STN字符串 | 如tostn(2.2+3.5j)返回字符串的” 2.2+3.5j” |
| 41 | Stn | 将串转成任意类型 | 如stn(“1+2j”)返回复数1.0+2.0j |
| 42 | Format | 将数值转换成指定格式字符串 | 如Format("%.3f",2.55+4.1j)返回字符串” 2.550+4.100j” |
| 43 | DivValue | 除运算 | 如DivValue(2+3j,3+4j)等同于(2+3j)/( 3+4j) |
| 44 | Eval | 执行表达式 | 如eval(&"2+3.22+3.14j")返回5.22+3.14j |
| 45 | call | 调用函数 | 如call("abs",3-4j) 返回5 |
| 46 | CallInarray | 调用函数 | 如callInarray("abs",array(3-4j))返回5 |
| No | 函数名 | 功能 | 举例 |
| --- | -------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------- |
| 1 | Complex | 构建复数或复数矩阵 | Complex(1,2)返回1+2j |
| 2 | IfComplex | 判断是否为复数 | IfComplex(1+2j)返回1 |
| 3 | Datatype | 判断数据类型 复数的编号为41 | Datatype(1+2j)返回41 |
| 4 | real | 取实部 | 如real(2.5+3.2j)返回实数2.5 |
| 5 | Imag | 取虚部 | 如Imag(2.5+3.2j)返回实数3.2 |
| 6 | Conj | 共轭复数 | 如Conj (2.5+3.2j)返回2.5-3.2j |
| 7 | Abs | 取模 | 如Abs(3+4j)返回复数的模5 |
| 8 | Minit | 初始化FMArray | 如Minit(3,1+2j) |
| 9 | Minitdiag | 对角矩阵初始化FMArray | 如MinitDiag(3,3,1+0j); |
| 10 | Sqr | 求平方 | 如Sqr(3+1j) |
| 11 | Sqrt | 求平方根 | 如sqrt(5+12j) |
| 12 | dupValue | 复制值 | 如dupValue(2+1j) |
| 13 | Integer | 强制转换为整数 | 如Integer(3.33+2.5j)结果为3 |
| 14 | Int64 | 对实部进行取整 | int64(2.5+1.6j)返回2 |
| 15 | log10 | 以10为底的对数 | 如log10(2+1j) |
| 16 | Log2 | 以2为底的对数 | 如log2(2+1j) |
| 17 | LogN | 以指定N为底的对数 | 如LogN(3,2+1j) |
| 18 | Int | 将实部与虚部保留整数部分 | int(2.5+1.6j) 返回2.0+1.0j |
| 19 | Frac | 对实部与虚部进取小数部分 | Frac(6.4-3.2j)返回0.4-0.2j |
| 20 | Ceil | 对实部与虚部进行向上取整 | Ceil(6.1+3.5j)结果为7.0+4.0j |
| 21 | Ceil32 | 对实部与虚部进行向上取整 | Ceil32(6.1+3.5j)结果为7.0+4.0j |
| 22 | Ceil64 | 对实部与虚部进行向上取整 | Ceil64(6.1+3.5j) 结果为7.0+4.0j |
| 23 | Floor | 对实部与虚部进行向下取整 | Floor(6.1+3.5j)结果为6.0+3.0j |
| 24 | Floor32 | 对实部与虚部进行向下取整 | Floor32(6.1+3.5j)结果为6.0+3.0j |
| 25 | Floor64 | 对实部与虚部进行向下取整 | Floor64(6.1+3.5j)结果为6.0+3.0j |
| 26 | Trunc | 对实部与虚部进行近0取整 | Trunc(6.1-3.2j)结果为6.0-3.0j |
| 27 | Trunc32 | 对实部与虚部进行近0取整 | Trunc32(6.1-3.2j)结果为6.0-3.0j |
| 28 | Trunc64 | 对实部与虚部进行近0取整 | Trunc64(6.1-3.2j)结果为6.0-3.0j |
| | 精度相关函数,对实部与虚部分别进行处理 | | |
| 29 | FloatN | 四舍五入 | 如FloatN(2145.3456-1234.3446j,2) 返回2145.35-1234.34j |
| 30 | RoundTo5 | .5处理 | RoundTo5(2.45-21.05j) 返回2.5-21.0j |
| 31 | RoundTo | 四舍五入,银行家算法 | roundto(123.3446-123.3446j,-2) 返回123.34-123.34j |
| 32 | SimpleRoundTo | 四舍五入 | simpleroundto(2154.3456-1246.3456j,2) 返回2200.0-1200.0j |
| 33 | Round | 四舍五入后输出整数,银行家算法 | round(2145.3456-1234.3456j) 返回2145.0-1234.0j |
| 34 | round32 | 四舍五入后输出整数,银行家算法 | round32(6.5+3.5j) 返回6.0+4.0j |
| 35 | round64 | 四舍五入后输出整数,银行家算法 | Round64(6.5+3.5j) 返回6.0+4.0j |
| 36 | simpleround | 四舍五入后输出整数 | simpleround(6.5+3.5j) 返回7.0+4.0j |
| 37 | simpleround32 | 四舍五入后输出整数 | simpleround32(6.5+3.5j) 返回7.0+4.0j |
| 38 | simpleround64 | 四舍五入后输出整数 | Simpleround64(6.5+3.5j) 返回7.0+4.0j |
| | 其它基础函数 | | |
| 39 | IsZero | 在指定精度下是否等于0可用于判断两个值是否相等 | IsZero(0.000001+0.0001j,0.00001)结果为0 |
| 40 | ToStn | 转换成STN字符串 | 如tostn(2.2+3.5j)返回字符串的” 2.2+3.5j” |
| 41 | Stn | 将串转成任意类型 | 如stn(“1+2j”)返回复数1.0+2.0j |
| 42 | Format | 将数值转换成指定格式字符串 | 如Format("%.3f",2.55+4.1j)返回字符串” 2.550+4.100j” |
| 43 | DivValue | 除运算 | 如DivValue(2+3j,3+4j)等同于(2+3j)/( 3+4j) |
| 44 | Eval | 执行表达式 | 如eval(&"2+3.22+3.14j")返回5.22+3.14j |
| 45 | call | 调用函数 | 如call("abs",3-4j) 返回5 |
| 46 | CallInarray | 调用函数 | 如callInarray("abs",array(3-4j))返回5 |
##### 支持复数矩阵的函数列表
除基础函数支持对复数矩阵的操作外,如统计函数、分解函数等也支持复数矩阵的运算,具体列表如下:
| No | 函数名 | 功能 | 与实数处理的差异 | |
| --- | --- | --- | --- | --- |
| 1 | IfComplex | 判断每个元素是否为复数,如 ifComplex(array(2,2j),1) | | |
| 2 | Datatype | 返回每个元素的数据类型的编号,如 Datatype(array(2,2j),1) | | |
| 3 | arraytofm | 将Array数组转成FMarray矩阵 如arraytofm(t,2j) | | |
| 4 | ExportCsv | 将数组转成csv字符串如 ExportCsv(array((2+3j,1+2j),(2,3)),s) | | |
| | ….其它数据类型的判定函数 | | | |
| | 统计函数 | 具体用法请查看官方函数说明 | | |
| 1 | Mean | 求算术平均值 | | |
| 2 | Sum | 求和 | | |
| 3 | sumInt | 对实部和虚部分别求整数部分和 | 算法: sumint(real(a))+sumint(imag(a))*1j | |
| 4 | SumOfSquares | 求数组平方和 | 无 | |
| 5 | Norm | 求数组平方和的平方根 | 在复数的计算中a*conj(a)会替代平方因此Norm的算法为 sqrt(sum(a*conj(a))) 虚部恒为0所以norm仅返回实部的值 | |
| 6 | SumsAndSquares | 计算总和以及平方和 | 无 | |
| 7 | StdDev | 样本标准差 | 算法中计算平方由a*conj(a)替代,其它不变 | |
| 8 | PopnStdDev | 总体标准差 | 算法中计算平方由a*conj(a)替代,其它不变 | |
| 9 | Variance | 样本方差 | 算法中计算平方由a*conj(a)替代,其它不变 | |
| 10 | PopnVariance | 总体方差 | 算法中计算平方由a*conj(a)替代,其它不变 | |
| 11 | TotalVariance | 总体偏差 | 算法中计算平方由a*conj(a)替代,其它不变 | |
| 12 | MeanAndStdDev | 计算平均值和标准差 | 标准差算法同StdDev | |
| 13 | Geomean | 几何平均数 | | |
| 14 | Harmean | 调和平均数 | | |
| 15 | Mode | 众数 | | |
| 16 | AveDev | 均值绝对偏差 | | |
| 17 | DevSq | 样本平均值偏差的平方和 | 算法中计算平方由a*conj(a)替代,其它不变 | |
| 18 | Product | 累乘值 | | |
| 19 | Randomfrom | 从一组数据中随机抽取一个样本 | | |
| 20 | VariationCoefficient | 变异系数 | 算法中计算平方由a*conj(a)替代,其它不变,需等升级 | |
| | 双序列统计函数 | | | |
| 1 | Cov | 协方差 | E[X-ux*Conj(Y-uy)] | |
| 2 | Correl | 相关系数 | Cov与PopnStdDev符合复数运算 | |
| 3 | Slopeandintercept | 回归斜率和截距 | | |
| 4 | Slope | 回归斜率 | | |
| 5 | Intercept | 回归截距 | | |
| 6 | RSQ | 乘积矩相关系数平方 | | |
| 7 | Steyx | 相对标准偏差 | | |
| 8 | BetaAndAlpha | 斜率和截距 | | |
| 9 | MeanAndPopnStdDevWithRate | 带权重总体标准差以及平均值 | | |
| | 矩阵运算及分解 | | | |
| 1 | mt_Transposition | 矩阵转置 | | |
| 2 | mt_Multiplication | 矩阵乘 | | |
| 3 | mt_Addition | 矩阵和 | | |
| 4 | mt_Subtraction | 矩阵差 | | |
| 5 | Mt_decompose_lu | 进行lu分解 函数输出中vi为0wr为复数特征值 | | |
| 6 | Mt_decompose_qr | 对矩阵进行QR分解 | | |
| 7 | Mt_decompose_eig | 特征值及特征向量 | | |
| 8 | Mt_decompose_chol | cholesky分解 | | |
| 9 | Mt_decompose_svd | 进行SVD分解 | 实矩阵验证方式: U :* (eye(n,m)*s) :* `v 复矩阵验证方式: U :* (eye(n,m)*s) :* conj(`v) | |
| 10 | Mt_decompose_ldl | ldl分解 | | |
| No | 函数名 | 功能 | 与实数处理的差异 | |
| --- | ------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --- |
| 1 | IfComplex | 判断每个元素是否为复数,如 ifComplex(array(2,2j),1) | | |
| 2 | Datatype | 返回每个元素的数据类型的编号,如 Datatype(array(2,2j),1) | | |
| 3 | arraytofm | 将Array数组转成FMarray矩阵 如arraytofm(t,2j) | | |
| 4 | ExportCsv | 将数组转成csv字符串如 ExportCsv(array((2+3j,1+2j),(2,3)),s) | | |
| | ….其它数据类型的判定函数 | | | |
| | 统计函数 | 具体用法请查看官方函数说明 | | |
| 1 | Mean | 求算术平均值 | | |
| 2 | Sum | 求和 | | |
| 3 | sumInt | 对实部和虚部分别求整数部分和 | 算法: sumint(real(a))+sumint(imag(a))\*1j | |
| 4 | SumOfSquares | 求数组平方和 | 无 | |
| 5 | Norm | 求数组平方和的平方根 | 在复数的计算中a*conj(a)会替代平方因此Norm的算法为 sqrt(sum(a*conj(a))) 虚部恒为0所以norm仅返回实部的值 | |
| 6 | SumsAndSquares | 计算总和以及平方和 | 无 | |
| 7 | StdDev | 样本标准差 | 算法中计算平方由a\*conj(a)替代,其它不变 | |
| 8 | PopnStdDev | 总体标准差 | 算法中计算平方由a\*conj(a)替代,其它不变 | |
| 9 | Variance | 样本方差 | 算法中计算平方由a\*conj(a)替代,其它不变 | |
| 10 | PopnVariance | 总体方差 | 算法中计算平方由a\*conj(a)替代,其它不变 | |
| 11 | TotalVariance | 总体偏差 | 算法中计算平方由a\*conj(a)替代,其它不变 | |
| 12 | MeanAndStdDev | 计算平均值和标准差 | 标准差算法同StdDev | |
| 13 | Geomean | 几何平均数 | | |
| 14 | Harmean | 调和平均数 | | |
| 15 | Mode | 众数 | | |
| 16 | AveDev | 均值绝对偏差 | | |
| 17 | DevSq | 样本平均值偏差的平方和 | 算法中计算平方由a\*conj(a)替代,其它不变 | |
| 18 | Product | 累乘值 | | |
| 19 | Randomfrom | 从一组数据中随机抽取一个样本 | | |
| 20 | VariationCoefficient | 变异系数 | 算法中计算平方由a\*conj(a)替代,其它不变,需等升级 | |
| | 双序列统计函数 | | | |
| 1 | Cov | 协方差 | E[X-ux*Conj(Y-uy)] | |
| 2 | Correl | 相关系数 | Cov与PopnStdDev符合复数运算 | |
| 3 | Slopeandintercept | 回归斜率和截距 | | |
| 4 | Slope | 回归斜率 | | |
| 5 | Intercept | 回归截距 | | |
| 6 | RSQ | 乘积矩相关系数平方 | | |
| 7 | Steyx | 相对标准偏差 | | |
| 8 | BetaAndAlpha | 斜率和截距 | | |
| 9 | MeanAndPopnStdDevWithRate | 带权重总体标准差以及平均值 | | |
| | 矩阵运算及分解 | | | |
| 1 | mt_Transposition | 矩阵转置 | | |
| 2 | mt_Multiplication | 矩阵乘 | | |
| 3 | mt_Addition | 矩阵和 | | |
| 4 | mt_Subtraction | 矩阵差 | | |
| 5 | Mt_decompose_lu | 进行lu分解 函数输出中vi为0wr为复数特征值 | | |
| 6 | Mt_decompose_qr | 对矩阵进行QR分解 | | |
| 7 | Mt_decompose_eig | 特征值及特征向量 | | |
| 8 | Mt_decompose_chol | cholesky分解 | | |
| 9 | Mt_decompose_svd | 进行SVD分解 | 实矩阵验证方式: U :* (eye(n,m)*s) :_ `v 复矩阵验证方式: U :_ (eye(n,m)_s) :_ conj(`v) | |
| 10 | Mt_decompose_ldl | ldl分解 | | |
##### 复数支持的相关说明
@ -438,12 +440,14 @@ t := array(1, 1 + 2j);
t: := ifComplex(mcell)?mcell:complex(mcell, 0);
return t;
```
第二种:复数重构
```tsl
t := array(1, 1 + 2j);
return complex(real(t), imag(t));
```
转换后结果如下:
转换完成后,就可以进行 sum(t)的操作了。
@ -618,6 +622,7 @@ A---End
```tsl
// 解析B.FA 返回”A”说明 B 引用 A 指向的对象;当 A 设置为 nil 时A 对应的对象被成功释放,即 B:=makeweakref(A);没有导致 A 指向的对象的引用数加 1B 是一个弱引用。
```
##### weakref_get生成强引用定义 2
范例
@ -851,11 +856,13 @@ FB,FC 为非自动弱引用。
```tsl
[WeakRef] x1[, x2, …];
```
指定成员 x1(或 x2 等,多个变量用,隔开)为自动弱引用
```tsl
[AutoRef]x1[, x2, …];
```
指定成员 x1(或 x2 等,多个变量用,隔开)为强引用,一般在弱引用设定环境下使用。
即带[ ]只对当前语句中的变量有效,不带[]就是对段落有效。
@ -874,6 +881,7 @@ type AutoWeakTest2 = class
FOnMouseOver;
end;
```
上面的强引用成员变量有FA、FC、FD。
弱引用成员变量有FB,FB2,FB3,FonClick, FonMouseMove, FonMouseOver。
@ -884,9 +892,11 @@ end;
2 对 property write 指定的成员变量赋值
即,若 property A write
```tsl
B 中B 是弱引用或者 B(v)方法中存在对弱引用的成员变量进行赋值,则在对 A 进行写入时(A := obj)B 此时产生的引用也是弱引用。
```
3 将成员变量作为参数送入 TSL 开发的函数,在函数内对参数赋值
即,在类的方法中将成员变量作为参数送入到被调用的函数中,在函数内对参数赋值
@ -1022,6 +1032,7 @@ Unsupport AutoWeak
```tsl
// 定义:[class] function operator funcNmane([,p1[,p2[,…]]]);
```
说明:其中 class 关键字表示定义为类方法,为可选关键字。
Operator为重载关键字
@ -1137,7 +1148,6 @@ ret := TryStrToInt(c, msg);
return array(ret, msg);
```
可以看到,字符串” 314”成功被转换成整数类型并且结果被赋值给了参数 msg。
##### 对象中对二进制函数重载的应用
@ -1254,6 +1264,7 @@ end;
```tsl
// 定义: function operator for(flag:integer);
```
说明:
Operator为重载关键字
@ -1370,6 +1381,7 @@ in 操作进行重载实现,通过对 flag 的控制,可以实现每次循
```tsl
// 定义:[class] function operator KeyWord([p1[,p2[,…]]]);
```
说明:其中 class 关键字表示定义为类方法,为可选关键字。
Operator为重载关键字
@ -1428,6 +1440,7 @@ array("A","B","C")
```tsl
// 定义function operator KeyWord([p1[,p2[,…]]]);
```
说明:
Operator为重载关键字

View File

@ -9,22 +9,27 @@
## 快速概览
### 数学与计算
- **[数学函数](./tsl/math.md)** (14,396行) - 数值计算、三角函数、统计函数
### 系统与平台
- **[系统相关函数](./tsl/system.md)** (1,647行) - 系统信息、环境变量、进程控制
- **[平台函数](./tsl/platform.md)** (553行) - 平台特定功能
- **[客户端函数](./tsl/client.md)** (409行) - 客户端交互、界面控制
### 基础功能
- **[基础函数](./tsl/base.md)** (10,660行) - 字符串、数组、日期时间、文件操作
- **[图形函数](./tsl/graphics.md)** (698行) - 绘图、图表、可视化
### 资源与交互
- **[资源访问函数](./tsl/resource.md)** (4,897行) - 文件读写、数据库、网络通信
- **[第三方交互函数](./tsl/third_party.md)** (610行) - 第三方库调用、外部程序交互
### 工具函数
- **[压缩和解压函数](./tsl/compression.md)** (108行) - 数据压缩、解压缩
- **[信息摘要及编码](./tsl/digest_encoding.md)** (172行) - 哈希算法、加密、编码转换

View File

@ -9,14 +9,17 @@
## 快速概览
### 行情数据
- **[股票](./financial/stock.md)** (20,893行) - 股票代码、名称、上市信息、交易状态
- **[行情](./financial/market_data.md)** (11,748行) - 实时行情、历史行情、K线数据
- **[指数](./financial/index_data.md)** (2,237行) - 指数数据、指数成分股
### 技术分析
- **[技术分析](./financial/technical_analysis.md)** (11,373行) - 均线、MACD、KDJ、RSI等技术指标
### 资产类别
- **[债券](./financial/bond.md)** (2,827行) - 债券信息、收益率曲线、债券估值
- **[期权](./financial/option.md)** (1,573行) - 期权定价、希腊字母、隐含波动率
- **[基金](./financial/fund.md)** (10,681行) - 基金净值、持仓、业绩
@ -25,19 +28,23 @@
- **[外汇](./financial/forex.md)** (116行) - 汇率、外汇行情
### 财务与基本面
- **[财务分析](./financial/financial_analysis.md)** (46,778行) ⚠️ **最大文件** - 三大报表、财务比率
- **[基本面](./financial/fundamentals.md)** (6,139行) - 公司信息、行业分类、股东结构
- **[宏观](./financial/macro.md)** (789行) - 宏观经济数据、GDP、CPI
### 板块与分类
- **[板块](./financial/sector.md)** (24,819行) ⚠️ **大文件** - 行业板块、概念板块、板块轮动
### 量化分析
- **[金融工程](./financial/financial_engineering.md)** (6,564行) - 风险模型、因子模型、组合优化
- **[组合评价](./financial/portfolio_evaluation.md)** (3,656行) - 绩效评估、风险调整收益
- **[天软因子](./financial/ts_factor.md)** (186行) - 天软自定义因子库
### 工具与框架
- **[框架构造Tools](./financial/framework_tools.md)** (71行) - 策略框架构建工具
- **[网格池](./financial/grid_pool.md)** (301行) - 网格交易、池化管理
- **[日志](./financial/logging.md)** (53行) - 交易日志、事件日志

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -122,24 +122,24 @@ ProxyAuthMode=
#### 异步回调函数以及实时订阅系统参数说明
| 系统参数名 | 类型 | 说明 |
| --- | --- | --- |
| channel | 整数 | 通道ID,和SendExecute返回值一致 |
| recvtype | 整数 | 参阅:服务器返回信息类型 |
| errno | 整数 | 错误号,非0错误 |
| errmsg | 字符串 | 错误信息 |
| result | 订阅为数组类型 | 结果集,订阅为推送类型 |
| 系统参数名 | 类型 | 说明 |
| ---------- | -------------- | ------------------------------ |
| channel | 整数 | 通道ID,和SendExecute返回值一致 |
| recvtype | 整数 | 参阅:服务器返回信息类型 |
| errno | 整数 | 错误号,非0错误 |
| errmsg | 字符串 | 错误信息 |
| result | 订阅为数组类型 | 结果集,订阅为推送类型 |
#### 服务器返回信息类型
| 返回类型 | 值 | 说明 |
| --- | --- | --- |
| 执行函数返回 | 0x0201 | |
| 执行委托函数返回 | 0x0301 | |
| ECHO返回 | 0x0401 | |
| 客户请求返回 | 0x0402 | |
| 实时订阅返回 | 0x0501 | |
| 错误信息返回 | 0 | |
| 返回类型 | 值 | 说明 |
| ---------------- | ------ | ---- |
| 执行函数返回 | 0x0201 | |
| 执行委托函数返回 | 0x0301 | |
| ECHO返回 | 0x0401 | |
| 客户请求返回 | 0x0402 | |
| 实时订阅返回 | 0x0501 | |
| 错误信息返回 | 0 | |
#### EndExecute
@ -205,7 +205,6 @@ rdo2 TSTaskAdmin("oa", CmdReturn, BroadCastMsg, ErrMsg, 3000, 1000);
return CmdReturn;
```
#### SetComputeService
#### GetComputebitsOption

File diff suppressed because it is too large Load Diff

View File

@ -66,7 +66,6 @@ GUI函数目前只能用于本地化执行如WORD模板中以及其他本
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -80,7 +79,6 @@ return rdo2 uiInteger();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -94,7 +92,6 @@ return rdo2 uiBoolean();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -108,7 +105,6 @@ return rdo2 uiString();
参数:无。
返回:日期或时间值。
范例
```tsl
@ -122,7 +118,6 @@ return rdo2 uiDate();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -136,7 +131,6 @@ return rdo2 uiDouble();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -150,7 +144,6 @@ return rdo2 uiMarketList();
参数:无。
返回:整数。
范例
```tsl
@ -164,7 +157,6 @@ return rdo2 uiIndexList();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -178,7 +170,6 @@ return rdo2 uiStockList();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -192,7 +183,6 @@ return rdo2 uiSelfBkList();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -206,7 +196,6 @@ return rdo2 uiSysBkList();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -220,7 +209,6 @@ return rdo2 uiRightStyle();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -234,7 +222,6 @@ return rdo2 uiCycle();
参数:无。
返回:日期或时间值。
范例
```tsl
@ -248,7 +235,6 @@ return rdo2 uiReportDate();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -262,7 +248,6 @@ return rdo2 uiBasicIDList();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -276,7 +261,6 @@ return rdo2 uiUserDefine();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -290,7 +274,6 @@ return rdo2 uiOneDimArray();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -304,7 +287,6 @@ return rdo2 uiTwoDimDoubleArray();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -318,7 +300,6 @@ return rdo2 uiOneDimStringArray();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -332,7 +313,6 @@ return rdo2 uiTwoDimStringArray();
参数:无。
返回:日期或时间值。
范例
```tsl
@ -346,7 +326,6 @@ return rdo2 uiOneDimDateArray();
参数:无。
返回:日期或时间值。
范例
```tsl
@ -360,7 +339,6 @@ return rdo2 uiTwoDimDateArray();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -374,7 +352,6 @@ return rdo2 uiTable();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -388,7 +365,6 @@ return rdo2 uiUserData();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -402,7 +378,6 @@ return rdo2 uiRightDay();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -416,7 +391,6 @@ return rdo2 uiBasicID();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -430,7 +404,6 @@ return rdo2 uiYear();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -444,7 +417,6 @@ return rdo2 uiMonth();
参数:无。
返回:处理后的结果值。
范例
```tsl

View File

@ -105,52 +105,52 @@ tsl --buildexe=TSLDemo01.tsl --output=test01.exe
Windows命令集
| 命令 | 功能说明 | 备注 |
| --- | --- | --- |
| tsl.exe /? | 查看命令列表帮助或TSL /? | 注意/前有一个空格 |
| -COMPILE\|-COMPILEC [/S] [-S] tslfiename | 将tsl/tsf文件编译为二进制格式文件。<br>-COMPILE命令生成的文件后缀为.TSB<br>- COMPILEC命令生成的文件后缀为.TSC<br>可选项<br>/S递归模式即加上该可选命令后会从子目录中查找该函数。默认只在当前目录下查找。<br>-S安静模式不打印执行结果的信息 | 默认生成的文件与原文件同目录,如:<br>Tsl -COMPILE TsfDemo01.tsf<br>作用:编译成二进制文件后,函数与脚本照样可以正常调用,可以用于隐藏源代码。 |
| 编译指令 | | |
| --buildexe=tslfilename | 将指定tsl文件编译成可执行(.exe)文件默认生成文件名为default.exe可执行文件默认图标为tsl编译器图标 | |
| 其可选项 | -buildgui<br>指定编译的可执行文件为Windows UI应用程序 | 默认为控制台应用程序 |
| | --buildico=xxx.ico<br>指定可执行文件的图标 | 默认为TSL.exe的图标 |
| --buildlib=tsl(tsf)filename | 将指定tsl/tsf文件编译成动态库(.dll)文件 | 默认生成文件名为default.dll |
| 其可选项 | `--exports=func1[:exp1][,…]`<br>将指定函数名输出在动态库中 | 指定多个函数用逗号分割 |
| --build=tslfilename | 将指定tsl文件编译成.tsg包文件默认生成文件名为default.tsg | 可以通过函数获取包中资源内容rs:<br>getglobalcache("@@tsl-resource@@",rs) |
| 编译指令的可选项 | --buildexe\|--buildlib\|--build通用的可选项 | |
| --output=filename | 给输出目标指定文件路径与名称 | 默认为<br>default.exe\|default.dll\|default.tsg<br>默认生成在当前路径下 |
| -strong | 编译所有引用,将所有依赖的引用都进行编译<br>缺省为仅编译调用的 | 解决调用了某些动态库不能被检测到的函数。 |
| --depends=fun1,fun2,… | 指定额外需要编译的函数列表 | 多个函数或路径用,分隔 |
| --dependsdir=dir1,dir2,… | 指定额外需要编译的函数路径 | |
| --excludes=fun1,fun2,… | 不编译某些函数 | |
| --resourcedir=foldername | 指定编译资源文件目录 | |
| --resourcepat=pat1,pat2,… | 指定资源文件的匹配串 | 需要搭配--resourcedir=一起使用 |
| -resourcekeepdir | 资源名保留相对路径 | |
| --extresource=filename1<br>[:keyname1],filename2… | 指定额外的资源 | |
| 运行指令 | | |
| --runpkg=packagename | 执行包文件 | 如tsl --runpkg=runpkg.tsg |
| -eval tslstring | 执行TSL脚本串 | 如tsl -eval “inttostr(100)” |
| tslfilename | 执行TSL脚本文件 | 如tsl test.tsl |
| 其可选项 | -LIBPATH | 扩展函数查找路径 |
| | -TESTMULTITHREAD N | 线程调用N为线程数 |
| | -NODEBUGSERVER | 不启用调试服务器 |
| | -DEBUGSERVER | 开启调试服务器 |
| | -DEBUGPORT port | 指定调试监听端口 |
| | -DEBUGLISTEN ip | 指定调试监听地址 |
| | -DEBUGTHREADS N | 指定调试用于网络通信的线程数 |
| | -WAITATTACH | 运行时等待调试程序连接 |
| | -DEBUGLOGIN 1\|0 | 是否需要进行用户登陆 |
| | --data-dir=datapath | 使用指定文件夹中的配置文件 |
| | --pkg=pgk1,pkg2… | 加载指定包中的函数 |
| 其它指令 | | |
| -ENCODE configstring | 生成加密串 | 用于数据库配置串加密 |
| -ENCODEDEBUGPASS | 生成密码串的加密串 | 用于远程调试配置中密码的加密 |
| 命令 | 功能说明 | 备注 |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| tsl.exe /? | 查看命令列表帮助或TSL /? | 注意/前有一个空格 |
| -COMPILE\|-COMPILEC [/S] [-S] tslfiename | 将tsl/tsf文件编译为二进制格式文件。<br>-COMPILE命令生成的文件后缀为.TSB<br>- COMPILEC命令生成的文件后缀为.TSC<br>可选项<br>/S递归模式即加上该可选命令后会从子目录中查找该函数。默认只在当前目录下查找。<br>-S安静模式不打印执行结果的信息 | 默认生成的文件与原文件同目录,如:<br>Tsl -COMPILE TsfDemo01.tsf<br>作用:编译成二进制文件后,函数与脚本照样可以正常调用,可以用于隐藏源代码。 |
| 编译指令 | | |
| --buildexe=tslfilename | 将指定tsl文件编译成可执行(.exe)文件默认生成文件名为default.exe可执行文件默认图标为tsl编译器图标 | |
| 其可选项 | -buildgui<br>指定编译的可执行文件为Windows UI应用程序 | 默认为控制台应用程序 |
| | --buildico=xxx.ico<br>指定可执行文件的图标 | 默认为TSL.exe的图标 |
| --buildlib=tsl(tsf)filename | 将指定tsl/tsf文件编译成动态库(.dll)文件 | 默认生成文件名为default.dll |
| 其可选项 | `--exports=func1[:exp1][,…]`<br>将指定函数名输出在动态库中 | 指定多个函数用逗号分割 |
| --build=tslfilename | 将指定tsl文件编译成.tsg包文件默认生成文件名为default.tsg | 可以通过函数获取包中资源内容rs:<br>getglobalcache("@@tsl-resource@@",rs) |
| 编译指令的可选项 | --buildexe\|--buildlib\|--build通用的可选项 | |
| --output=filename | 给输出目标指定文件路径与名称 | 默认为<br>default.exe\|default.dll\|default.tsg<br>默认生成在当前路径下 |
| -strong | 编译所有引用,将所有依赖的引用都进行编译<br>缺省为仅编译调用的 | 解决调用了某些动态库不能被检测到的函数。 |
| --depends=fun1,fun2,… | 指定额外需要编译的函数列表 | 多个函数或路径用,分隔 |
| --dependsdir=dir1,dir2,… | 指定额外需要编译的函数路径 | |
| --excludes=fun1,fun2,… | 不编译某些函数 | |
| --resourcedir=foldername | 指定编译资源文件目录 | |
| --resourcepat=pat1,pat2,… | 指定资源文件的匹配串 | 需要搭配--resourcedir=一起使用 |
| -resourcekeepdir | 资源名保留相对路径 | |
| --extresource=filename1<br>[:keyname1],filename2… | 指定额外的资源 | |
| 运行指令 | | |
| --runpkg=packagename | 执行包文件 | 如tsl --runpkg=runpkg.tsg |
| -eval tslstring | 执行TSL脚本串 | 如tsl -eval “inttostr(100)” |
| tslfilename | 执行TSL脚本文件 | 如tsl test.tsl |
| 其可选项 | -LIBPATH | 扩展函数查找路径 |
| | -TESTMULTITHREAD N | 线程调用N为线程数 |
| | -NODEBUGSERVER | 不启用调试服务器 |
| | -DEBUGSERVER | 开启调试服务器 |
| | -DEBUGPORT port | 指定调试监听端口 |
| | -DEBUGLISTEN ip | 指定调试监听地址 |
| | -DEBUGTHREADS N | 指定调试用于网络通信的线程数 |
| | -WAITATTACH | 运行时等待调试程序连接 |
| | -DEBUGLOGIN 1\|0 | 是否需要进行用户登陆 |
| | --data-dir=datapath | 使用指定文件夹中的配置文件 |
| | --pkg=pgk1,pkg2… | 加载指定包中的函数 |
| 其它指令 | | |
| -ENCODE configstring | 生成加密串 | 用于数据库配置串加密 |
| -ENCODEDEBUGPASS | 生成密码串的加密串 | 用于远程调试配置中密码的加密 |
Linux命令集
| 命令 | 说明 | 备注 |
| --- | --- | --- |
| TSL /? | 查看命令列表帮助 | 注意TSL后有一个空格 |
| 其它命令参考Windows命令集注意大小写 | | |
| 命令 | 说明 | 备注 |
| ------------------------------------- | ---------------- | ------------------- |
| TSL /? | 查看命令列表帮助 | 注意TSL后有一个空格 |
| 其它命令参考Windows命令集注意大小写 | | |
##### 命令集详细解析
@ -203,9 +203,9 @@ tsl -COMPILE C:\DoTSL\CompileToExe\TsfDemo01.tsf
被编译的文件TsfFuncB.tsf在C:\DoTSL\CompileToExe\AAA目录下命令运行当前路径是在C:\DoTSL\CompileToExe\,执行以下操作进行对比:
| 执行命令 | 结果说明 |
| --- | --- |
| 默认情况下进行编译<br>命令行tsl -COMPILE TsfFuncB.tsf | 执行结果:编译失败,找不到目标文件,原因是默认只在当前路径下查找。 |
| 执行命令 | 结果说明 |
| ------------------------------------------------------------ | -------------------------------------------------------------------- |
| 默认情况下进行编译<br>命令行tsl -COMPILE TsfFuncB.tsf | 执行结果:编译失败,找不到目标文件,原因是默认只在当前路径下查找。 |
| 在递归模式下进行编译<br>命令行tsl -COMPILE /S TsfFuncB.tsf | 执行结果:编译成功,递归模式下,还会在当前目录下的子目录下进行查找。 |
执行具体表现如下:
@ -595,7 +595,7 @@ echo evalData(0);
function evalData(n)
begin
data := data();
ret :=
ret :=
case n of
0:SumVol(data);
1:AvgVol(data);
@ -754,7 +754,6 @@ v := SysGetFuncdepends(obj, 2 + 4 + 8, v1, v2);
return array("依赖的函数信息":v, "二进制函数信息":v1, "二进制类信息":v2);
```
其中,依赖的函数信息结果截图如下:
二进制函数信息截图如下:

File diff suppressed because it is too large Load Diff

View File

@ -47,6 +47,7 @@ Tsl脚本可以以纯cgi的模式执行也可以用Apache 1.x, 2.x的Module
以下是各类WEB服务器的配置方法
###### 内容
- IIS
- Apache 2.2
- Apache 1.x
@ -56,6 +57,7 @@ Tsl脚本可以以纯cgi的模式执行也可以用Apache 1.x, 2.x的Module
注意需要在IIS管理器里的Web服务扩展里允许所有CGI扩展和所有未知ISAPI
####### 内容
- IIS Module模式
- IIS CGI模式
@ -72,6 +74,7 @@ Tsl脚本可以以纯cgi的模式执行也可以用Apache 1.x, 2.x的Module
Apache 2.2与其2.0版本做了比较大的修改所以TSL取消了模块对2.0的支持当然CGI模式在各种版本下均支持。如需要使用模块请下载Apache 2.2的版本。
####### 内容
- Apache 2.2 Module模式
- Apache 2.X CGI模式
@ -119,6 +122,7 @@ AddHandler cgi-script .tsl
虽然目前Apache的主要版本已经升级为2.2但是Apache 1.x的版本使用依然很广泛由于Apache 1.x的版本与2.2版本差异非常之大所以TSL语言会继续支持Apache 1.x版本。
####### 内容
- Apache 1.x Module模式
- Apache 1.x CGI模式
@ -186,6 +190,7 @@ Write(
```
###### 内容
- <?tslx> 标记
- <?tsl … ?>
@ -287,6 +292,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
#### .Web Tools
##### 内容
- 表格样式
- 单元格
- 图形配置
@ -296,6 +302,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
##### 表格样式
###### 内容
- Web_tb_arrow
- Web_tb_bar
- Web_tb_gradient
@ -345,6 +352,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
##### 单元格
###### 内容
- 背景
- 富文本
- 迷你图
@ -352,6 +360,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
###### 背景
####### 内容
- Web_css_bgbar
- Web_css_bgcolor
- Web_css_bghist
@ -377,6 +386,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
###### 富文本
####### 内容
- Web_richtext_zdbgcolor
####### Web_richtext_zdbgcolor
@ -386,6 +396,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
###### 迷你图
####### 内容
- Web_spark_hist
- Web_spark_nphist
@ -402,6 +413,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
##### 图形配置
###### 内容
- Web_fig_box
- Web_fig_heatmap
- Web_fig_histogram
@ -466,6 +478,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
##### 展示范例
###### 内容
- Demo_framestyle_constyle_dotweb
- Demo_framestyle_constyle_net
- Demo_framestyle_heatmaptb_net
@ -530,6 +543,7 @@ http://www.webiste.com/foo.tsl?name=jack&email=jack@abc.com
##### 中间函数
###### 内容
- Kerneldensityestimator
- Web_color_theme
- Web_color_triscale

View File

@ -53,7 +53,6 @@
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)在20110913的修正久期
@ -70,7 +69,6 @@ return bd_AdjustedDuration(EndT); // 8.689358
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)在20110913的剩余年限(年)
@ -87,7 +85,6 @@ return bd_RemainYear(EndT); // 9.890411
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)在20110913的剩余付息次数
@ -104,7 +101,6 @@ return bd_RemainPayNumber(EndT); // 20
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)在20110913的结算价(元)
@ -121,7 +117,6 @@ return bd_PayPrice(EndT); // 103.26
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)在20110913的到期收益率(%)
@ -138,7 +133,6 @@ return bd_YTM(EndT); // 3.919539
参数:无。
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)的应计利息(元)
@ -154,7 +148,6 @@ return bd_Interest3(); // 0.27427
参数:无。
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)的修正久期
@ -170,7 +163,6 @@ return bd_AdjustedDuration3(); // 8.683337
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -185,7 +177,6 @@ return bd_Duration3(); // 9.023284
参数:无。
返回:处理后的结果值。
范例
取得SH010107(21国债⑺)的到期收益率(%)
@ -201,7 +192,6 @@ return bd_YTM3(); // 3.914935
参数arg1按示例顺序传入
返回:处理后的结果值。
取得SH010107(21国债⑺)在20110913的当前付息期内截止到交易日的天数
```tsl
@ -250,7 +240,6 @@ return BondInterest(Endt, 1);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例债券SH010107在20171228日收盘买入持有到到期的收益率
```tsl
@ -320,7 +309,6 @@ return BondYieldToMaturity(Endt);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
算法
其中Ci每期现金流
@ -331,11 +319,11 @@ TY债券最后一期完整周期天数非完整周期表示最后一期计
已知某个固定利率周期性付息债券在20171220T全价102.5,频率为1,未来现金流数据如下所示:
| 计息起始日 | 付息日 | 本期付息 | 本期利率(%) | 本期付本金 | 剩余本金 | 现金流 |
| --- | --- | --- | --- | --- | --- | --- |
| 20171028T | 20181028T | 3.5 | 3.5 | 0 | 100 | 3.5 |
| 20181028T | 20191028T | 3.5 | 3.5 | 50 | 50 | 53.5 |
| 20191028T | 20201028T | 1.75 | 3.5 | 50 | 0 | 51.75 |
| 计息起始日 | 付息日 | 本期付息 | 本期利率(%) | 本期付本金 | 剩余本金 | 现金流 |
| ---------- | --------- | -------- | ----------- | ---------- | -------- | ------ |
| 20171028T | 20181028T | 3.5 | 3.5 | 0 | 100 | 3.5 |
| 20181028T | 20191028T | 3.5 | 3.5 | 50 | 50 | 53.5 |
| 20191028T | 20201028T | 1.75 | 3.5 | 50 | 0 | 51.75 |
求持有到期的到期收益率
@ -359,7 +347,6 @@ return BondYieldToMaturity3(PV, BondCash, f, t, TS);
参数arg1按示例顺序传入
返回:处理后的结果值。
####### 内容
- BondYieldToMaturity_II
@ -375,7 +362,6 @@ return BondYieldToMaturity3(PV, BondCash, f, t, TS);
返回:处理后的结果值。
算法
若是规则的周期性付息,到期收益率(%)-摊余成本法=不处于最后付息周期的定期付息债--到期收益率;
@ -462,7 +448,6 @@ return BondYieldToMaturity_II(Endt, price, 1);
返回:处理后的结果值。
算法
若债券的利率品种为固定利率,结算日票面利率为债券基本信息表中的票面利率;
@ -486,7 +471,6 @@ return BondCouponExt(20120703T);
参数:无。
返回:处理后的结果值。
算法
根据债券.债券派息和利率表中的信息获取本期付息和本期付本金,到期兑付日债券本息和=本期付息+本期付本金范例
@ -525,7 +509,6 @@ return BondFutureValue();
返回:处理后的结果值。
范例
```tsl
@ -561,7 +544,6 @@ return BondDaysNewestPayment(20120703T, 1);
返回:处理后的结果值。
范例:
```tsl
@ -578,7 +560,6 @@ return bdV_CleanPrice (0); // 数据提供商:中证
返回:处理后的结果值。
范例:
```tsl
@ -595,7 +576,6 @@ return bdV_DirtyPrice (0); // 数据提供商:中证
返回:处理后的结果值。
范例:
```tsl
@ -612,7 +592,6 @@ return bdV_YieldToMaturity (0); // 数据提供商:中证
返回:处理后的结果值。
范例债券SH010107在2018/4/8的凸性
```tsl
@ -643,7 +622,6 @@ y到期收益率
返回:处理后的结果值。
范例债券SH010107在指定日2018/4/8持有10000市值的基点价值-持有到期
```tsl
@ -660,7 +638,6 @@ return BondBasisPointValue(Endt, MV); // 返回3.05
返回:处理后的结果值。
范例获得债券SH010107在2018/4/4的麦考利久期
```tsl
@ -717,7 +694,6 @@ Ti结算日到第i个付息日的付息次数。完整周期计为1
返回:处理后的结果值。
算法
非最后付息周期
@ -754,7 +730,6 @@ return BondModifiedDuration(Endt, 0); // 返回3.05
返回:处理后的结果值。
算法
不处于最后付息周期定期付息债的久期=
@ -775,7 +750,6 @@ return BondMacaulayDuration2_sub(107.1642, 4.26, 2, 0.033429, 175, 18, 100, 184)
返回:处理后的结果值。
算法
不处于最后付息周期的久期=
@ -796,7 +770,6 @@ return BondConvexity2_sub(9.5, 0.09, 1, 0.1, 175, 8, 1, 365);
返回:处理后的结果值。
算法
1从债券基本信息表获得付息方式rtype
@ -863,7 +836,6 @@ return FinalPayinterestPeriod(20120703T);
返回:布尔值。
范例
```tsl
@ -877,7 +849,6 @@ return IsBankBond('SH010107');
参数:无。
返回:处理后的结果值。
算法
函数首先判断当前系统证券是否是债券,如果是债券,从债券.基本信息表中获得该债券的偿还期限(年)否则返回0范例
@ -894,7 +865,6 @@ return bd_Maturity();
参数:无。
返回:处理后的结果值。
算法
函数首先判断当前系统证券是否是债券,如果是债券,从债券.基本信息表中获得该债券的利率品种否则返回0范例
@ -911,7 +881,6 @@ return bd_InterestRateType();
参数:无。
返回:日期或时间值。
算法
函数通过判断当前系统证券是否是银行间债券,如果是,则从债券.基本信息表中获得上市日,否则返回对应证券上市的第一个交易日范例
@ -930,7 +899,6 @@ return bd_ListDate();
返回:布尔值。
算法
首先通过判断StockID的股票类型是否是债券如果是则通过债券.基本信息表中债券种类判断是否是企业债如果是则返回1否则返回0范例
@ -948,7 +916,6 @@ return IsCorporationBond('SH129801');
返回:布尔值。
算法
函数通过stocktype函数返回的证券类型判断是否是债券债券的类型值包括7,8,18范例
@ -968,7 +935,6 @@ return IsBond("SH110003");
返回:布尔值。
算法
函数首先通过判断StockID的股票类型是否是债券如果是则通过债券.基本信息表中债券种类判断是否是国债如果是则返回1否则返回0范例
@ -985,7 +951,6 @@ return IsGovBond("BK000201");
参数:无。
返回:处理后的结果值。
算法
函数判断当前证券是否是债券,如果是,则实际发行总额=发行额×债券发行量金额单位否则返回0范例
@ -1003,7 +968,6 @@ return bd_ActualIssueAmount();
参数:无。
返回:日期或时间值。
算法
函数判断当前证券是否是债券,如果是,通过债券.基本信息表获得对应的计息日否则返回0范例
@ -1021,7 +985,6 @@ return bd_DatedDate();
参数:无。
返回:日期或时间值。
算法
函数通过判断当前证券的股票类型,返回对应的到期日范例
@ -1039,7 +1002,6 @@ return bd_GoalDate ();
参数:无。
返回:日期或时间值。
算法
返回bd_GoalDate (),即到期日。直接返回债券基本信息表中的到期日。范例
@ -1057,7 +1019,6 @@ return bd_ExpireDate ();
参数:无。
返回:日期或时间值。
算法
函数通过当前证券的数据库提供商以及股票类型的判断,返回债券基本信息表中的付息频率。范例
@ -1075,7 +1036,6 @@ return bd_PayTimes();
参数:无。
返回:处理后的结果值。
算法
函数通过当前股票的数据库提供商以及股票类型的判断,返回债券基本信息表中的息票类型。该字段已废弃。范例
@ -1098,7 +1058,6 @@ return bd_CouponType();
参数:无。
返回:处理后的结果值。
算法
函数判断当前证券是否是企业债或国债,如果是,通过债券.基本信息表中获得票面利率(%)否则返回0范例
@ -1116,7 +1075,6 @@ return bd_CouponRate();
参数:无。
返回:处理后的结果值。
算法
债券流通股=实际发行总额(元) /面值(元)范例
@ -1135,7 +1093,6 @@ return bd_Shares ();
返回:布尔值。
算法
首先通过函数stocktype判断是否是债券如果是则通过债券.基本信息表中的债券种类判断是否是可转债如果是返回1否则返回0范例
@ -1165,7 +1122,6 @@ return IsConvertibleBond("SZ125002");
返回:处理后的结果值。
范例
```tsl
@ -1184,7 +1140,6 @@ return BondExtraDataExist(t, 'SH000001');
返回:日期或时间值。
算法
从补充的付息频率数据补充的数据见函数bd_PayTimesData中获得数据表t
@ -1206,7 +1161,6 @@ return bd_PayTimesOfLido('SZ101917');
返回:处理后的结果值。
算法
判断参数BondId是否是企业债券或国债若是则继续下面的步骤否则返回空值
@ -1230,7 +1184,6 @@ return bd_CouponTypeOfLido('SZ111017');
返回:处理后的结果值。
算法
(1)从补充的附息利率品种数据补充的数据见函数bd_InterestRateTypeData中获得数据表t
@ -1258,7 +1211,6 @@ return bd_InterestRateTypeOfLido("SZ101904");
返回:处理后的结果值。
范例
```tsl
@ -1313,7 +1265,6 @@ return bd_IfInDuration("SZ128144", 20230101T); // 1
参数:无。
返回:处理后的结果值。
算法
判断“到期赎回价格是否包含当期利息”
@ -1345,7 +1296,6 @@ return CB_ExpiredRedemptionPriceInterest();
参数:无。
返回:处理后的结果值。
算法
如果指定日在开始下修日和实际到期日之间则返回转股价乘以转股价向下修正收盘价限制比例除以100否则返回0范例
@ -1368,7 +1318,6 @@ return CB_RevisedTriggerPrice();
参数:无。
返回:处理后的结果值。
算法
如果指定日大于可转债的实际到期日,说明 判断日已经超过到期日债券已到期无所谓满足不满足有条件赎回收盘价限制条件返回0
@ -1393,7 +1342,6 @@ return CB_SatisfyConditionalRedemption();
参数:无。
返回:处理后的结果值。
算法
1.仅考虑指定日在开始回售日和实际到期日之间日期如果不在则返回0
@ -1420,7 +1368,6 @@ return CB_ConditionalPutbackPrice ();
参数:无。
返回:处理后的结果值。
算法
如果指定日大于可转债的实际到期日,说明 判断日已经超过到期日债券已到期无所谓满足不满足有条件回售收盘价限制条件返回0
@ -1443,7 +1390,6 @@ return CB_SatisfyConditionalPutback ();
参数:无。
返回:处理后的结果值。
算法
判断“有条件回售期类型”
@ -1475,7 +1421,6 @@ return CB_StartDayPutback();
参数:无。
返回:处理后的结果值。
算法
1.判断指定日是否在开始赎回日和实际到期日之间如果否返回0如果是则转步骤2
@ -1506,7 +1451,6 @@ return CB_ConditionalRedemptionPriceInterest ();
参数:无。
返回:处理后的结果值。
算法
调用CB_ExpiredRedemptionPriceInterest()减去最后一期利息范例
@ -1522,7 +1466,6 @@ return CB_ExpiredRedemptionPrice ();
参数:无。
返回:处理后的结果值。
算法
1.仅考虑指定日在计息日和实际到期日之间日期如果不在则返回0由于附加回售的条件一般都是在可转债的存续期内所以考虑计息日即可
@ -1553,7 +1496,6 @@ return CB_AdditionalPutbackPrice ();
参数:无。
返回:处理后的结果值。
算法
指定日可转债的有条件赎回余额限制赎回价(不包含当期利息),指定日由系统参数指定。
@ -1583,7 +1525,6 @@ return CB_BalanceRedemptionPrice ();
参数:无。
返回:处理后的结果值。
算法
判断“有条件赎回期类型”
@ -1609,7 +1550,6 @@ return CB_StartDayRedemption();
参数:无。
返回:处理后的结果值。
算法
如果指定日在开始赎回日和实际到期日之间则返回转股价乘以有条件赎回收盘价限制比例除以100否则返回0范例
@ -1626,7 +1566,6 @@ return CB_TriggerPriceRedemption ();
参数:无。
返回:处理后的结果值。
算法
1.判断“有条件回售价格是否包含当期利息”是否为空如果是返回nil,否则转步骤2
@ -1659,7 +1598,6 @@ return CB_ConditionalPutbackPriceInterest ();
参数:无。
返回:处理后的结果值。
算法
1.判断“附加回售价格是否包含当期利息”是否为空如果是返回nil,否则转步骤2
@ -1686,7 +1624,6 @@ return CB_AdditionalPutbackPriceInterest ();
参数:无。
返回:处理后的结果值。
算法
如果指定日大于实际到期日,说明 判断日已经超过到期日债券已到期无所谓满足不满足下修条件返回0
@ -1709,7 +1646,6 @@ return CB_SatisfyRevised ();
参数:无。
返回:处理后的结果值。
算法 1.仅考虑指定日在开始赎回日和实际到期日之间日期如果不在则返回0
2.判断“有条件赎回收盘价限制赎回价格是否包含当期利息”
@ -1734,7 +1670,6 @@ return CB_ConditionalRedemptionPrice ();
参数:无。
返回:处理后的结果值。
算法
如果指定日在开始回售日和实际到期日之间则返回转股价乘以有条件回售收盘价限制比例除以100否则返回0范例
@ -1751,7 +1686,6 @@ return CB_TriggerPricePutback ();
参数:无。
返回:处理后的结果值。
算法
判断“转股价向下修正期类型”
@ -1773,7 +1707,6 @@ return CB_StartDayRevised ();
参数:无。
返回:处理后的结果值。
算法
1.判断“有条件赎回余额限制赎回价格是否包含当期利息”是否为空如果是返回nil,否则转步骤2
@ -1801,7 +1734,6 @@ return CB_BalanceRedemptionPriceInterest ();
参数:无。
返回:处理后的结果值。
算法
如果指定日大于可转债的实际到期日,说明 判断日已经超过到期日债券已到期无所谓满足不满足有条件赎回余额限制条件返回0
@ -1822,7 +1754,6 @@ return CB_SatisfyBalanceRedemption ();
参数:无。
返回:处理后的结果值。
算法
判断“转股开始日参照标准”
@ -1899,7 +1830,6 @@ return CB_StartDayConversion();
返回:处理后的结果值。
范例
```tsl
@ -1914,7 +1844,6 @@ return CB_GetConvertBondIDByStockID("SH603901", 20210527T);
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -1930,21 +1859,18 @@ return CB_Convertible_Parity(); // 8.6996416
返回:日期或时间值。
范例
```tsl
return CB_GetTransactionByDate(20231201T);
```
###### CB_ActualSatisfyRedempeDays
用途:可转债相关函数。
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -1966,7 +1892,6 @@ return CB_ActualSatisfyRedempeDays(); // 10
返回:处理后的结果值。
范例
```tsl
@ -1975,7 +1900,6 @@ Endt := 20250924T;
return TSFL_CB_MonteCarlo_Ext01(BondID, Endt);
```
其中,价值分布为
##### 债券派息和利率
@ -2010,7 +1934,6 @@ return TSFL_CB_MonteCarlo_Ext01(BondID, Endt);
返回:处理后的结果值。
范例
债券SH010107在20170731T的现金流
@ -2036,7 +1959,6 @@ return BondCashFlow(Endt, inf);
返回:处理后的结果值。
范例
```tsl
@ -2064,7 +1986,6 @@ return BondCashflowHistroy(BegT, EndT, Option);
返回:处理后的结果值。
算法
(1)如果dbtype取值为0或1返回当前系统证券和时间对应的提供商提供的应计利息如果没有取到出现异常返回0
@ -2086,7 +2007,6 @@ return bdV_AccruedInterest(0);
返回:处理后的结果值。
算法
(1)如果dbtype取值为0或1返回当前系统证券和时间对应的的提供商提供的修正久期数据如果没有该券或该日的数据则返回0
@ -2108,7 +2028,6 @@ return bdV_ModifiedDuration(0);
返回:处理后的结果值。
算法
(1)如果dbtype取值为0或1返回当前系统证券和时间对应的提供商提供的凸性数据如果没有该券或该日的数据则返回0
@ -2146,7 +2065,6 @@ return bdV_Convexity(0);
返回:处理后的结果值。
范例
```tsl
@ -2163,7 +2081,6 @@ return BondTermStructureOfYieldToMaturity(20170301T, 10);
返回:处理后的结果值。
范例
```tsl
@ -2180,7 +2097,6 @@ return BondTermStructureOfSpotInterestRate_Curve(20170301T, 20170331T, 10);
返回:处理后的结果值。
范例
```tsl
@ -2197,7 +2113,6 @@ return BondTermStructureOfSpotInterestRate(20170301T, 10);
返回:处理后的结果值。
范例
```tsl
@ -2214,7 +2129,6 @@ return BondTermStructureOfForwardRate(20170301T, 10);
返回:处理后的结果值。
范例
```tsl
@ -2231,7 +2145,6 @@ return BondTermStructureOfYieldToMaturity_Curve(20170301T, 20170331T, 10);
返回:处理后的结果值。
范例
```tsl
@ -2248,7 +2161,6 @@ return BondTermStructureOfForwardRate_Curve(20170301T, 20170331T, 10);
返回:处理后的结果值。
范例
```tsl
@ -2265,7 +2177,6 @@ return BondTermStructureOfYieldToMaturity_EndT(20170301T);
返回:处理后的结果值。
范例
```tsl
@ -2282,7 +2193,6 @@ return BondTermStructureOfSpotInterestRate_EndT(20170301T);
返回:处理后的结果值。
范例
```tsl
@ -2299,7 +2209,6 @@ return BondTermStructureOfForwardRate_EndT(20170301T);
返回:处理后的结果值。
范例
```tsl
@ -2344,7 +2253,6 @@ return BondTermStructure(20170301T);
返回:处理后的结果值。
范例
```tsl
@ -2403,7 +2311,6 @@ return GetBondSYLQKByTypeAndYears(20150101T, 20181231T, 10, 'BTS000033');
返回:处理后的结果值。
算法市值规模=未转股数量*收盘,若在转股日前,取发行数量*收盘价。范例
```tsl
@ -2419,7 +2326,6 @@ return BondCBMarketSizeEndT(20200814T); // 结果1409919438.2
返回:处理后的结果值。
范例
```tsl
@ -2435,7 +2341,6 @@ return BondCBTransferNum(20200814T); // 结果205
返回:处理后的结果值。
范例
```tsl
@ -2480,7 +2385,6 @@ return BondCBTransferValue(20201208T, '转股价');
返回:处理后的结果值。
范例
```tsl
@ -2523,7 +2427,6 @@ return BondCBNumQJ(20201201T, 20201208T, '转股数量');
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -2539,7 +2442,6 @@ return BondIVCloseDuration(); // 结果0
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -2555,7 +2457,6 @@ return BondIVConvexity(); // 结果54.3261
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -2571,7 +2472,6 @@ return BondIVDuration(); // 结果6.9821
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -2588,7 +2488,6 @@ return BondIVMaturityYield(); // 结果3.0545
返回:处理后的结果值。
范例
```tsl
@ -2598,7 +2497,6 @@ SetSysParam(PN_Date(), 20200924T);
return BondIVQK(20200914T, 20200924T);
```
###### BondIVQK2
用途:债券指数估值相关函数。
@ -2606,7 +2504,6 @@ return BondIVQK(20200914T, 20200924T);
返回:处理后的结果值。
范例
```tsl
@ -2616,14 +2513,12 @@ SetSysParam(PN_Date(), 20200924T);
return BondIVQK2(5);
```
###### BondIVRemainDuration
用途:债券指数估值相关函数。
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -2663,7 +2558,6 @@ return BondIVRemainDuration(); // 结果0
返回:处理后的结果值。
算法
若交易日小于到期日获得交易日至到期日前一天的相隔天数y债券剩余的付息次数为y/365/F的取整值加1否则债券剩余的付息次数=0范例
@ -2685,7 +2579,6 @@ return BondRemainPayNumber(GoalDate, EndT, f);
返回:处理后的结果值。
算法
把EndT转化为整数dGoalDate转化为整数GoalDate
@ -2717,7 +2610,6 @@ return BondCoupDayBS(GoalDate, EndT, f);
返回:处理后的结果值。
算法
(1)获得y1=到期收益率/年y/付息频率fc1=息票率/年C/付息频率f;
@ -2736,7 +2628,6 @@ return BondDuration(0, 0.0799999982118607, 40, 0.100000001490116, 2);
返回:处理后的结果值。
算法
(1)把EndT转化为整数dGoalDate转化为整数GoalDate
@ -2769,7 +2660,6 @@ return BondCoupDaysNC(GoalDate, EndT, f);
返回:处理后的结果值。
算法
可转债流通股本=实际发行总额(元)/面值(元)范例
@ -2791,7 +2681,6 @@ return NSharesOfConvertibleBond(91, EndT);
返回:处理后的结果值。
算法
企业债券流通股本=实际发行总额(元)/面值(元)范例
@ -2819,7 +2708,6 @@ return NSharesOfCorporationBond (90, EndT);
返回:处理后的结果值。
算法
若dbtype=0债券内部代码=id.zz若dbtype=1债券内部代码=id.zd否则债券内部代码=id范例
@ -2837,7 +2725,6 @@ return bdV_InternalCode(0, 'SH124063');
返回:处理后的结果值。
算法
国债流通股本=实际发行总额(元)/面值(元)范例
@ -2934,7 +2821,6 @@ return NSharesOfGovBond(0, 0);
返回:日期或时间值。
算法
根据参数组合成日期若出现异常情况返回以参数y、m和1组成的日期或合成日期的当月的最后一天的日期范例
@ -2952,7 +2838,6 @@ return TEncodeDate(2012, 2, 13);、
返回:日期或时间值。
算法
获得参数day的年份和月份信息根据获得信息与参数d重新组合成新的日期范例
@ -2988,7 +2873,6 @@ return TEncodeDate2(20120317T, 2);
参数:无。
返回:日期或时间值。
范例
```tsl
@ -3011,7 +2895,6 @@ return Pn_BondStandardDate();
返回:处理后的结果值。
范例
```tsl
@ -3027,7 +2910,6 @@ return BondSBCRCoverRatioEndT(20201201T);
返回:处理后的结果值。
范例
```tsl
@ -3061,7 +2943,6 @@ return BondSBCRIsFinacingCover(20201201T);
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -3075,7 +2956,6 @@ return BondConvertibleBonds2();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -3090,7 +2970,6 @@ return BondInterBankIds2();
返回:处理后的结果值。
范例
```tsl
@ -3107,7 +2986,6 @@ return BondRatingByEndt(20240819T);
返回:处理后的结果值。
范例
```tsl
@ -3140,10 +3018,8 @@ return BondRatingByEndtByInstitution(20240819T, "联合评级");
返回:处理后的结果值。
范例
```tsl
return GetHgInterestDay('SZ131801', 20190429T);
```

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,6 @@
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -35,7 +34,6 @@ return ForExrateMidPrice(20200420T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -46,16 +44,15 @@ endt := 20200430T;
return ForExrateMidPriceBegTEndT(begt, endt);
```
| 日期 | 代码 | 中间价 |
| --- | --- | --- |
| 日期 | 代码 | 中间价 |
| -------- | -------- | ------ |
| 20200420 | FXUSDCNY | 7.0657 |
| 20200421 | FXUSDCNY | 7.0752 |
| 20200422 | FXUSDCNY | 7.0903 |
| 20200423 | FXUSDCNY | 7.0887 |
| 20200424 | FXUSDCNY | 7.0803 |
| 20200427 | FXUSDCNY | 7.0703 |
| 20200428 | FXUSDCNY | 7.071 |
| 20200428 | FXUSDCNY | 7.071 |
| 20200429 | FXUSDCNY | 7.0704 |
| 20200430 | FXUSDCNY | 7.0571 |
@ -65,7 +62,6 @@ return ForExrateMidPriceBegTEndT(begt, endt);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -80,7 +76,6 @@ return GetCurrencyCodeBySecurityCode('HK00001');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法
(V2-V1)/V1

View File

@ -23,7 +23,6 @@
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -51,7 +50,6 @@ return GetTreeSumByClassPath(Data, NodeName, PathName, SumName, IfLever0, IfTree
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
范例1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -71,7 +71,6 @@
参数:无(使用 pn_stock/pn_date
返回:合约乘数。
范例
```tsl
@ -94,7 +93,6 @@ return FuturesMultiplierEndT(); // 结果500
参数:无(使用 pn_stock/pn_date
返回:交割日。
范例
```tsl
@ -110,7 +108,6 @@ return FuturesDeliveryDateEndT2(); // 返回20201218
参数:无(使用 pn_stock
返回:最后交易日。
范例
```tsl
@ -122,12 +119,14 @@ return FuturesLastDateEndT(); // 返回20210115
###### 中间函数
####### 内容
- Futuresbivalue
####### Futuresbivalue
用途:中间函数:获取期货基本信息原始值。
参数:
- args内部调用参数按系统约定
返回:基本信息值。
@ -138,7 +137,6 @@ return FuturesLastDateEndT(); // 返回20210115
参数:无(使用 pn_stock/pn_date
返回:最小变动价位。
范例
```tsl
@ -155,7 +153,6 @@ return FuturesTickSizeEndT();
参数:无(使用 pn_stock/pn_date
返回:最低交易保证金率(%)。
范例
```tsl
@ -172,7 +169,6 @@ return FuturesMinimumTradingMarginRateEndT();
参数:无(使用 pn_stock/pn_date
返回:涨停幅度(%)。
范例
```tsl
@ -189,7 +185,6 @@ return FuturesPriceUpperLimitEndT();
参数:无(使用 pn_stock/pn_date
返回:跌停幅度(%)。
范例
```tsl
@ -217,11 +212,11 @@ return FuturesPriceLowerLimitEndT();
用途:获取指定品种在日期区间内的仓单日报。
参数:
- begt起始日期
- endt结束日期
- out_table输出表
返回是否查询成功1/0
返回是否查询成功1/0
范例
@ -240,9 +235,9 @@ return "获取数据失败";
用途:获取指定仓库的仓单总量。
参数:
- warehouse_name仓库名称
返回:仓单总量。
- warehouse_name仓库名称
返回:仓单总量。
范例
@ -257,10 +252,10 @@ return FuturesWarehouseVol("国储天威");
用途:获取指定仓库/地区的仓单净变动量。
参数:
- warehouse_name仓库名称
- region地区名称
返回:仓单净变动量。
返回:仓单净变动量。
范例
@ -277,7 +272,6 @@ return FuturesWarehouseChange("", "上海");
参数:无(使用 pn_stock/pn_date
返回:仓单占比(%)。
范例
```tsl
@ -291,9 +285,9 @@ return FuturesWarehouseRatio();
用途:获取指定仓库的仓单变比(%)。
参数:
- warehouse_name仓库名称
返回:仓单变比(%)。
- warehouse_name仓库名称
返回:仓单变比(%)。
范例
@ -308,9 +302,9 @@ return FuturesWarehouseRatio2("国储天威");
用途:获取指定仓库占该地区仓单总量比(%)。
参数:
- warehouse_name仓库名称
返回:仓单占比(%)。
- warehouse_name仓库名称
返回:仓单占比(%)。
范例
@ -327,7 +321,6 @@ return FuturesTheWarehouseVolRatio("国储天威");
参数:无(使用 pn_stock/pn_date
返回:有效预报总量。
范例
```tsl
@ -348,9 +341,9 @@ return FuturesWarehousePredictionVol();
用途:获取指定仓库所在地区。
参数:
- warehouse_name仓库名称
返回:地区名称。
- warehouse_name仓库名称
返回:地区名称。
范例
@ -366,11 +359,11 @@ return FuturesRegion("南储仓储");
用途:获取指定仓库在指定地区的仓单数量(类型由 flag 指定)。
参数:
- flag类型标记按示例传入
- warehouse_name仓库名称
- region地区名称
返回:仓单数量。
返回:仓单数量。
范例
@ -392,10 +385,10 @@ return FuturesWarehouse(0, '南储仓储', '广东');
用途:获取指定日交易保证金率(按类型标记)。
参数:
- date日期
- flag类型标记按示例传入
返回:交易保证金率(%)。
返回:交易保证金率(%)。
范例
@ -411,10 +404,10 @@ return FuturesTradingMarginRate(IntToDate(20140331), 0);
用途:获取指定日结算保证金率(按类型标记)。
参数:
- date日期
- flag类型标记按示例传入
返回:结算保证金率(%)。
返回:结算保证金率(%)。
范例
@ -439,10 +432,10 @@ return FuturesMaintenanceMarginRate(IntToDate(20140331), 0);
用途:获取指定日手续费率(交易额万分之)。
参数:
- date日期
- flag类型标记按示例传入
返回:手续费率(万分之)。
返回:手续费率(万分之)。
范例
@ -458,10 +451,10 @@ return FuturesFeeRate(IntToDate(20140328), 0);
用途:获取指定日手续费金额(元/手)。
参数:
- date日期
- flag类型标记按示例传入
返回:手续费金额(元/手)。
返回:手续费金额(元/手)。
范例
@ -505,6 +498,7 @@ return fee_1 + fee_2;
用途:获取期货手续费计费成本参数。
参数:无(使用 pn_stock/pn_date
返回:计费成本参数。
##### 期货代码
###### 内容
@ -527,9 +521,9 @@ return fee_1 + fee_2;
用途:合约代码转换为品种代码。
参数:
- code合约代码按系统日期 pn_date 处理)
返回:品种代码。
- code合约代码按系统日期 pn_date 处理)
返回:品种代码。
范例
@ -542,10 +536,10 @@ return FuturesCodeToPZ('LXA01'); // 返回'A'
用途:获取指定日期仍在市交易的合约列表。
参数:
- categories类别/品种列表
- endt日期
返回:合约列表。
返回:合约列表。
范例
@ -564,102 +558,100 @@ return GetFuturesBkbydate('大连商品交易所', 20200201T);
参数:无。
返回:品种代码表。
范例
```tsl
return FuturesAllPZCode();
```
| 品种代码 | 变动日 | 品种名称 | 主力代码 | 主力代码2 | 次主力代码 | 指数线代码 | 连续代码 | 连一代码 | 连二代码 | 连三代码 | 连四代码 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| A | 20020315 | 黄大豆1号 | ZLA10 | ZLA00 | ZLA11 | QIA10 | LXA00 | LXA01 | LXA02 | LXA03 | LXA04 |
| AD | 20250610 | 铸造铝合金 | ZLAD10 | ZLAD00 | ZLAD11 | QIAD10 | LXAD00 | LXAD01 | LXAD02 | LXAD03 | LXAD04 |
| AG | 20120510 | 白银 | ZLAG10 | ZLAG00 | ZLAG11 | QIAG10 | LXAG00 | LXAG01 | LXAG02 | LXAG03 | LXAG04 |
| AL | 19920528 | 铝 | ZLAL10 | ZLAL00 | ZLAL11 | QIAL10 | LXAL00 | LXAL01 | LXAL02 | LXAL03 | LXAL04 |
| AO | 20230619 | 氧化铝 | ZLAO10 | ZLAO00 | ZLAO11 | QIAO10 | LXAO00 | LXAO01 | LXAO02 | LXAO03 | LXAO04 |
| AP | 20171222 | 苹果 | ZLAP10 | ZLAP00 | ZLAP11 | QIAP10 | LXAP00 | LXAP01 | LXAP02 | LXAP03 | LXAP04 |
| AU | 20080109 | 黄金 | ZLAU10 | ZLAU00 | ZLAU11 | QIAU10 | LXAU00 | LXAU01 | LXAU02 | LXAU03 | LXAU04 |
| B | 20041222 | 黄大豆2号 | ZLB10 | ZLB00 | ZLB11 | QIB10 | LXB00 | LXB01 | LXB02 | LXB03 | LXB04 |
| BB | 20131206 | 胶合板 | ZLBB10 | ZLBB00 | ZLBB11 | QIBB10 | LXBB00 | LXBB01 | LXBB02 | LXBB03 | LXBB04 |
| BC | 20201119 | 国际铜 | ZLBC10 | ZLBC00 | ZLBC11 | QIBC10 | LXBC00 | LXBC01 | LXBC02 | LXBC03 | LXBC04 |
| BR | 20230728 | 丁二烯橡胶 | ZLBR10 | ZLBR00 | ZLBR11 | QIBR10 | LXBR00 | LXBR01 | LXBR02 | LXBR03 | LXBR04 |
| BU | 20131009 | 沥青 | ZLBU10 | ZLBU00 | ZLBU11 | QIBU10 | LXBU00 | LXBU01 | LXBU02 | LXBU03 | LXBU04 |
| BZ | 20250708 | 纯苯 | ZLBZ10 | ZLBZ00 | ZLBZ11 | QIBZ10 | LXBZ00 | LXBZ01 | LXBZ02 | LXBZ03 | LXBZ04 |
| C | 20040922 | 玉米 | ZLC10 | ZLC00 | ZLC11 | QIC10 | LXC00 | LXC01 | LXC02 | LXC03 | LXC04 |
| CF | 20040601 | 棉花 | ZLCF10 | ZLCF00 | ZLCF11 | QICF10 | LXCF00 | LXCF01 | LXCF02 | LXCF03 | LXCF04 |
| CJ | 20190430 | 红枣 | ZLCJ10 | ZLCJ00 | ZLCJ11 | QICJ10 | LXCJ00 | LXCJ01 | LXCJ02 | LXCJ03 | LXCJ04 |
| CS | 20141219 | 玉米淀粉 | ZLCS10 | ZLCS00 | ZLCS11 | QICS10 | LXCS00 | LXCS01 | LXCS02 | LXCS03 | LXCS04 |
| CU | 19930301 | 铜 | ZLCU10 | ZLCU00 | ZLCU11 | QICU10 | LXCU00 | LXCU01 | LXCU02 | LXCU03 | LXCU04 |
| CY | 20170818 | 棉纱 | ZLCY10 | ZLCY00 | ZLCY11 | QICY10 | LXCY00 | LXCY01 | LXCY02 | LXCY03 | LXCY04 |
| EB | 20190926 | 苯乙烯 | ZLEB10 | ZLEB00 | ZLEB11 | QIEB10 | LXEB00 | LXEB01 | LXEB02 | LXEB03 | LXEB04 |
| EC | 20230818 | SCFIS欧线 | ZLEC10 | ZLEC00 | ZLEC11 | QIEC10 | LXEC00 | LXEC01 | LXEC02 | LXEC03 | LXEC04 |
| EG | 20181210 | 乙二醇 | ZLEG10 | ZLEG00 | ZLEG11 | QIEG10 | LXEG00 | LXEG01 | LXEG02 | LXEG03 | LXEG04 |
| FB | 20131206 | 纤维板 | ZLFB10 | ZLFB00 | ZLFB11 | QIFB10 | LXFB00 | LXFB01 | LXFB02 | LXFB03 | LXFB04 |
| FG | 20121203 | 玻璃 | ZLFG10 | ZLFG00 | ZLFG11 | QIFG10 | LXFG00 | LXFG01 | LXFG02 | LXFG03 | LXFG04 |
| FU | 20040825 | 燃料油 | ZLFU10 | ZLFU00 | ZLFU11 | QIFU10 | LXFU00 | LXFU01 | LXFU02 | LXFU03 | LXFU04 |
| HC | 20140321 | 热轧卷板 | ZLHC10 | ZLHC00 | ZLHC11 | QIHC10 | LXHC00 | LXHC01 | LXHC02 | LXHC03 | LXHC04 |
| I | 20131018 | 铁矿石 | ZLI10 | ZLI00 | ZLI11 | QII10 | LXI00 | LXI01 | LXI02 | LXI03 | LXI04 |
| IC | 20150416 | 中证500指数 | ZLIC10 | ZLIC00 | ZLIC11 | QIIC10 | LXIC00 | LXIC01 | LXIC02 | LXIC03 | |
| IF | 20100416 | 沪深300指数 | ZLIF10 | ZLIF00 | ZLIF11 | QIIF10 | LXIF00 | LXIF01 | LXIF02 | LXIF03 | |
| IH | 20150416 | 上证50指数 | ZLIH10 | ZLIH00 | ZLIH11 | QIIH10 | LXIH00 | LXIH01 | LXIH02 | LXIH03 | |
| IM | 20220722 | 中证1000指数 | ZLIM10 | ZLIM00 | ZLIM11 | QIIM10 | LXIM00 | LXIM01 | LXIM02 | LXIM03 | |
| J | 20110415 | 焦炭 | ZLJ10 | ZLJ00 | ZLJ11 | QIJ10 | LXJ00 | LXJ01 | LXJ02 | LXJ03 | LXJ04 |
| JD | 20131108 | 鸡蛋 | ZLJD10 | ZLJD00 | ZLJD11 | QIJD10 | LXJD00 | LXJD01 | LXJD02 | LXJD03 | LXJD04 |
| JM | 20130322 | 焦煤 | ZLJM10 | ZLJM00 | ZLJM11 | QIJM10 | LXJM00 | LXJM01 | LXJM02 | LXJM03 | LXJM04 |
| JR | 20131118 | 粳稻 | ZLJR10 | ZLJR00 | ZLJR11 | QIJR10 | LXJR00 | LXJR01 | LXJR02 | LXJR03 | LXJR04 |
| L | 20070731 | 聚乙烯 | ZLL10 | ZLL00 | ZLL11 | QIL10 | LXL00 | LXL01 | LXL02 | LXL03 | LXL04 |
| LC | 20230721 | 碳酸锂 | ZLLC10 | ZLLC00 | ZLLC11 | QILC10 | LXLC00 | LXLC01 | LXLC02 | LXLC03 | LXLC04 |
| LG | 20241118 | 原木 | ZLLG10 | ZLLG00 | ZLLG11 | QILG10 | LXLG00 | LXLG01 | LXLG02 | LXLG03 | LXLG04 |
| LH | 20210108 | 生猪 | ZLLH10 | ZLLH00 | ZLLH11 | QILH10 | LXLH00 | LXLH01 | LXLH02 | LXLH03 | LXLH04 |
| LR | 20140708 | 晚籼稻 | ZLLR10 | ZLLR00 | ZLLR11 | QILR10 | LXLR00 | LXLR01 | LXLR02 | LXLR03 | LXLR04 |
| LU | 20200622 | 低硫燃料油 | ZLLU10 | ZLLU00 | ZLLU11 | QILU10 | LXLU00 | LXLU01 | LXLU02 | LXLU03 | LXLU04 |
| M | 20000717 | 豆粕 | ZLM10 | ZLM00 | ZLM11 | QIM10 | LXM00 | LXM01 | LXM02 | LXM03 | LXM04 |
| MA | 20140617 | 甲醇 | ZLMA10 | ZLMA00 | ZLMA11 | QIMA10 | LXMA00 | LXMA01 | LXMA02 | LXMA03 | LXMA04 |
| NI | 20150327 | 镍 | ZLNI10 | ZLNI00 | ZLNI11 | QINI10 | LXNI00 | LXNI01 | LXNI02 | LXNI03 | LXNI04 |
| NR | 20190812 | 20号胶 | ZLNR10 | ZLNR00 | ZLNR11 | QINR10 | LXNR00 | LXNR01 | LXNR02 | LXNR03 | LXNR04 |
| OI | 20120716 | 菜籽油 | ZLOI10 | ZLOI00 | ZLOI11 | QIOI10 | LXOI00 | LXOI01 | LXOI02 | LXOI03 | LXOI04 |
| OP | 20250910 | 胶版印刷纸 | ZLOP10 | ZLOP00 | ZLOP11 | QIOP10 | LXOP00 | LXOP01 | LXOP02 | LXOP03 | LXOP04 |
| P | 20071029 | 棕榈油 | ZLP10 | ZLP00 | ZLP11 | QIP10 | LXP00 | LXP01 | LXP02 | LXP03 | LXP04 |
| PB | 20110324 | 铅 | ZLPB10 | ZLPB00 | ZLPB11 | QIPB10 | LXPB00 | LXPB01 | LXPB02 | LXPB03 | LXPB04 |
| PF | 20201012 | 短纤 | ZLPF10 | ZLPF00 | ZLPF11 | QIPF10 | LXPF00 | LXPF01 | LXPF02 | LXPF03 | LXPF04 |
| PG | 20200330 | 液化石油气 | ZLPG10 | ZLPG00 | ZLPG11 | QIPG10 | LXPG00 | LXPG01 | LXPG02 | LXPG03 | LXPG04 |
| PK | 20210201 | 花生 | ZLPK10 | ZLPK00 | ZLPK11 | QIPK10 | LXPK00 | LXPK01 | LXPK02 | LXPK03 | LXPK04 |
| PL | 20250722 | 丙烯 | ZLPL10 | ZLPL00 | ZLPL11 | QIPL10 | LXPL00 | LXPL01 | LXPL02 | LXPL03 | LXPL04 |
| PM | 20120117 | 普麦 | ZLPM10 | ZLPM00 | ZLPM11 | QIPM10 | LXPM00 | LXPM01 | LXPM02 | LXPM03 | LXPM04 |
| PP | 20140228 | 聚丙烯 | ZLPP10 | ZLPP00 | ZLPP11 | QIPP10 | LXPP00 | LXPP01 | LXPP02 | LXPP03 | LXPP04 |
| PR | 20240830 | 瓶片 | ZLPR10 | ZLPR00 | ZLPR11 | QIPR10 | LXPR00 | LXPR01 | LXPR02 | LXPR03 | LXPR04 |
| PS | 20241226 | 多晶硅 | ZLPS10 | ZLPS00 | ZLPS11 | QIPS10 | LXPS00 | LXPS01 | LXPS02 | LXPS03 | LXPS04 |
| PX | 20230915 | 对二甲苯 | ZLPX10 | ZLPX00 | ZLPX11 | QIPX10 | LXPX00 | LXPX01 | LXPX02 | LXPX03 | LXPX04 |
| RB | 20090327 | 螺纹钢 | ZLRB10 | ZLRB00 | ZLRB11 | QIRB10 | LXRB00 | LXRB01 | LXRB02 | LXRB03 | LXRB04 |
| RI | 20120724 | 早籼稻 | ZLRI10 | ZLRI00 | ZLRI11 | QIRI10 | LXRI00 | LXRI01 | LXRI02 | LXRI03 | LXRI04 |
| RM | 20121228 | 菜籽粕 | ZLRM10 | ZLRM00 | ZLRM11 | QIRM10 | LXRM00 | LXRM01 | LXRM02 | LXRM03 | LXRM04 |
| RR | 20190816 | 粳米 | ZLRR10 | ZLRR00 | ZLRR11 | QIRR10 | LXRR00 | LXRR01 | LXRR02 | LXRR03 | LXRR04 |
| RS | 20121228 | 油菜籽 | ZLRS10 | ZLRS00 | ZLRS11 | QIRS10 | LXRS00 | LXRS01 | LXRS02 | LXRS03 | |
| RU | 19931101 | 天然橡胶 | ZLRU10 | ZLRU00 | ZLRU11 | QIRU10 | LXRU00 | LXRU01 | LXRU02 | LXRU03 | LXRU04 |
| SA | 20191206 | 纯碱 | ZLSA10 | ZLSA00 | ZLSA11 | QISA10 | LXSA00 | LXSA01 | LXSA02 | LXSA03 | LXSA04 |
| SC | 20180326 | 原油 | ZLSC10 | ZLSC00 | ZLSC11 | QISC10 | LXSC00 | LXSC01 | LXSC02 | LXSC03 | LXSC04 |
| SF | 20140808 | 硅铁 | ZLSF10 | ZLSF00 | ZLSF11 | QISF10 | LXSF00 | LXSF01 | LXSF02 | LXSF03 | LXSF04 |
| SH | 20230915 | 烧碱 | ZLSH10 | ZLSH00 | ZLSH11 | QISH10 | LXSH00 | LXSH01 | LXSH02 | LXSH03 | LXSH04 |
| SI | 20221222 | 工业硅 | ZLSI10 | ZLSI00 | ZLSI11 | QISI10 | LXSI00 | LXSI01 | LXSI02 | LXSI03 | LXSI04 |
| SM | 20140808 | 锰硅 | ZLSM10 | ZLSM00 | ZLSM11 | QISM10 | LXSM00 | LXSM01 | LXSM02 | LXSM03 | LXSM04 |
| SN | 20150327 | 锡 | ZLSN10 | ZLSN00 | ZLSN11 | QISN10 | LXSN00 | LXSN01 | LXSN02 | LXSN03 | LXSN04 |
| SP | 20181127 | 纸浆 | ZLSP10 | ZLSP00 | ZLSP11 | QISP10 | LXSP00 | LXSP01 | LXSP02 | LXSP03 | LXSP04 |
| SR | 20060106 | 白糖 | ZLSR10 | ZLSR00 | ZLSR11 | QISR10 | LXSR00 | LXSR01 | LXSR02 | LXSR03 | LXSR04 |
| SS | 20190925 | 不锈钢 | ZLSS10 | ZLSS00 | ZLSS11 | QISS10 | LXSS00 | LXSS01 | LXSS02 | LXSS03 | LXSS04 |
| T | 20150320 | 10年期国债 | ZLT10 | ZLT00 | ZLT11 | QIT10 | LXT00 | LXT01 | LXT02 | | |
| TA | 20061218 | PTA | ZLTA10 | ZLTA00 | ZLTA11 | QITA10 | LXTA00 | LXTA01 | LXTA02 | LXTA03 | LXTA04 |
| TF | 20130906 | 5年期国债 | ZLTF10 | ZLTF00 | ZLTF11 | QITF10 | LXTF00 | LXTF01 | LXTF02 | | |
| TL | 20230421 | 30年期国债 | ZLTL10 | ZLTL00 | ZLTL11 | QITL10 | LXTL00 | LXTL01 | LXTL02 | | |
| TS | 20180817 | 2年期国债 | ZLTS10 | ZLTS00 | ZLTS11 | QITS10 | LXTS00 | LXTS01 | LXTS02 | | |
| UR | 20190809 | 尿素 | ZLUR10 | ZLUR00 | ZLUR11 | QIUR10 | LXUR00 | LXUR01 | LXUR02 | LXUR03 | LXUR04 |
| V | 20090525 | 聚氯乙烯 | ZLV10 | ZLV00 | ZLV11 | QIV10 | LXV00 | LXV01 | LXV02 | LXV03 | LXV04 |
| WH | 20120724 | 强麦 | ZLWH10 | ZLWH00 | ZLWH11 | QIWH10 | LXWH00 | LXWH01 | LXWH02 | LXWH03 | LXWH04 |
| WR | 20090327 | 线材 | ZLWR10 | ZLWR00 | ZLWR11 | QIWR10 | LXWR00 | LXWR01 | LXWR02 | LXWR03 | LXWR04 |
| Y | 20060109 | 豆油 | ZLY10 | ZLY00 | ZLY11 | QIY10 | LXY00 | LXY01 | LXY02 | LXY03 | LXY04 |
| ZC | 20150518 | 动力煤 | ZLZC10 | ZLZC00 | ZLZC11 | QIZC10 | LXZC00 | LXZC01 | LXZC02 | LXZC03 | LXZC04 |
| ZN | 20070326 | 锌 | ZLZN10 | ZLZN00 | ZLZN11 | QIZN10 | LXZN00 | LXZN01 | LXZN02 | LXZN03 | LXZN04 |
| 品种代码 | 变动日 | 品种名称 | 主力代码 | 主力代码2 | 次主力代码 | 指数线代码 | 连续代码 | 连一代码 | 连二代码 | 连三代码 | 连四代码 |
| -------- | -------- | ------------ | -------- | --------- | ---------- | ---------- | -------- | -------- | -------- | -------- | -------- |
| A | 20020315 | 黄大豆1号 | ZLA10 | ZLA00 | ZLA11 | QIA10 | LXA00 | LXA01 | LXA02 | LXA03 | LXA04 |
| AD | 20250610 | 铸造铝合金 | ZLAD10 | ZLAD00 | ZLAD11 | QIAD10 | LXAD00 | LXAD01 | LXAD02 | LXAD03 | LXAD04 |
| AG | 20120510 | 白银 | ZLAG10 | ZLAG00 | ZLAG11 | QIAG10 | LXAG00 | LXAG01 | LXAG02 | LXAG03 | LXAG04 |
| AL | 19920528 | 铝 | ZLAL10 | ZLAL00 | ZLAL11 | QIAL10 | LXAL00 | LXAL01 | LXAL02 | LXAL03 | LXAL04 |
| AO | 20230619 | 氧化铝 | ZLAO10 | ZLAO00 | ZLAO11 | QIAO10 | LXAO00 | LXAO01 | LXAO02 | LXAO03 | LXAO04 |
| AP | 20171222 | 苹果 | ZLAP10 | ZLAP00 | ZLAP11 | QIAP10 | LXAP00 | LXAP01 | LXAP02 | LXAP03 | LXAP04 |
| AU | 20080109 | 黄金 | ZLAU10 | ZLAU00 | ZLAU11 | QIAU10 | LXAU00 | LXAU01 | LXAU02 | LXAU03 | LXAU04 |
| B | 20041222 | 黄大豆2号 | ZLB10 | ZLB00 | ZLB11 | QIB10 | LXB00 | LXB01 | LXB02 | LXB03 | LXB04 |
| BB | 20131206 | 胶合板 | ZLBB10 | ZLBB00 | ZLBB11 | QIBB10 | LXBB00 | LXBB01 | LXBB02 | LXBB03 | LXBB04 |
| BC | 20201119 | 国际铜 | ZLBC10 | ZLBC00 | ZLBC11 | QIBC10 | LXBC00 | LXBC01 | LXBC02 | LXBC03 | LXBC04 |
| BR | 20230728 | 丁二烯橡胶 | ZLBR10 | ZLBR00 | ZLBR11 | QIBR10 | LXBR00 | LXBR01 | LXBR02 | LXBR03 | LXBR04 |
| BU | 20131009 | 沥青 | ZLBU10 | ZLBU00 | ZLBU11 | QIBU10 | LXBU00 | LXBU01 | LXBU02 | LXBU03 | LXBU04 |
| BZ | 20250708 | 纯苯 | ZLBZ10 | ZLBZ00 | ZLBZ11 | QIBZ10 | LXBZ00 | LXBZ01 | LXBZ02 | LXBZ03 | LXBZ04 |
| C | 20040922 | 玉米 | ZLC10 | ZLC00 | ZLC11 | QIC10 | LXC00 | LXC01 | LXC02 | LXC03 | LXC04 |
| CF | 20040601 | 棉花 | ZLCF10 | ZLCF00 | ZLCF11 | QICF10 | LXCF00 | LXCF01 | LXCF02 | LXCF03 | LXCF04 |
| CJ | 20190430 | 红枣 | ZLCJ10 | ZLCJ00 | ZLCJ11 | QICJ10 | LXCJ00 | LXCJ01 | LXCJ02 | LXCJ03 | LXCJ04 |
| CS | 20141219 | 玉米淀粉 | ZLCS10 | ZLCS00 | ZLCS11 | QICS10 | LXCS00 | LXCS01 | LXCS02 | LXCS03 | LXCS04 |
| CU | 19930301 | 铜 | ZLCU10 | ZLCU00 | ZLCU11 | QICU10 | LXCU00 | LXCU01 | LXCU02 | LXCU03 | LXCU04 |
| CY | 20170818 | 棉纱 | ZLCY10 | ZLCY00 | ZLCY11 | QICY10 | LXCY00 | LXCY01 | LXCY02 | LXCY03 | LXCY04 |
| EB | 20190926 | 苯乙烯 | ZLEB10 | ZLEB00 | ZLEB11 | QIEB10 | LXEB00 | LXEB01 | LXEB02 | LXEB03 | LXEB04 |
| EC | 20230818 | SCFIS欧线 | ZLEC10 | ZLEC00 | ZLEC11 | QIEC10 | LXEC00 | LXEC01 | LXEC02 | LXEC03 | LXEC04 |
| EG | 20181210 | 乙二醇 | ZLEG10 | ZLEG00 | ZLEG11 | QIEG10 | LXEG00 | LXEG01 | LXEG02 | LXEG03 | LXEG04 |
| FB | 20131206 | 纤维板 | ZLFB10 | ZLFB00 | ZLFB11 | QIFB10 | LXFB00 | LXFB01 | LXFB02 | LXFB03 | LXFB04 |
| FG | 20121203 | 玻璃 | ZLFG10 | ZLFG00 | ZLFG11 | QIFG10 | LXFG00 | LXFG01 | LXFG02 | LXFG03 | LXFG04 |
| FU | 20040825 | 燃料油 | ZLFU10 | ZLFU00 | ZLFU11 | QIFU10 | LXFU00 | LXFU01 | LXFU02 | LXFU03 | LXFU04 |
| HC | 20140321 | 热轧卷板 | ZLHC10 | ZLHC00 | ZLHC11 | QIHC10 | LXHC00 | LXHC01 | LXHC02 | LXHC03 | LXHC04 |
| I | 20131018 | 铁矿石 | ZLI10 | ZLI00 | ZLI11 | QII10 | LXI00 | LXI01 | LXI02 | LXI03 | LXI04 |
| IC | 20150416 | 中证500指数 | ZLIC10 | ZLIC00 | ZLIC11 | QIIC10 | LXIC00 | LXIC01 | LXIC02 | LXIC03 | |
| IF | 20100416 | 沪深300指数 | ZLIF10 | ZLIF00 | ZLIF11 | QIIF10 | LXIF00 | LXIF01 | LXIF02 | LXIF03 | |
| IH | 20150416 | 上证50指数 | ZLIH10 | ZLIH00 | ZLIH11 | QIIH10 | LXIH00 | LXIH01 | LXIH02 | LXIH03 | |
| IM | 20220722 | 中证1000指数 | ZLIM10 | ZLIM00 | ZLIM11 | QIIM10 | LXIM00 | LXIM01 | LXIM02 | LXIM03 | |
| J | 20110415 | 焦炭 | ZLJ10 | ZLJ00 | ZLJ11 | QIJ10 | LXJ00 | LXJ01 | LXJ02 | LXJ03 | LXJ04 |
| JD | 20131108 | 鸡蛋 | ZLJD10 | ZLJD00 | ZLJD11 | QIJD10 | LXJD00 | LXJD01 | LXJD02 | LXJD03 | LXJD04 |
| JM | 20130322 | 焦煤 | ZLJM10 | ZLJM00 | ZLJM11 | QIJM10 | LXJM00 | LXJM01 | LXJM02 | LXJM03 | LXJM04 |
| JR | 20131118 | 粳稻 | ZLJR10 | ZLJR00 | ZLJR11 | QIJR10 | LXJR00 | LXJR01 | LXJR02 | LXJR03 | LXJR04 |
| L | 20070731 | 聚乙烯 | ZLL10 | ZLL00 | ZLL11 | QIL10 | LXL00 | LXL01 | LXL02 | LXL03 | LXL04 |
| LC | 20230721 | 碳酸锂 | ZLLC10 | ZLLC00 | ZLLC11 | QILC10 | LXLC00 | LXLC01 | LXLC02 | LXLC03 | LXLC04 |
| LG | 20241118 | 原木 | ZLLG10 | ZLLG00 | ZLLG11 | QILG10 | LXLG00 | LXLG01 | LXLG02 | LXLG03 | LXLG04 |
| LH | 20210108 | 生猪 | ZLLH10 | ZLLH00 | ZLLH11 | QILH10 | LXLH00 | LXLH01 | LXLH02 | LXLH03 | LXLH04 |
| LR | 20140708 | 晚籼稻 | ZLLR10 | ZLLR00 | ZLLR11 | QILR10 | LXLR00 | LXLR01 | LXLR02 | LXLR03 | LXLR04 |
| LU | 20200622 | 低硫燃料油 | ZLLU10 | ZLLU00 | ZLLU11 | QILU10 | LXLU00 | LXLU01 | LXLU02 | LXLU03 | LXLU04 |
| M | 20000717 | 豆粕 | ZLM10 | ZLM00 | ZLM11 | QIM10 | LXM00 | LXM01 | LXM02 | LXM03 | LXM04 |
| MA | 20140617 | 甲醇 | ZLMA10 | ZLMA00 | ZLMA11 | QIMA10 | LXMA00 | LXMA01 | LXMA02 | LXMA03 | LXMA04 |
| NI | 20150327 | 镍 | ZLNI10 | ZLNI00 | ZLNI11 | QINI10 | LXNI00 | LXNI01 | LXNI02 | LXNI03 | LXNI04 |
| NR | 20190812 | 20号胶 | ZLNR10 | ZLNR00 | ZLNR11 | QINR10 | LXNR00 | LXNR01 | LXNR02 | LXNR03 | LXNR04 |
| OI | 20120716 | 菜籽油 | ZLOI10 | ZLOI00 | ZLOI11 | QIOI10 | LXOI00 | LXOI01 | LXOI02 | LXOI03 | LXOI04 |
| OP | 20250910 | 胶版印刷纸 | ZLOP10 | ZLOP00 | ZLOP11 | QIOP10 | LXOP00 | LXOP01 | LXOP02 | LXOP03 | LXOP04 |
| P | 20071029 | 棕榈油 | ZLP10 | ZLP00 | ZLP11 | QIP10 | LXP00 | LXP01 | LXP02 | LXP03 | LXP04 |
| PB | 20110324 | 铅 | ZLPB10 | ZLPB00 | ZLPB11 | QIPB10 | LXPB00 | LXPB01 | LXPB02 | LXPB03 | LXPB04 |
| PF | 20201012 | 短纤 | ZLPF10 | ZLPF00 | ZLPF11 | QIPF10 | LXPF00 | LXPF01 | LXPF02 | LXPF03 | LXPF04 |
| PG | 20200330 | 液化石油气 | ZLPG10 | ZLPG00 | ZLPG11 | QIPG10 | LXPG00 | LXPG01 | LXPG02 | LXPG03 | LXPG04 |
| PK | 20210201 | 花生 | ZLPK10 | ZLPK00 | ZLPK11 | QIPK10 | LXPK00 | LXPK01 | LXPK02 | LXPK03 | LXPK04 |
| PL | 20250722 | 丙烯 | ZLPL10 | ZLPL00 | ZLPL11 | QIPL10 | LXPL00 | LXPL01 | LXPL02 | LXPL03 | LXPL04 |
| PM | 20120117 | 普麦 | ZLPM10 | ZLPM00 | ZLPM11 | QIPM10 | LXPM00 | LXPM01 | LXPM02 | LXPM03 | LXPM04 |
| PP | 20140228 | 聚丙烯 | ZLPP10 | ZLPP00 | ZLPP11 | QIPP10 | LXPP00 | LXPP01 | LXPP02 | LXPP03 | LXPP04 |
| PR | 20240830 | 瓶片 | ZLPR10 | ZLPR00 | ZLPR11 | QIPR10 | LXPR00 | LXPR01 | LXPR02 | LXPR03 | LXPR04 |
| PS | 20241226 | 多晶硅 | ZLPS10 | ZLPS00 | ZLPS11 | QIPS10 | LXPS00 | LXPS01 | LXPS02 | LXPS03 | LXPS04 |
| PX | 20230915 | 对二甲苯 | ZLPX10 | ZLPX00 | ZLPX11 | QIPX10 | LXPX00 | LXPX01 | LXPX02 | LXPX03 | LXPX04 |
| RB | 20090327 | 螺纹钢 | ZLRB10 | ZLRB00 | ZLRB11 | QIRB10 | LXRB00 | LXRB01 | LXRB02 | LXRB03 | LXRB04 |
| RI | 20120724 | 早籼稻 | ZLRI10 | ZLRI00 | ZLRI11 | QIRI10 | LXRI00 | LXRI01 | LXRI02 | LXRI03 | LXRI04 |
| RM | 20121228 | 菜籽粕 | ZLRM10 | ZLRM00 | ZLRM11 | QIRM10 | LXRM00 | LXRM01 | LXRM02 | LXRM03 | LXRM04 |
| RR | 20190816 | 粳米 | ZLRR10 | ZLRR00 | ZLRR11 | QIRR10 | LXRR00 | LXRR01 | LXRR02 | LXRR03 | LXRR04 |
| RS | 20121228 | 油菜籽 | ZLRS10 | ZLRS00 | ZLRS11 | QIRS10 | LXRS00 | LXRS01 | LXRS02 | LXRS03 | |
| RU | 19931101 | 天然橡胶 | ZLRU10 | ZLRU00 | ZLRU11 | QIRU10 | LXRU00 | LXRU01 | LXRU02 | LXRU03 | LXRU04 |
| SA | 20191206 | 纯碱 | ZLSA10 | ZLSA00 | ZLSA11 | QISA10 | LXSA00 | LXSA01 | LXSA02 | LXSA03 | LXSA04 |
| SC | 20180326 | 原油 | ZLSC10 | ZLSC00 | ZLSC11 | QISC10 | LXSC00 | LXSC01 | LXSC02 | LXSC03 | LXSC04 |
| SF | 20140808 | 硅铁 | ZLSF10 | ZLSF00 | ZLSF11 | QISF10 | LXSF00 | LXSF01 | LXSF02 | LXSF03 | LXSF04 |
| SH | 20230915 | 烧碱 | ZLSH10 | ZLSH00 | ZLSH11 | QISH10 | LXSH00 | LXSH01 | LXSH02 | LXSH03 | LXSH04 |
| SI | 20221222 | 工业硅 | ZLSI10 | ZLSI00 | ZLSI11 | QISI10 | LXSI00 | LXSI01 | LXSI02 | LXSI03 | LXSI04 |
| SM | 20140808 | 锰硅 | ZLSM10 | ZLSM00 | ZLSM11 | QISM10 | LXSM00 | LXSM01 | LXSM02 | LXSM03 | LXSM04 |
| SN | 20150327 | 锡 | ZLSN10 | ZLSN00 | ZLSN11 | QISN10 | LXSN00 | LXSN01 | LXSN02 | LXSN03 | LXSN04 |
| SP | 20181127 | 纸浆 | ZLSP10 | ZLSP00 | ZLSP11 | QISP10 | LXSP00 | LXSP01 | LXSP02 | LXSP03 | LXSP04 |
| SR | 20060106 | 白糖 | ZLSR10 | ZLSR00 | ZLSR11 | QISR10 | LXSR00 | LXSR01 | LXSR02 | LXSR03 | LXSR04 |
| SS | 20190925 | 不锈钢 | ZLSS10 | ZLSS00 | ZLSS11 | QISS10 | LXSS00 | LXSS01 | LXSS02 | LXSS03 | LXSS04 |
| T | 20150320 | 10年期国债 | ZLT10 | ZLT00 | ZLT11 | QIT10 | LXT00 | LXT01 | LXT02 | | |
| TA | 20061218 | PTA | ZLTA10 | ZLTA00 | ZLTA11 | QITA10 | LXTA00 | LXTA01 | LXTA02 | LXTA03 | LXTA04 |
| TF | 20130906 | 5年期国债 | ZLTF10 | ZLTF00 | ZLTF11 | QITF10 | LXTF00 | LXTF01 | LXTF02 | | |
| TL | 20230421 | 30年期国债 | ZLTL10 | ZLTL00 | ZLTL11 | QITL10 | LXTL00 | LXTL01 | LXTL02 | | |
| TS | 20180817 | 2年期国债 | ZLTS10 | ZLTS00 | ZLTS11 | QITS10 | LXTS00 | LXTS01 | LXTS02 | | |
| UR | 20190809 | 尿素 | ZLUR10 | ZLUR00 | ZLUR11 | QIUR10 | LXUR00 | LXUR01 | LXUR02 | LXUR03 | LXUR04 |
| V | 20090525 | 聚氯乙烯 | ZLV10 | ZLV00 | ZLV11 | QIV10 | LXV00 | LXV01 | LXV02 | LXV03 | LXV04 |
| WH | 20120724 | 强麦 | ZLWH10 | ZLWH00 | ZLWH11 | QIWH10 | LXWH00 | LXWH01 | LXWH02 | LXWH03 | LXWH04 |
| WR | 20090327 | 线材 | ZLWR10 | ZLWR00 | ZLWR11 | QIWR10 | LXWR00 | LXWR01 | LXWR02 | LXWR03 | LXWR04 |
| Y | 20060109 | 豆油 | ZLY10 | ZLY00 | ZLY11 | QIY10 | LXY00 | LXY01 | LXY02 | LXY03 | LXY04 |
| ZC | 20150518 | 动力煤 | ZLZC10 | ZLZC00 | ZLZC11 | QIZC10 | LXZC00 | LXZC01 | LXZC02 | LXZC03 | LXZC04 |
| ZN | 20070326 | 锌 | ZLZN10 | ZLZN00 | ZLZN11 | QIZN10 | LXZN00 | LXZN01 | LXZN02 | LXZN03 | LXZN04 |
###### FuturesContinueCode
@ -667,7 +659,6 @@ return FuturesAllPZCode();
参数:无(使用 pn_stock
返回:连续合约代码。
范例
```tsl
@ -682,7 +673,6 @@ return FuturesContinueCode(); // 返回'LXCU00'
参数:无(使用 pn_stock
返回:连一合约代码。
范例
```tsl
@ -697,7 +687,6 @@ return FuturesContinueCode1(); // 返回'LXCU01'
参数:无(使用 pn_stock
返回:连二合约代码。
范例
```tsl
@ -726,7 +715,6 @@ return FuturesContinueCode3(); // 返回"LXCU03"
参数:无(使用 pn_stock
返回:指数线代码。
范例
```tsl
@ -739,9 +727,9 @@ return FuturesIndexCode(); // 返回'IFInd'
用途:将合约代码转换为指定日品种代码。
参数:
- code合约代码按系统日期 pn_date 处理)
返回:品种代码。
- code合约代码按系统日期 pn_date 处理)
返回:品种代码。
范例
@ -754,11 +742,11 @@ return Futurescodetopzendt("LXA01"); // 返回"A"
用途:获取指定日指定类型的衍生合约品种代码。
参数:
- endt日期
- future_type期货类型标记
- id_type返回类型标记
返回:品种代码列表。
返回:品种代码列表。
范例
@ -777,7 +765,6 @@ return GetFuturesDerivedIDByEndt(endt, future_type, id_type);
参数:无(使用 pn_stock
返回:连四合约代码。
范例
```tsl
@ -793,7 +780,6 @@ return FuturesContinueCode4();
参数:无(使用 pn_stock
返回:次主力线代码。
范例
```tsl
@ -809,7 +795,6 @@ return FuturesIDToCZL();
参数:无(使用 pn_stock/pn_date
返回:结算价。
算法
1、有成交
@ -868,9 +853,9 @@ return FuturesSettlement(); // 结果468.8
用途:获取合约最后交易日。
参数:
- code合约代码
返回:最后交易日。
- code合约代码
返回:最后交易日。
范例
@ -884,10 +869,10 @@ return qh_LastTradeDay('IF1210');
用途:获取指定日距交割日的交易天数。
参数:
- code合约代码
- endt日期
返回:交易天数。
返回:交易天数。
范例
@ -937,52 +922,58 @@ return FuturesDeliveryDaysbyEndt('CU2101', 20200320T);
用途:指定日成交量前 N 名合计变动。
参数:
- args内部调用参数按系统约定
返回:成交量合计变动值。
返回:成交量合计变动值。
####### futuresmtpnonoigrow
用途:指定日持仓量排名第 N 的变动。
参数:
- args内部调用参数按系统约定
返回:持仓量变动值。
返回:持仓量变动值。
####### futuresmtpinstitutoigrow
用途:指定日指定结算会员持仓量变动。
参数:
- args内部调用参数按系统约定
返回:持仓量变动值。
返回:持仓量变动值。
####### futuresmtpsumnoigrow
用途:指定日持仓量前 N 名合计变动。
参数:
- args内部调用参数按系统约定
返回:持仓量合计变动值。
返回:持仓量合计变动值。
####### futuresmtpinstitutvolgrow
用途:指定日指定结算会员成交量变动。
参数:
- args内部调用参数按系统约定
返回:成交量变动值。
返回:成交量变动值。
####### futuresmtpnonvolgrow
用途:指定日成交量排名第 N 的变动。
参数:
- args内部调用参数按系统约定
返回:成交量变动值。
返回:成交量变动值。
####### FuturesMTPSumNPercent
用途:指定日成交量排名前 N 名占比合计。
参数:
- endt交易日期
- n名次
返回:成交量占比合计(%)。
返回:成交量占比合计(%)。
范例
@ -996,10 +987,10 @@ return FuturesMTPSumNPercent(20240201T, 3);
用途:指定日成交量排名前 N 名合计。
参数:
- endt交易日期
- n名次
返回:成交量合计值。
返回:成交量合计值。
范例
@ -1013,11 +1004,11 @@ return FuturesMTPSumNVol(20240201T, 3);
用途:指定日持仓量排名第 N 的占比。
参数:
- endt交易日期
- n名次
- flag类型标记按示例传入
返回:持仓量占比(%)。
返回:持仓量占比(%)。
范例
@ -1031,10 +1022,10 @@ return FuturesMTPNoNOIPercent(20240201T, 3, 1);
用途:指定日成交量排名第 N 的占比。
参数:
- endt交易日期
- n名次
返回:成交量占比(%)。
返回:成交量占比(%)。
范例
@ -1048,10 +1039,10 @@ return FuturesMTPNoNPercent(20240201T, 3);
用途:指定日指定结算会员成交量占比。
参数:
- endt交易日期
- institution结算会员名称
返回:成交量占比(%)。
返回:成交量占比(%)。
范例
@ -1065,11 +1056,11 @@ return FuturesMTPInstitutPercent(20240201T, '东证期货');
用途:指定日指定结算会员持仓量。
参数:
- endt交易日期
- institution结算会员名称
- flag类型标记按示例传入
返回:持仓量。
返回:持仓量。
范例
@ -1083,11 +1074,11 @@ return FuturesMTPInstitutOI(20240201T, '东证期货', 1);
用途:指定日指定结算会员持仓量排名。
参数:
- endt交易日期
- institution结算会员名称
- flag类型标记按示例传入
返回:持仓量排名(整数)。
返回:持仓量排名(整数)。
范例
@ -1101,11 +1092,11 @@ return FuturesMTPInstitutOIRank(20240201T, '东证期货', 1);
用途:指定日指定结算会员持仓量占比。
参数:
- endt交易日期
- institution结算会员名称
- flag类型标记按示例传入
返回:持仓量占比(%)。
返回:持仓量占比(%)。
范例
@ -1119,11 +1110,11 @@ return FuturesMTPInstitutOIPercent(20240201T, '东证期货', 1);
用途:指定日持仓量排名第 N 的持仓量。
参数:
- endt交易日期
- n名次
- flag类型标记按示例传入
返回:持仓量。
返回:持仓量。
范例
@ -1137,10 +1128,10 @@ return FuturesMTPNoNOI(20240201T, 1, 1);
用途:指定日指定结算会员净持仓量。
参数:
- endt交易日期
- institution结算会员名称
返回:净持仓量。
返回:净持仓量。
范例
@ -1154,11 +1145,11 @@ return FuturesMTPInstitutNetOI(20240201T, '东证期货');
用途:指定日持仓量排名前 N 名合计。
参数:
- endt交易日期
- n名次
- flag类型标记按示例传入
返回:持仓量合计值。
返回:持仓量合计值。
范例
@ -1172,11 +1163,11 @@ return FuturesMTPSumNOI(20240201T, 1, 1);
用途:指定日持仓量排名前 N 名占比合计。
参数:
- endt交易日期
- n名次
- flag类型标记按示例传入
返回:持仓量占比合计(%)。
返回:持仓量占比合计(%)。
范例
@ -1190,10 +1181,10 @@ return FuturesMTPSumNOIPercent(20240201T, 1, 1);
用途:指定日成交量排名第 N 的结算会员名称。
参数:
- endt交易日期
- n名次
返回:结算会员名称。
返回:结算会员名称。
范例
@ -1207,10 +1198,10 @@ return FuturesMTPNoNName(20240201T, 1);
用途:指定日指定结算会员成交量排名。
参数:
- endt交易日期
- institution结算会员名称
返回:成交量排名(整数)。
返回:成交量排名(整数)。
范例
@ -1224,10 +1215,10 @@ return FuturesMTPInstitutRank(20240201T, '东证期货');
用途:指定日成交量排名第 N 的成交量。
参数:
- endt交易日期
- n名次
返回:成交量。
返回:成交量。
范例
@ -1241,10 +1232,10 @@ return FuturesMTPNoNVol(20240201T, 1);
用途:指定日指定结算会员成交量。
参数:
- endt交易日期
- institution结算会员名称
返回:成交量。
返回:成交量。
范例
@ -1258,11 +1249,11 @@ return FuturesMTPInstitutVol(20240201T, '东证期货');
用途:指定日持仓量排名第 N 的结算会员名称。
参数:
- endt交易日期
- n名次
- flag类型标记按示例传入
返回:结算会员名称。
返回:结算会员名称。
范例
@ -1286,10 +1277,11 @@ return FuturesMTPNoNOIName(20240201T, 2, 2);
用途:获取指定标的的成交持仓排名数据表。
参数:
- code合约或品种代码
- endt交易日期
- item_name指标名称
返回:结果表。
返回:结果表。
范例
@ -1297,16 +1289,16 @@ return FuturesMTPNoNOIName(20240201T, 2, 2);
return FuturesMTPGetData('TF2403', 20240201T, '成交量排名');
```
######## FuturesMTPGetDataQJ
用途:获取指定标的区间内的成交持仓排名数据表。
参数:
- code合约或品种代码
- begt起始日期
- endt结束日期
- flag类型标记按示例传入
返回:结果表。
返回:结果表。
范例
@ -1314,17 +1306,17 @@ return FuturesMTPGetData('TF2403', 20240201T, '成交量排名');
return FuturesMTPGetDataQJ('TF2403', 20240201T, 20240202T, 0);
```
######## FuturesMTPInstitutValue
用途:获取指定结算会员的成交持仓指标值。
参数:
- code合约或品种代码
- endt交易日期
- institution结算会员名称
- item_name指标名称
- flag类型标记按示例传入
返回:指标值。
返回:指标值。
范例
@ -1337,12 +1329,13 @@ return FuturesMTPInstitutValue('TF2403', 20240201T, '东证期货', '数量', 0)
用途:获取成交量排名前 N 名的指定指标值。
参数:
- code合约或品种代码
- endt交易日期
- n名次
- item_name指标名称
- flag类型标记按示例传入
返回:指标值。
返回:指标值。
范例
@ -1355,12 +1348,13 @@ return FuturesMTPSumNVolValue('TF2403', 20240201T, 1, '数量', 0);
用途:获取成交量排名第 N 名的指定指标值。
参数:
- code合约或品种代码
- endt交易日期
- n名次
- item_name指标名称
- flag类型标记按示例传入
返回:指标值。
返回:指标值。
范例
@ -1380,15 +1374,18 @@ return FuturesMTPNoNVolValue('TF2403', 20240201T, 1, '数量', 0);
用途:获取区间平均成交量。
参数:
- args内部调用参数按系统约定
返回:区间平均成交量。
返回:区间平均成交量。
####### futuresmtpavgoi
用途:获取区间平均持仓量。
参数:
- args内部调用参数按系统约定
返回:区间平均持仓量。
返回:区间平均持仓量。
##### 成交持仓排名
###### 内容
@ -1399,10 +1396,10 @@ return FuturesMTPNoNVolValue('TF2403', 20240201T, 1, '数量', 0);
用途:获取指定日成交持仓排名数据。
参数:
- endt交易日期
- out_table输出表
返回是否查询成功1/0
返回是否查询成功1/0
范例
@ -1412,7 +1409,6 @@ GetFuturesTradeRankingByDate(20150722T, t);
return t;
```
##### 期现指标
###### 内容
@ -1427,7 +1423,6 @@ return t;
参数:无(使用 pn_stock/pn_date
返回:基差值。
算法期货价格 - 现货价格范例
```tsl
@ -1442,9 +1437,9 @@ return FuturesBasis();
用途:获取升贴水率(可按年化口径)。
参数:
- flag类型标记按示例传入
返回:升贴水率(%)。
- flag类型标记按示例传入
返回:升贴水率(%)。
算法(期货价格-现货价格)/现货价格\*100
@ -1466,7 +1461,6 @@ return FuturesPremiumRate(1);
参数:无(使用 pn_stock/pn_date
返回:期现成交金额比。
算法期货价格成交金额/现货价格成交金额范例
```tsl
@ -1492,7 +1486,6 @@ return FuturesSpotAmountRatio();
参数:无(使用 pn_stock
返回:可交割债券数量。
范例
```tsl
@ -1505,9 +1498,9 @@ return FuturesDeliverBondNum();
用途:判断债券是否可交割。
参数:
- bond_id债券代码
返回是否可交割1/0
- bond_id债券代码
返回是否可交割1/0
范例
@ -1521,9 +1514,9 @@ return FuturesIsDeliverBond("BK210007");
用途:获取可交割债券转换因子。
参数:
- bond_id债券代码
返回:转换因子。
- bond_id债券代码
返回:转换因子。
范例
@ -1543,9 +1536,9 @@ return FuturesConverFactor("BK210007");
用途:获取可交割债券相关指标值。
参数:
- bond_id债券代码
返回:指标值。
- bond_id债券代码
返回:指标值。
范例

View File

@ -10,17 +10,17 @@
接口汇总:
| 所属分类 | 接口名称 | 说明 | 备注 |
| --- | --- | --- | --- |
| 总接口 | fastmap | 调用网格执行函数 | |
| 日志 | gridLogo | 网格写日志 | |
| 等分划分方式 | splitDiv | 度等分划分 | 参数为度int |
| | splitDiv2 | 长度等分划分 | |
| | SplitArrayQK | 数组等分划分 | 参数为数组array |
| | SplitArrayQK2 | 数组等分划分 | |
| 用户数据相关 | DeleteTablebyReg | 批量删除用户数据 | 正则匹配 |
| | GettablebyReg | 获取用户数据 | 正则匹配 |
| | TryInsetTable | 添加用户数据 | 正则匹配 |
| 所属分类 | 接口名称 | 说明 | 备注 |
| ------------ | ---------------- | ---------------- | ------------------- |
| 总接口 | fastmap | 调用网格执行函数 | |
| 日志 | gridLogo | 网格写日志 | |
| 等分划分方式 | splitDiv | 度等分划分 | 参数为度int |
| | splitDiv2 | 长度等分划分 | |
| | SplitArrayQK | 数组等分划分 | 参数为数组array |
| | SplitArrayQK2 | 数组等分划分 | |
| 用户数据相关 | DeleteTablebyReg | 批量删除用户数据 | 正则匹配 |
| | GettablebyReg | 获取用户数据 | 正则匹配 |
| | TryInsetTable | 添加用户数据 | 正则匹配 |
网格使用经验:
@ -132,7 +132,6 @@ end;
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -174,7 +173,6 @@ return unit(MultiProc_unit).splitDiv2(14, 5); // array(0,3,6,9,12,14)
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -188,7 +186,6 @@ return unit(MultiProc_unit).SplitArrayQK(arr, 5); // array((2,1),(3,4),(9,5),(7,
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -203,7 +200,6 @@ return unit(MultiProc_unit).SplitArrayQK2(arr, 5);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -216,7 +212,6 @@ return unit(MultiProc_unit).DeleteTablebyReg('test');
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -229,7 +224,6 @@ return unit(MultiProc_unit).GettablebyReg('test');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl

View File

@ -29,7 +29,6 @@
参数arg1按示例顺序传入
返回:整数。
范例
```tsl
@ -37,14 +36,12 @@
return GetIndexes(0);
```
###### IndexCount
用途:基本信息相关函数。
参数arg1按示例顺序传入
返回:整数。
范例
```tsl
@ -60,7 +57,6 @@ return IndexCount(0);
参数arg1按示例顺序传入
返回:布尔值。
范例
```tsl
@ -75,7 +71,6 @@ return IsIndex('SH000300');
参数:无。
返回:整数。
范例
```tsl
@ -107,7 +102,6 @@ return MarkIndex();
参数arg1arg2arg3按示例顺序传入
返回:日期或时间值。
范例
```tsl
@ -116,14 +110,12 @@ GetBkWeightByDate('SH000300', inttodate(20120521), t);
return t;
```
###### IndexIndusNoNCode
用途:指数成分相关函数。
参数arg1arg2arg3按示例顺序传入
返回:整数。
范例
```tsl
@ -138,7 +130,6 @@ return IndexIndusNoNCode(20200924T, 2, 1); // 结果:金融业
参数arg1arg2arg3按示例顺序传入
返回:整数。
范例
```tsl
@ -153,7 +144,6 @@ return IndexIndusNoNWeight(20200924T, 2, 1); // 结果28.686091977063
参数arg1arg2arg3按示例顺序传入
返回:整数。
范例
```tsl
@ -168,7 +158,6 @@ return IndexIndusSumNWeight(20200924T, 2, 1); // 结果28.4782510781865
参数arg1arg2arg3按示例顺序传入
返回:整数。
范例
```tsl
@ -184,7 +173,6 @@ return IndexIndusWeightByDate("制造业", 20200924T, 1);
参数arg1arg2按示例顺序传入
返回:整数。
范例
```tsl
@ -199,7 +187,6 @@ return IndexStockNoNCode(20200924T, 2); // 结果SH600519
参数arg1arg2按示例顺序传入
返回:整数。
范例
```tsl
@ -214,7 +201,6 @@ return IndexStockNoNWeight(20200924T, 2); // 结果5.0403035260277
参数arg1arg2按示例顺序传入
返回:整数。
范例
```tsl
@ -229,7 +215,6 @@ return IndexStockSumNWeight(20200924T, 2); // 结果10.2321520830025
参数arg1arg2按示例顺序传入
返回:整数。
范例
```tsl
@ -244,7 +229,6 @@ return IndexStockWeightByDate("SZ000002", 20200924T); // 结果1.177211680242
参数:无。
返回:整数。
范例
```tsl
@ -271,7 +255,6 @@ return IndexWeightFirstday();
返回:整数。
范例
```tsl
@ -279,7 +262,6 @@ return IndexWeightFirstday();
return IndexBkWeightbyDate1("SH000300", 20200924T);
```
####### IndexIndusWeightEndT
用途:指数成分相关函数。
@ -287,7 +269,6 @@ return IndexBkWeightbyDate1("SH000300", 20200924T);
返回:整数。
范例
```tsl
@ -295,7 +276,6 @@ return IndexBkWeightbyDate1("SH000300", 20200924T);
return IndexIndusWeightEndT("SH000300", 20200924T, 5);
```
####### IndexIndusWeightQJ
用途:指数成分相关函数。
@ -303,7 +283,6 @@ return IndexIndusWeightEndT("SH000300", 20200924T, 5);
返回:整数。
范例
```tsl
@ -311,24 +290,23 @@ return IndexIndusWeightEndT("SH000300", 20200924T, 5);
return IndexIndusWeightQJ("采矿业", "SH000300", 20200924T, 20201024T, 1);
```
| 日期 | 比例(%) |
| --- | --- |
| 日期 | 比例(%) |
| -------- | -------- |
| 20200924 | 2.408412 |
| 20200925 | 2.427721 |
| 20200928 | 2.430765 |
| 20200929 | 2.421326 |
| 20200930 | 2.403 |
| 20200930 | 2.403 |
| 20201009 | 2.395199 |
| 20201012 | 2.378841 |
| 20201013 | 2.372656 |
| 20201014 | 2.36017 |
| 20201014 | 2.36017 |
| 20201015 | 2.371956 |
| 20201016 | 2.391984 |
| 20201019 | 2.406972 |
| 20201020 | 2.391556 |
| 20201021 | 2.408709 |
| 20201022 | 2.40587 |
| 20201022 | 2.40587 |
| 20201023 | 2.427601 |
####### IndexStockWeightQJ
@ -338,7 +316,6 @@ return IndexIndusWeightQJ("采矿业", "SH000300", 20200924T, 20201024T, 1);
返回:整数。
范例
```tsl
@ -346,14 +323,13 @@ return IndexIndusWeightQJ("采矿业", "SH000300", 20200924T, 20201024T, 1);
return IndexStockWeightQJ("SZ000002", "SH000300", 20200924T, 20201024T);
```
| 日期 | 比例(%) |
| --- | --- |
| 日期 | 比例(%) |
| -------- | -------- |
| 20200924 | 1.177212 |
| 20200925 | 1.155361 |
| 20200928 | 1.184873 |
| 20200929 | 1.177786 |
| 20200930 | 1.167 |
| 20200930 | 1.167 |
| 20201009 | 1.144103 |
| 20201012 | 1.121512 |
| 20201013 | 1.105153 |
@ -390,7 +366,6 @@ return IndexStockWeightQJ("SZ000002", "SH000300", 20200924T, 20201024T);
返回:整数。
算法
1、指数市盈率(总股本加权,全部样本) =∑(成分股i总市值) /∑(成分股i最近12个月净利润)
@ -420,7 +395,6 @@ return Index_PE(0, 0);
返回:整数。
算法
1、指数市净率(总股本加权,全部样本) =∑(成分股i总市值)
@ -451,7 +425,6 @@ return Index_PB(0, 0);
返回:整数。
算法
1、指数市销率(总股本加权,全部样本) =∑(成分股i总市值)
@ -484,7 +457,6 @@ return Index_PSR(0, 0);
返回:整数。
算法
1、指数市现率(总股本加权,全部样本) =∑(成分股i总市值)
@ -515,7 +487,6 @@ return Index_PCF(0, 0);
返回:整数。
算法
1、指数市盈率(总股本加权,全部样本)=∑(成分股i总市值)/∑(成分股i最新年报净利润)
@ -542,7 +513,6 @@ return Index_PE2(0, 0);
返回:整数。
算法
1、指数市现率(总股本加权,全部样本)=∑(成分股i总市值)/∑(成分股i最新年报经营活动产生的现金流量净额)
@ -568,7 +538,6 @@ return Index_PCF2(0, 0);
返回:整数。
算法
1、指数市销率(总股本加权,全部样本)=∑(成分股i总市值)/∑(成分股i最新年报主营收入)
@ -595,7 +564,6 @@ return Index_PSR2(0, 0);
返回:整数。
算法
1、指数市净率(总股本加权,全部样本)=∑(成分股i总市值)/∑(成分股i最新年报的净资产)
@ -631,7 +599,6 @@ return Index_PB2(0, 0);
返回:整数。
范例
范例1
@ -661,7 +628,6 @@ return Index_CallPB(-1, 0, 0, 0);
返回:整数。
范例
范例1
@ -691,7 +657,6 @@ return Index_CallPE(-1, 0, 0, 0);
返回:整数。
范例
范例1
@ -721,7 +686,6 @@ return Index_CallPSR(-1, 0, 0, 0);
返回:整数。
范例
范例1
@ -751,7 +715,6 @@ return Index_CallPCF(-1, 0, 0, 0);
返回:整数。
范例
范例1
@ -781,7 +744,6 @@ return Index_CallDP(-1, 0, 0, 0);
返回:整数。
范例
```tsl
@ -798,7 +760,6 @@ return Index_Value(0, 0, 1);
返回:整数。
范例
```tsl
@ -813,7 +774,6 @@ return spec(Index_Val_Firstday(), 'SH000300');
返回:整数。
范例
```tsl
@ -836,7 +796,6 @@ return spec(Index_Val_LastUpday(), 'SH000300');
返回:整数。
范例
```tsl
@ -867,7 +826,6 @@ return SimulateIndexDEMO('SH000300', 20111230T, 20131231T, 1, 2, 0);
返回:日期或时间值。
范例
范例01
@ -877,7 +835,6 @@ return SimulateIndexDEMO('SH000300', 20111230T, 20131231T, 1, 2, 0);
return GetBkByDate('SH00300', inttodate(20120908));
```
范例02
```tsl
@ -905,7 +862,6 @@ return GetBKByDate("SZ399102", 20201201T, 1); // 取权重中的成份股替代
返回:整数。
范例
```tsl
@ -924,7 +880,6 @@ return StockInandOutIndexCompisteDetail(SH000300, begt, endt);
返回:整数。
范例
```tsl
@ -954,7 +909,6 @@ return StockIsIndexComposite('SH000300', inttodate(20120907));
返回:日期或时间值。
范例
```tsl
@ -969,7 +923,6 @@ return GetBKBacktrackByDate("SWHY740000", 20140805T);
返回:日期或时间值。
范例
```tsl
@ -984,7 +937,6 @@ return GetBKGoMarketByDate("SZ399102", 20201201T, 1);
返回:整数。
范例
```tsl
@ -999,7 +951,6 @@ return GetBKByIndexName("A股", 20201201T);
返回:处理后的结果值。
范例
```tsl
@ -1014,7 +965,6 @@ return GetBKNameToId("A股", 20201201T);
返回:整数。
范例
```tsl
@ -1038,7 +988,6 @@ return GetAllIndexIDs(20251029T);
返回:整数。
范例
范例1
@ -1068,7 +1017,6 @@ return Index_CallFinancialItemPS (13, 0, 0, 4, 0);
返回:整数。
范例
范例1
@ -1098,7 +1046,6 @@ return Index_CallFinancialRatio(11, 0, 0, 16, 0);
返回:整数。
范例
范例1
@ -1136,14 +1083,12 @@ return Index_CallROE(12, 0, 0, 1);
返回:整数。
范例
```tsl
return TSFL_IndexValuePCTSeries('SH000300', 20180101T, 20181231T, '日', 30, 0, 0, 0, 0);
```
###### GetIndexValuePCT
用途:估值走势和百分位相关函数。
@ -1151,7 +1096,6 @@ return TSFL_IndexValuePCTSeries('SH000300', 20180101T, 20181231T, '日', 30, 0,
返回:整数。
范例
```tsl
@ -1227,7 +1171,6 @@ return GetIndexValuePCT('SH000300', 20180101T, 20181231T, '日', 0, 0, 0, 0, 5);
返回:整数。
范例
```tsl
@ -1244,7 +1187,6 @@ return IndexHoldersIncreaseValue(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1261,7 +1203,6 @@ return IndexHoldersReducePercent2(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1278,7 +1219,6 @@ return IndexHoldersNetChangeValue(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1295,7 +1235,6 @@ return IndexHoldersIncreasePercent2(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1312,7 +1251,6 @@ return IndexHoldersReduceValue(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1329,7 +1267,6 @@ return IndexHoldersReducePercent(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1346,7 +1283,6 @@ return IndexHoldersNetChangePercent(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1363,7 +1299,6 @@ return IndexHoldersIncreaseComNum(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1380,7 +1315,6 @@ return IndexHoldersReduceComNum(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1397,7 +1331,6 @@ return IndexHoldersNetChangeComNum(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1414,7 +1347,6 @@ return IndexHoldersIncreaseComList(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1431,7 +1363,6 @@ return IndexHoldersReduceComList(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1448,7 +1379,6 @@ return IndexHoldersNetChangeComList(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1465,7 +1395,6 @@ return IndexHoldersIncreaseValueQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1482,7 +1411,6 @@ return IndexHoldersReduceValueQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1499,7 +1427,6 @@ return IndexHoldersNetChangeValueQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1516,7 +1443,6 @@ return IndexHoldersIncreasePercentQJ2(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1533,7 +1459,6 @@ return IndexHoldersReducePercentQJ2(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1550,7 +1475,6 @@ return IndexHoldersNetChangePercentQJ2(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1567,7 +1491,6 @@ return IndexHoldersIncreasePercentQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1584,7 +1507,6 @@ return IndexHoldersReducePercentQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1601,7 +1523,6 @@ return IndexHoldersNetChangePercentQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1618,7 +1539,6 @@ return IndexHoldersIncreaseComNumQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1635,7 +1555,6 @@ return IndexHoldersReduceComNumQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1652,7 +1571,6 @@ return IndexHoldersNetChangeComNumQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1670,7 +1588,6 @@ return IndexHoldersIncreaseComListQJ(IndexID, 20150812T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1687,7 +1604,6 @@ return IndexHoldersReduceComListQJ(IndexID, 20150801T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1705,7 +1621,6 @@ return IndexHoldersNetChangeComListQJ(IndexID, 20150812T, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1722,7 +1637,6 @@ return IndexHoldersNetChangePercent2(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1774,7 +1688,6 @@ return IndexHoldersIncreasePercent(IndexID, 20150814T, 0);
返回:整数。
范例
```tsl
@ -1790,7 +1703,6 @@ return IndexDSSONetChangeValue("SW801001", 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -1806,7 +1718,6 @@ return IndexDSSOReduceValue("SW801001", 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -1822,7 +1733,6 @@ return IndexDSSOIncreaseValue("SW801001", 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -1838,7 +1748,6 @@ return IndexDSSOIncreasePercent2("SW801001", 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -1854,7 +1763,6 @@ return IndexDSSOReducePercent2("SW801001", 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -1870,7 +1778,6 @@ return IndexDSSONetChangePercent2("SW801001", 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -1886,7 +1793,6 @@ return IndexDSSOIncreasePercent("SW801001", 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -1902,7 +1808,6 @@ return IndexDSSOReducePercent("SW801001", 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -1918,7 +1823,6 @@ return IndexDSSONetChangePercent("SW801001", 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -1934,7 +1838,6 @@ return IndexDSSOIncreaseComNum("SW801001", 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -1950,7 +1853,6 @@ return IndexDSSOReduceComNum("SW801001", 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -1966,7 +1868,6 @@ return IndexDSSONetChangeComNum("SW801001", 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -1982,7 +1883,6 @@ return IndexDSSOIncreaseComList("SW801001", 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -1998,7 +1898,6 @@ return IndexDSSOReduceComList("SW801001", 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -2014,7 +1913,6 @@ return IndexDSSONetChangeComList("SW801001", 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -2030,7 +1928,6 @@ return IndexDSSOIncreaseValueQJ("SW801001", 20220926T, 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -2046,7 +1943,6 @@ return IndexDSSOReduceValueQJ("SW801001", 20141220T, 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -2062,7 +1958,6 @@ return IndexDSSONetChangeValueQJ("SW801001", 20150710T, 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -2078,7 +1973,6 @@ return IndexDSSOIncreasePercentQJ2("SW801001", 20220926T, 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -2094,7 +1988,6 @@ return IndexDSSOReducePercentQJ2("SW801001", 20141220T, 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -2110,7 +2003,6 @@ return IndexDSSONetChangePercentQJ2("SW801001", 20150710T, 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -2126,7 +2018,6 @@ return IndexDSSOIncreasePercentQJ("SW801001", 20220926T, 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -2142,7 +2033,6 @@ return IndexDSSOReducePercentQJ("SW801001", 20141220T, 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -2158,7 +2048,6 @@ return IndexDSSONetChangePercentQJ("SW801001", 20150710T, 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -2174,7 +2063,6 @@ return IndexDSSOIncreaseComNumQJ("SW801001", 20220926T, 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -2190,7 +2078,6 @@ return IndexDSSOReduceComNumQJ("SW801001", 20141220T, 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -2206,7 +2093,6 @@ return IndexDSSONetChangeComNumQJ("SW801001", 20150710T, 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -2222,7 +2108,6 @@ return IndexDSSOIncreaseComListQJ("SW801001", 20220926T, 20220927T, 0, 0);
返回:整数。
范例
```tsl
@ -2238,7 +2123,6 @@ return IndexDSSOReduceComListQJ("SW801001", 20141220T, 20141231T, 0, 0);
返回:整数。
范例
```tsl
@ -2273,7 +2157,6 @@ return IndexDSSONetChangeComListQJ("SW801001", 20150710T, 20150715T, 0, 0);
返回:整数。
范例
```tsl
@ -2291,7 +2174,6 @@ return IndexRestrictedBanNumQJ(IndexID, Begt, Endt, 0); // 结果4
返回:整数。
范例
```tsl
@ -2309,7 +2191,6 @@ return IndexRestrictedBanAndRSPercentQJ(IndexID, Begt, Endt, 0); // 结果0.2
返回:整数。
范例
```tsl
@ -2327,7 +2208,6 @@ return IndexRestrictedBanAndNRSPercentQJ(IndexID, Begt, Endt, 0); // 结果0.
返回:整数。
范例
```tsl
@ -2344,7 +2224,6 @@ return IndexRestrictedBanAndRSPercent(IndexID, Endt, 0); // 结果0.24
返回:整数。
范例
```tsl
@ -2361,7 +2240,6 @@ return IndexRestrictedBanMV(IndexID, Endt, 0); // 结果119034026555.92
返回:整数。
范例
```tsl
@ -2378,7 +2256,6 @@ return IndexRestrictedBanFutureAndNRSPercentQJ(IndexID, Endt, 0, 1); // 结果
返回:整数。
范例
```tsl
@ -2395,7 +2272,6 @@ return IndexRestrictedBanAndNRSPercent(IndexID, Endt, 0); // 结果0.79
返回:整数。
范例
```tsl
@ -2412,7 +2288,6 @@ return IndexRestrictedBanNum(IndexID, Endt, 0); // 结果3
返回:整数。
范例
```tsl
@ -2429,7 +2304,6 @@ return IndexRestrictedBanMVPercent(IndexID, Endt, 0); // 结果0.18
返回:整数。
范例
```tsl
@ -2446,7 +2320,6 @@ return IndexRestrictedBanFutureNum(IndexID, Endt, 0, 1); // 结果2
返回:整数。
范例
```tsl
@ -2463,7 +2336,6 @@ return IndexRestrictedBanFutureMVPercentQJ(IndexID, Endt, 0, 1); // 结果0.0
返回:整数。
范例
```tsl
@ -2481,7 +2353,6 @@ return IndexRestrictedBanMVPercentQJ(IndexID, Begt, Endt, 0); // 结果0.18
返回:整数。
范例
```tsl
@ -2499,7 +2370,6 @@ return IndexRestrictedBanMVQJ(IndexID, Begt, Endt, 0); // 结果119051796340.
返回:整数。
范例
```tsl
@ -2525,7 +2395,6 @@ return IndexRestrictedBanFutureAndRSPercentQJ(IndexID, Endt, 0, 1); // 结果:
返回:整数。
范例
```tsl
@ -2541,7 +2410,6 @@ return Index_RepurchaseStockNumQJ("SW801001", 20241001T, 20241031T, 0, 0);
返回:整数。
范例
```tsl
@ -2557,7 +2425,6 @@ return Index_RepurchaseMVQJ("SW801001", 20241001T, 20241031T, 0, 0, 0);
返回:整数。
范例
```tsl
@ -2573,7 +2440,6 @@ return Index_RepurchaseStockNum("SW801001", 20241031T, 0, 0);
返回:整数。
范例
```tsl

View File

@ -16,7 +16,6 @@ logger_debug(1234);
return 1;
```
##### logger_info
范例
@ -26,7 +25,6 @@ logger_info("当前执行第100个");
return 1;
```
##### logger_warning
范例
@ -36,7 +34,6 @@ logger_warning("当前执行第100个");
return 1;
```
##### logger_info2
范例

View File

@ -26,7 +26,6 @@
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -288,7 +287,6 @@ return CU_ChinaCode();
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -304,7 +302,6 @@ return HG_StockSettlementBalance(20170101T, 20181008T);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -320,7 +317,6 @@ return HG_StockSettlementBalanceByEndT(20181008T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法
从证券及股票期权投资者资金余额及变动813表中获取三个表
@ -347,7 +343,6 @@ return HG_StockPeriodBalance(20170101T, 20181008T);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -363,7 +358,6 @@ return HG_OptionMarginBalanceByEndT(20181008T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -379,7 +373,6 @@ return HG_MoneyRollIn(20170101T, 20181008T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -395,7 +388,6 @@ return HG_OptionMarginBalance(20170101T, 20181008T);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -411,7 +403,6 @@ return HG_StockGuaranteeBalanceByEndT(20181008T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -426,7 +417,6 @@ return HG_MoneyNetRollIn(20170101T, 20181008T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -441,7 +431,6 @@ return HG_MoneyRollOut(20170101T, 20181008T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -804,7 +793,6 @@ return HG_StockGuaranteeBalance(20170101T, 20181008T);
参数:无。
返回:处理后的结果值。
范例
```tsl

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -32,7 +32,6 @@
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法最小恢复天=恢复到最大回撤起始日净值对应的日期-最大回撤起始日范例
```tsl
@ -50,7 +49,6 @@ return pf_MinRecoveryPeriod(arr, '涨幅(%)');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -69,7 +67,6 @@ return pf_WinRatio(arr1, '涨幅(%)', arr2, '涨幅(%)');
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -83,7 +80,6 @@ return pf_getVaRConfidence();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -98,7 +94,6 @@ return pf_getDayNnmOfYear();
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法
1、t表中Fname中数据均减去临界值MeanR得到t1表
@ -122,7 +117,6 @@ return pf_Omega(arr1, '涨幅(%)', 0.5);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -140,7 +134,6 @@ return pf_MaxDrawDown(arr1, '涨幅(%)');
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法Calmar比率=年化收益率/最大回撤率\*100范例
```tsl
@ -158,7 +151,6 @@ return pf_CalmarRatio(arr1, '涨幅(%)', 250);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
算法Rachev=(1-alpha)下的CVaR(无风险收益率-收益率)/(1-beta)下的CVaR(收益率-无风险收益率)其中CVAR代表风险度量范例
```tsl
@ -176,7 +168,6 @@ return pf_Rachev(arr1, '涨幅(%)', 0.05, 0.05, 0);
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法年化收益算术平均-标准正态分布置信度为0.95的随机变量\*年化标准差范例
```tsl
@ -854,7 +845,6 @@ return StockStandardDeviation2(20170801T, 20180801T, 20, 'SW101190');返回:1.18
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法波动额=(区间最高价-区间最低价)/区间最低价/区间成交金额范例
```tsl
@ -869,7 +859,6 @@ return StockAmplitudePerAmount(20180801T, 20180803T);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -884,7 +873,6 @@ return StockCashFlowInFuture(20170801T, 20180803T, 5, 10, 1);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -902,7 +890,6 @@ return pf_GiniCoefficient(s, 0);
参数arg1按示例顺序传入
返回:处理后的结果值。
算法
范例
@ -919,7 +906,6 @@ return pf_ILLIQ(20180820T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法
范例
@ -936,7 +922,6 @@ return pf_Amivest(20121231T, 18);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -955,7 +940,6 @@ return pf_GiniCoeff(s, 1);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法
1、计算每日v(最高价-最低价)/前收盘/成交量\*100000000
@ -974,7 +958,6 @@ return pf_Martin(20180801T, 18);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -991,7 +974,6 @@ return pf_CashFlowInFuture2(s, 20180801T, 20180830T, 5, 100);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法波动量=(区间最高价-区间最低价) /区间最低价/区间成交量\*1000000范例
```tsl
@ -1006,7 +988,6 @@ return StockAmplitudePerVolumn(20180801T, 20180831T);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法占流通股比例=持仓数量/流通股数量范例
```tsl
@ -1024,7 +1005,6 @@ return pf_SharevsNegotiableShare(s, 20180801T);
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
算法
成交金额法:返回市值和*冲击成本*数量/10000000
@ -1046,7 +1026,6 @@ return pf_StockLiquidityCost2(w, 20130830T, 5, 2, 2.25, 33);
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1065,7 +1044,6 @@ return pf_SecurityConcentrationRatio(s, 2, 9900, t);
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1098,7 +1076,6 @@ MaxRealizedPercent)*100
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1113,7 +1090,6 @@ return StockLiquidityCost(20180801T, 20180831T, 0, 2.25, 31);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1215,7 +1191,6 @@ return stockbeta2('SH000300', 20170801T, 20180801T, 120, 'sw801190');
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
算法
1、取证券区间的对数收益率序列y
@ -1243,7 +1218,6 @@ return pf_ComponentBeta2(w, 'SH000300', 20170801T, 20180801T, 10, 0);
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
算法
组合β= 所有证券的 W\*β之和
@ -1266,7 +1240,6 @@ return pf_Beta2(w, 'SH000300', 20170801T, 20180801T, 10, 0);
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法
(1)取证券区间的对数收益率序列y
@ -1289,7 +1262,6 @@ return StockRSquare('SH000300', 20170801T, 20180801T);
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
算法
证券的成份β贡献:
@ -1327,7 +1299,6 @@ return pf_ComponentBetaPercent2(w1, 'SH000300', 20170801T, 20180801T, 10, 0);
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
算法
证券的增量β
@ -1349,7 +1320,7 @@ return pf_ComponentBetaPercent2(w1, 'SH000300', 20170801T, 20180801T, 10, 0);
(2)β= 证券的Beta范例
```tsl
W :=
W :=
array(
("代码":"SH600048", "名称":"保利地产", "比例(%)":10.0, "行业代码":"SW801180"),
("代码":"SH600383", "名称":"金地集团", "比例(%)":20.0, "行业代码":"SW801180"),
@ -1366,7 +1337,6 @@ return pf_IncrementalBeta2(w, 'SH000300', 20170801T, 20180801T, 10, 0);
参数arg1arg2arg3arg4arg5arg6按示例顺序传入
返回:处理后的结果值。
算法
证券的边际β
@ -1378,7 +1348,7 @@ return pf_IncrementalBeta2(w, 'SH000300', 20170801T, 20180801T, 10, 0);
(3)做一元线性回归回归的斜率beta即边际β范例
```tsl
W :=
W :=
array(
("代码":"SH600048", "名称":"保利地产", "比例(%)":10.0, "行业代码":"SW801180"),
("代码":"SH600383", "名称":"金地集团", "比例(%)":20.0, "行业代码":"SW801180"),
@ -1547,7 +1517,6 @@ return pf_ComponentTrackingError2(w1, w2, 20180701T, 20180731T, 0, 0);
参数arg1arg2arg3arg4按示例顺序传入
返回:日期或时间值。
范例
```tsl
@ -1563,7 +1532,6 @@ return YTMOfFund_TimeSeries2('CSI000011', 20180801T, 20180831T, 0);
参数arg1arg2按示例顺序传入
返回:日期或时间值。
范例
```tsl
@ -1619,7 +1587,6 @@ return YTMOfCurrency_TimeSeries(20180101T, 20180801T);
参数arg1arg2arg3arg4arg5arg6arg7arg8arg9按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1682,7 +1649,6 @@ return BrinsonOfTrueTransanction(inttodate(20110104), inttodate(20110107), tAllB
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1694,14 +1660,12 @@ FJ := select ["沪深300"], ["中证500"], ["中证1000"] from data end;
return pf_MD_Arithmetic(data[:, "组合(%)"], data[:, "国债指数"], FJ);
```
####### Pf_md_contribution
用途:绩效归因相关函数。
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1713,7 +1677,6 @@ FJ := select ["沪深300"], ["中证500"], ["中证1000"] from data end;
return pf_MD_Contribution(data[:, "组合(%)"], data[:, "国债指数"], FJ);
```
###### 中间函数
####### 内容
@ -1733,7 +1696,6 @@ return pf_MD_Contribution(data[:, "组合(%)"], data[:, "国债指数"], FJ);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1752,7 +1714,6 @@ return BrinsonOfBPercentandReturn(t, endT);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1772,7 +1733,6 @@ return BrinsonOfPAttribution(t, 1);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1804,7 +1764,6 @@ return BrinsonOfPPercentandReturn(EndT, tpZCPZ, tpCC, JYData, vSGSH);
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1869,7 +1828,6 @@ return BrinsonOfRA(tP, tB, RPrev, 0);
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1895,7 +1853,6 @@ tB
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -1914,7 +1871,6 @@ return BrinsonOfBR(t, endt);
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2249,7 +2205,6 @@ return pf_InverstmentRatio(w1, w2);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2264,7 +2219,6 @@ return AddTitle(``array('a':1), 'b');
参数arg1arg2arg3arg4按示例顺序传入
返回:日期或时间值。
范例
```tsl
@ -2296,7 +2250,6 @@ return GetDateArr(20111230T, 20120914T, 1, '日线');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法R=d=1n1+rd-1\*100其中rd是d时点的收益率范例
```tsl
@ -2317,7 +2270,6 @@ return pf_CumulativeReturn(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2338,7 +2290,6 @@ return pf_StandardDeviation(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2359,7 +2310,6 @@ return pf_SemiDeviation(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2380,7 +2330,6 @@ return pf_StdOfUp(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2401,7 +2350,6 @@ return pf_StdOfDown(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2422,7 +2370,6 @@ return pf_PercentofUp(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2443,7 +2390,6 @@ return pf_PercentofDown(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2464,7 +2410,6 @@ return pf_AvgGain(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2485,7 +2430,6 @@ return pf_AvgGainOfUp(t, '涨幅(%)');
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2506,7 +2450,6 @@ return pf_AvgGainOfDown(t, '涨幅(%)');
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法
Sharp = ERP-Rf/σp其中ERP为收益率均值σp为收益率标准差范例
@ -2530,7 +2473,6 @@ return pf_SharpRatio(t, '涨幅(%)', Rf);
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法
Sharp = ERP-Rf/σp
@ -2589,7 +2531,6 @@ return pf_Alpha(t, '涨幅1', t, '涨幅2');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
算法
即组合收益率序列与基准收益率序列的回归斜率范例
@ -2613,7 +2554,6 @@ return pf_Beta(t, '涨幅1', t, '涨幅2');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
算法
即组合收益率序列与基准收益率序列的相对系数的平方范例
@ -2637,7 +2577,6 @@ return pf_R2(t, '涨幅1', t, '涨幅2');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
算法
TrackingError= σ(Yi-Xi),即组合收益率与基准收益率之差的标准差范例
@ -2661,7 +2600,6 @@ return pf_TrackingError(t, '涨幅1', t, '涨幅2');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
算法即组合收益率均值与基准收益率均值之差和跟踪误差之比值
IR=Y-XσYi-Xi范例
@ -2685,7 +2623,6 @@ return pf_InformationRatio(t, '涨幅1', t, '涨幅2');
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
算法TR=(X-Rf)/β其中X为组合收益率的均值β为组合beta范例
```tsl
@ -2708,7 +2645,6 @@ return pf_TreynorRatio(t, '涨幅1', t, '涨幅2', Rf);
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
算法Jensen=X-Rf-β\*(Y-Rf)其中X为组合收益率的均值β为组合betaY为基准收益率的均值范例
```tsl
@ -2731,7 +2667,6 @@ return pf_Jensen(t, '涨幅1', t, '涨幅2', Rf);
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
算法组合累计收益率与基准累计收益率之差范例
```tsl
@ -2755,7 +2690,6 @@ return pf_ExcessReturn(t, '涨幅1', t, '涨幅2');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2781,7 +2715,6 @@ return pf_Corr(s1, '涨幅%', s2, '基准');
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2796,14 +2729,12 @@ t := nday(n, '截止日', sp_time(), '涨幅1', spec(StockZf3(), stockid), '涨
return pf_TrailingReturn(t, '涨幅1', t, '涨幅2');
```
###### pf_ReturnandRisk
用途:收益相关函数。
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2820,14 +2751,12 @@ t := nday(n, '截止日', sp_time(),
return pf_ReturnandRisk(t, '涨幅1', t, '涨幅2');
```
###### pf_RollingReturn
用途:收益相关函数。
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2841,14 +2770,12 @@ t := nday(n, '截止日', sp_time(), '涨幅', spec(StockZf3(), stockid));
return pf_RollingReturn(t, '涨幅', begt, endt, cy_week());
```
###### Pf_RelativePerformance
用途:收益相关函数。
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2865,7 +2792,6 @@ t := nday(n, '截止日', sp_time(),
return Pf_RelativePerformance(t, '涨幅1', t, '涨幅2');
```
###### 中间函数
####### 内容
@ -2925,7 +2851,6 @@ return pf_AnnualFormula_(3, InformationRatio, YN);
参数arg1arg2arg3arg4arg5arg6arg7arg8arg9按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2945,7 +2870,6 @@ return Stocks_PredictAnalysis(w, 'SH000300', 20110101T, 20111231T, 0, '-5;-5;-10
参数arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10arg11arg12按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2965,7 +2889,6 @@ return pf_StressTestingOfPortfolio(w, 'SH000001', 20100101T, 20121231T, 5, -10,
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -2985,7 +2908,6 @@ return Stocks_HistAnalysis(w, 'SH000300', 20110808T, 20110809T, '10;30;70');
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -3002,7 +2924,6 @@ return pf_StressTestingOfBond(w, 20130131T, 0.1, 0, 0);
参数arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -3022,7 +2943,6 @@ return pf_StressTestingOfStock(w, 'SH000300', 20060101T, 20111231T, 10, 0, 5, -1
参数arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -3047,7 +2967,6 @@ return pf_StressTestingOfFund(W, 'SH000001', 20110831T, 20120831T, 10, 0, 5, -10
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
算法
单利:非年化收益率=年化收益率/周期(日,周,月)数量×100%
@ -3067,7 +2986,6 @@ return RiskFreeRateofReturnDayly(3, cy_day(), '单利', 250);
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
算法
复合收益率=((当天日收益率+1)*(1+昨日复合收益率)-1)*100其中初始日前一天复合收益率为0范例
@ -3086,7 +3004,6 @@ return pf_ReturnToCumulativeReturn(t, '涨幅%', 1);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
算法
日收益率=((当天复合收益率+1)/(1+前天复合收益率)-1)\*100其中初始日前一天复合收益率为0范例

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

View File

@ -129,7 +129,6 @@ return Fund_PF_HoldFeeling_Trend(FundID, begt, endt, MANum, delta);
返回:处理后的结果值。
范例
```tsl

File diff suppressed because it is too large Load Diff

View File

@ -87,7 +87,6 @@
返回:处理后的结果值。
范例
```tsl
@ -103,7 +102,6 @@ return DelPrecodeCallBack('SH600000');
返回:处理后的结果值。
范例
```tsl
@ -132,7 +130,6 @@ return IncPrecodeCallBack('000002.SZ');
返回:处理后的结果值。
范例
```tsl
@ -142,7 +139,6 @@ r := Query("", "SH600000;SZ000002", true, "", "代码", DefaultStockID(),
return ExtractData(r, 1, 0);
```
####### ExtractDataEx
用途:结果处理相关函数。
@ -150,7 +146,6 @@ return ExtractData(r, 1, 0);
返回:处理后的结果值。
范例
```tsl
@ -162,7 +157,6 @@ r := Query("", "SH600000;SZ000002", true, "", "代码", DefaultStockID(),
return ExtractDataEx(r, 1, 0, 1);
```
####### ExtractDataEx2
用途:结果处理相关函数。
@ -170,7 +164,6 @@ return ExtractDataEx(r, 1, 0, 1);
返回:处理后的结果值。
范例
```tsl
@ -183,7 +176,6 @@ r := Query("", "SH600000;SZ000002", true, "", "代码", DefaultStockID(),
return ExtractDataEx2(r, 1, 0, 1, 1);
```
####### ExtractDataLocalRun
####### ExtractDataLocalRun2
@ -193,7 +185,6 @@ return ExtractDataEx2(r, 1, 0, 1, 1);
返回:处理后的结果值。
范例
```tsl
@ -207,7 +198,6 @@ setsysparam(pn_data(), r);
return ExtractDataLocalRun2(0, 1);
```
###### 简单统计
####### 内容
@ -222,7 +212,6 @@ return ExtractDataLocalRun2(0, 1);
返回:处理后的结果值。
范例
```tsl
@ -230,7 +219,6 @@ data := array(1, 2, 3, 4, 5);
return SimpleStat(Data);
```
####### SimpleStatLocal
###### 品种管理
@ -249,7 +237,6 @@ return SimpleStat(Data);
返回:处理后的结果值。
范例
```tsl
@ -286,7 +273,6 @@ return GetTypeOfStock('OF000001');
return raise Error('function1', '无效的语段');
```
###### ThisFuncOnlyForFund
###### ASSERT
@ -296,14 +282,12 @@ return raise Error('function1', '无效的语段');
返回:处理后的结果值。
范例
```tsl
return ASSERT(0, '无效的语段');
```
##### 客户端行为控制函数
###### 内容

View File

@ -48,7 +48,6 @@ return array(
参数arg1按示例顺序传入
返回:处理后的结果值。
- 摘要函数使用说明
- GetMsgDigest
- GetMsgDigest(文件)
@ -81,7 +80,6 @@ orig_str := Base64ToStr(base64); //BASE64编码转换为字符串
参数arg1按示例顺序传入
返回:转换后的数值或日期。
范例
```tsl
@ -94,7 +92,6 @@ return rdo2 StrToBase64('a12'); // 返回字符串YTEy
参数arg1按示例顺序传入
返回:字符串。
范例
```tsl
@ -152,7 +149,6 @@ encoderadixstr("天软","0x",0x40000000+16)结果为"0xcc0xec0xc80xed" 小写字
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -171,7 +167,6 @@ return EncodeRadixstr("18", "B", 2); // B00110001B00111000二进制
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -185,7 +180,6 @@ return DecodeRadixstr('0x310x310x320x32', 2, 16); // 返回'1122'
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -199,7 +193,6 @@ return Decoderadixwstr('0x00310x00310x00320x0032', 2, 16); // 返回'1122'
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl

View File

@ -32,7 +32,6 @@
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
范例一:
@ -61,7 +60,6 @@ g2 := Graph(gtline(), 'MA10', t2);
return graphgroup(g1, g2);
```
范例二:
```tsl
@ -78,7 +76,6 @@ g3 := Graph( gtLine(), "MA20", Gdata3, gfColor() , clRed());
return graphgroup(g1, g2, g3);
```
参考GraphGroup DecodeGraphGroup EncodeGraphGroup DecodeGraph EncodeGraph
###### GraphGroup
@ -87,7 +84,6 @@ return graphgroup(g1, g2, g3);
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -98,7 +94,6 @@ MAVOLGraph := Graph(gtLine(), 'MA5Graph', MAVOL, gfColor(), clBlue());
return GraphGroup(VOLGraph, MAVOLGraph, gfMinValue(), 0);
```
结果说明GraphGroup包含了两个TGraph图形一个是VOLGraph成交量图形另一个是MAVOLGraph成交量的5日均线的折线图形。这两个图形具有的共有属性是gfMinValue()就是最小值为0。gfColor在VolData中作为了数据字段用来指示每一个数据点的颜色。因此柱子会根据开盘和收盘的差异来决定色彩的显示。而在MAVOLGraph又作为了图形的属性因此MAVOLGraph在显示的时候会呈现出蓝色。gfMinValue在返回的图形组合里作为了图形组合的属性因此决定了图形会用0来作为最小的值来显示而不会用区间内的最小成交量作为最小值显示。
另外我们可以注意到作为gtLine类型的MAVOLGraph并不含有特殊的值来指定折线的点的位置在没有特定的数据字段的时候系统会使用第一个存在的数据字段当成默认的gfValue来显示。
@ -112,7 +107,6 @@ DecodeGraphGroup EncodeGraphGroup DecodeGraph EncodeGraph
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -150,7 +144,6 @@ return MergeGraph(g1, g2, g3, g4);
参数arg1arg2按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -177,7 +170,6 @@ g2 := graph(gtline(), 'MA10', t2);
return EncodeGraphGroup(array(g1, g2), array());
```
参考Graph GraphGroup DecodeGraphGroup DecodeGraph EncodeGraph
###### DecodeGraphGroup
@ -186,7 +178,6 @@ return EncodeGraphGroup(array(g1, g2), array());
参数arg1arg2arg3按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -199,7 +190,6 @@ DecodeGraphGroup(DATAARR, x, y);
return x; // 返回分解后的柱状图
```
参考Graph GraphGroup EncodeGraphGroup DecodeGraph EncodeGraph
###### DecodeGraph
@ -208,7 +198,6 @@ return x; // 返回分解后的柱状图
参数arg1arg2arg3arg4arg5按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -241,7 +230,6 @@ return array(ty, na, da, pr);
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -264,7 +252,6 @@ gffill(), ifThen3(Close(), Open(), flClear(), flSolid(), flSolid())
return EncodeGraph(gtkline(), 'KLine', t1, array());
```
参考Graph GraphGroup DecodeGraphGroup EncodeGraphGroup DecodeGraph
###### FastLine_Web
@ -291,7 +278,6 @@ return EncodeGraph(gtkline(), 'KLine', t1, array());
参数arg1按示例顺序传入
返回:整数。
范例
```tsl

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,6 @@
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -52,7 +51,6 @@ return LoadTableEx('repitle');
返回:处理后的结果值。
范例
```tsl
@ -68,7 +66,6 @@ return UserDataUpLoad(Filedir); // 返回上传结果提示信息。
返回:字符串。
范例
```tsl
@ -84,7 +81,6 @@ return HexToString(str); // 返回testdata01
返回:整数。
范例
```tsl
@ -100,7 +96,6 @@ return TransFileName(dir); // 返回用户数据列表
返回:处理后的结果值。
范例
```tsl
@ -117,7 +112,6 @@ return LoadTable('testA');
返回:处理后的结果值。
注意:
在保存用户数据的时候可以分目录保存,只需在目录层次间添加‘\\’即可;在不同的目录下可以将数据保存为相同的数据名称。
@ -179,7 +173,6 @@ return array(r1, r2, r3);
返回:处理后的结果值。
范例
```tsl
@ -195,7 +188,6 @@ return TestTable('testA'); // 测试用户数据"testA"是否存在。返回值
返回:处理后的结果值。
范例
```tsl
@ -212,7 +204,6 @@ SaveBk("MySector", "我的一级分类\\我的二级分类", array("SZ000001", "
返回:处理后的结果值。
范例
```tsl
@ -228,7 +219,6 @@ http://www.tinysoft.com.cn/TSDN/HelpDoc/SearchContent.tsl?r=ref&KeyWord=
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -246,7 +236,6 @@ return ListTable();
返回:处理后的结果值。
范例
范例一:删除指定目录下的用户数据
@ -300,7 +289,6 @@ return listtable();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -315,7 +303,6 @@ return tsAppServer();
参数:无。
返回:处理后的结果值。
范例
```tsl
@ -331,7 +318,6 @@ return TsAppServerName();
返回:处理后的结果值。
范例
```tsl
@ -351,14 +337,12 @@ return SendToClient("getdo", "return getsysparam('a') + getsysparam('b');", nil,
参数:无。
返回:处理后的结果值。
范例
```tsl
return TS_ModuleInfo();
```
差异说明Windows任何版本。
Linux自2024-07-10之后的版本开始支持之前的版本不支持。
@ -383,7 +367,6 @@ Linux自2024-07-10之后的版本开始支持之前的版本不支持
返回:处理后的结果值。
范例
```tsl
@ -393,7 +376,6 @@ endt := inttodate(20140101);
return User('jrtzsupport').Show_DSXG_211(begt, endt, 0);
```
参考SYSTEM
###### UserName

File diff suppressed because it is too large Load Diff

View File

@ -44,10 +44,10 @@
用途:返回数据类型编号,支持数组遍历模式。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:类型编号或类型数组。
返回:类型编号或类型数组。
范例
@ -71,15 +71,14 @@ t := array(1, 3.14, "A", (1, 2, 3), nil);
return DataType(t, 1);
```
###### ifInt
用途:判断是否为 32 位整数类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -117,10 +116,10 @@ return ifInt(t, 1);
用途:判断是否为 64 位整数类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -148,10 +147,10 @@ return ifInt64(t, 1);
用途:判断是否为 实数类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -181,10 +180,10 @@ return ifReal(t, 1);
用途:判断是否为 数字(整数或实数)类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -214,10 +213,10 @@ return ifNumber(t, 1);
用途:判断是否为 字符串类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -247,10 +246,10 @@ return ifString(t, 1);
用途:判断是否为 数组类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -280,10 +279,10 @@ return ifArray(t, 1);
用途:判断是否为 Nil类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -312,10 +311,10 @@ return ifNil(t, 1);
用途:判断是否为 表达式类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -345,10 +344,10 @@ return ifExp(t, 1);
用途:判断是否为 图形类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -371,10 +370,10 @@ return result;
用途:判断是否为 图形组类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -402,10 +401,10 @@ return result;
用途:判断是否为 二进制/Buffer类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -439,10 +438,10 @@ return ifBinary(t, 1);
用途:判断是否为 Matrix类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -462,10 +461,10 @@ return result;
用途:判断是否为对象类型。
参数:
- value输入数据
- mode遍历模式可选-1 对第一维逐项判断1 对每个元素判断)
返回:布尔值或布尔数组。
返回:布尔值或布尔数组。
范例
@ -493,17 +492,19 @@ return result;
用途:获取已注册的 OLE/COM 对象实例(仅 Windows
参数:
- prog_idCOM ProgID如 "Word.Application"
- flags选项标记可选通常为 0
- out_obj输出对象变量
返回是否获取成功1/0
返回是否获取成功1/0
###### CreateComObject
用途:创建新的 OLE/COM 对象实例(仅 Windows
参数:
- prog_idCOM ProgID如 "Word.Application"
返回COM 对象实例;失败返回 nil。
返回COM 对象实例;失败返回 nil。
说明COM 对象仅在 Windows 可用Linux 不支持。
@ -511,12 +512,12 @@ return result;
用途:创建 Matrix 类型数据,可指定列索引与初始值。
参数:
- rows行数
- cols列数
- cols_value列序列可选
- values初始化值序列可选按行列顺序
返回Matrix 对象。
返回Matrix 对象。
范例
@ -529,14 +530,12 @@ return result;
return CreateMatrix(2, 3);
```
范例二:矩阵
```tsl
return nils(3, 2);
```
范例三:
```tsl
@ -544,14 +543,13 @@ return nils(3, 2);
return CreateMatrix(3, 4, array('s', 'd', 'f'), 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
```
###### MatrixToArray
用途:将 Matrix 转换为数组。
参数:
- matrixMatrix 数据
返回:数组。
- matrixMatrix 数据
返回:数组。
范例
@ -565,29 +563,30 @@ a := ones(5, 5);
return mselect * from a end;
```
###### GetMatrixFields
用途:获取 Matrix 的字段(列名)列表。
参数:
- matrixMatrix 数据
返回:字段名数组。
返回:字段名数组。
###### CreateBinary
用途:创建 Binary 缓冲区。
参数:
- size字节长度
返回Binary 数据。
返回Binary 数据。
###### ConvertDataToBuf
用途:按指定类型将数据编码为内存 Buffer。
参数:
- value输入数据
- type_name类型名称
返回Binary Buffer。
返回Binary Buffer。
范例
@ -600,9 +599,10 @@ return ConvertDataToBuf(1.5343, 'Currency');
用途:按指定类型将 Buffer 解码为数据。
参数:
- bufferBinary Buffer
- type_name类型名称
返回:解析后的数据。
返回:解析后的数据。
###### None类型
@ -619,8 +619,9 @@ None类型是一种极为特殊的特性不参与运算仅在特殊场景
用途:判断是否为 None 类型。
参数:
- value输入数据
返回:布尔值。
返回:布尔值。
具体应用可参考FAQ对象算符重载数组set算符时none类型的应用实例
@ -628,8 +629,9 @@ None类型是一种极为特殊的特性不参与运算仅在特殊场景
用途:获取 None 类型值(可携带整数标记)。
参数:
- tag整数标记可选
返回None 值。
返回None 值。
具体应用可参考FAQ对象算符重载数组set算符时none类型的应用实例
@ -657,11 +659,11 @@ None类型是一种极为特殊的特性不参与运算仅在特殊场景
用途:将数值转换为整数。
参数:
- value输入数值
返回:整数。
范例
```tsl
@ -672,11 +674,11 @@ return Integer(123.456); // 返回值为整型数据123。
用途:将数值转换为 64 位整数。
参数:
- value输入数值
返回64 位整数。
范例
```tsl
@ -687,11 +689,11 @@ return Int64(123); // 返回值为64位整型数据123。
用途:将数值转换为实数。
参数:
- value输入数值
返回:实数。
范例
```tsl
@ -702,11 +704,11 @@ return Real(123); // 返回值为实数数据123.00
用途:将数据转换为字符串。
参数:
- value输入数据
返回:字符串。
范例
```tsl
@ -718,11 +720,11 @@ return String(L'abcd');
用途:将数据转换为 Unicode 字符串。
参数:
- value输入数据
返回Unicode 字符串。
范例
```tsl
@ -734,11 +736,11 @@ return WideString('abcd');
用途:将数据转换为二进制流。
参数:
- value输入数据
返回Binary 数据。
范例
```tsl
@ -749,12 +751,12 @@ return Binary('111111'); // 返回值为二进制流。
用途:设置数值的小数精度。
参数:
- value输入数值
- digits小数位数
返回:按精度处理后的数值。
范例
```tsl
@ -765,13 +767,13 @@ return SetPrecision(123.4567, 3); // 返回值为保留3位小数点后的实数
用途:将数据序列化为 STM 二进制流。
参数:
- value输入数据
- mode序列化模式可选
- precision小数位数可选
返回STM 二进制流。
范例
```tsl
@ -792,12 +794,12 @@ return stm(s);
用途:将数值格式化为 STN 字符串。
参数:
- value输入数值
- digits小数位数可选
返回:字符串。
范例
范例一:
@ -816,11 +818,11 @@ return ToSTN(1.2345, 2); // 返回值为字符串1.23’。
用途:将数据转换为 XML 字符串表示。
参数:
- value待转换的数据
返回XML 字符串。
范例
```tsl
@ -840,11 +842,11 @@ return ToXML("this is XML document");
用途:解析 TSXML 字符串并返回内容。
参数:
- xml_textTSXML 字符串
返回:解析结果值。
范例
```tsl
@ -859,6 +861,7 @@ return XML('<?xml version="1.0" encoding="GB2312"?>'
用途:将数组导出为 CSV 格式字符串。
参数:
- data数组数据
- out_text输出字符串引用返回
- include_index是否包含下标可选1/0
@ -866,7 +869,6 @@ return XML('<?xml version="1.0" encoding="GB2312"?>'
返回是否成功1/0
范例
范例01一维数组转换成csv格式字符串
@ -878,7 +880,6 @@ if ret then return s;
else return ret;
```
范例02二维数组转换成csv格式字符串
```tsl
@ -888,7 +889,6 @@ if ret then return s;
else return ret;
```
范例03转换成csv格式字符串结果包含数组下标信息
```tsl
@ -898,7 +898,6 @@ if ret then return s;
else return ret;
```
范例04转换成csv格式字符串结果不包含字段头部信息
```tsl
@ -908,18 +907,17 @@ if ret then return s;
else return ret;
```
###### ImportCsv
用途:将 CSV 字符串解析为数组。
参数:
- csv_textCSV 字符串
- out_data输出数组引用返回
- has_header是否包含表头可选1/0
返回是否成功1/0
范例
范例01将指定csv格式字符串转换成二维数组
@ -931,7 +929,6 @@ if ret then return data;
else return ret;
```
范例02读取本地csv文件并将其转换成数组
本地csv文件内容如下
@ -944,7 +941,6 @@ if ret then return data;
else return ret;
```
##### 复制函数
###### 内容
@ -955,11 +951,11 @@ else return ret;
用途:复制值,避免被调用函数修改原变量。
参数:
- value输入值
返回:复制后的值。
范例
```tsl
@ -1013,6 +1009,7 @@ end;
说明如果无参数则返回0->1之间的随机实数,如果参数为整数则返回0->value之间的随机整数不包括value即左闭右开如random(1)只会返回0。
参数:
- max_value上限可选不传返回 0~1 之间随机实数;传整数返回 [0, max_value) 随机整数)
范例:
@ -1031,11 +1028,11 @@ return random(100); // 返回值为随机的0到100的整型数据94。
用途:从数组中随机取一个元素。
参数:
- items候选数组
返回:随机元素。
范例
```tsl
@ -1057,13 +1054,13 @@ return RandomFrom(items);
用途:条件成立返回 true_value否则返回 false_value。
参数:
- condition判断条件
- true_value条件成立时返回值
- false_value条件不成立时返回值
返回true_value 或 false_value。
范例
```tsl
@ -1077,6 +1074,7 @@ return IfThen(left_value > right_value, left_value, right_value);
用途:比较两个值,返回大/等/小对应结果。
参数:
- left左值
- right右值
- greater_valueleft > right 时返回
@ -1085,7 +1083,6 @@ return IfThen(left_value > right_value, left_value, right_value);
返回:对应比较结果的值。
范例
```tsl
@ -1112,11 +1109,11 @@ return IfThen3(1, 2, '左大', '相等', '右大');
用途:计算表达式或表达式字符串并返回结果。
参数:
- expr表达式@)或表达式字符串(&
返回:表达式计算结果。
范例
范例01
@ -1159,19 +1156,18 @@ begin
end;
```
参考Call CallInArray
###### Call
用途:按函数名字符串或函数指针调用函数。
参数:
- func函数名字符串或函数指针
- args调用参数列表
返回:函数返回值。
范例
```tsl
@ -1191,6 +1187,7 @@ return Call(F, 20140101);
用途:以参数数组调用指定函数(含函数名或函数变量)。
参数:
- func函数名字符串或函数指针
- args参数数组
@ -1255,6 +1252,7 @@ return CallInArray("CCC", array("b":1, "d":4));
用途:调用对象成员方法或设置成员属性。
参数:
- obj目标对象
- name成员名
- mode0 调用方法1 设置成员
@ -1262,7 +1260,6 @@ return CallInArray("CCC", array("b":1, "d":4));
返回:调用结果或设置结果。
范例
范例01设置成员变量后调用成员方法并返回结果
@ -1315,6 +1312,7 @@ end;
用途:以参数数组调用对象成员方法或设置成员属性。
参数:
- obj目标对象
- name成员名
- mode0 调用方法1 设置成员
@ -1322,7 +1320,6 @@ end;
返回:调用结果或设置结果。
范例
范例01设置成员变量后调用成员方法并返回结果
@ -1396,13 +1393,15 @@ end;
用途:安全执行表达式或表达式字符串,执行失败返回 nil。
参数:
- expr表达式@)或表达式字符串(&
返回:表达式结果或 nil。
返回:表达式结果或 nil。
###### DoubleVariableExecute
用途:设置两个系统参数数组并计算表达式。
参数:
- arr1第一个参数值数组
- param1系统参数函数如 pn_Stock()
- arr2第二个参数值数组
@ -1410,7 +1409,6 @@ end;
返回:结果数组。
算法
根据参数Arr和TimeArr的长度设置不同的系统参数求表达式的值范例
@ -1427,8 +1425,9 @@ return DoubleVariableExecute(stocks, pn_Stock(), time_arr, @close());
用途:基于系统参数 STOCKS/BKS/TIMES 批量计算表达式。
参数:
- expr表达式
返回:结果数组。
返回:结果数组。
算法
@ -1440,13 +1439,13 @@ return DoubleVariableExecute(stocks, pn_Stock(), time_arr, @close());
用途:设置一个系统参数数组并计算表达式。
参数:
- arr参数值数组
- param系统参数函数如 pn_Stock()
- expr表达式
返回:结果数组。
范例
```tsl
@ -1459,9 +1458,10 @@ return SingleVariableExecute(arr, pn_stock(), @close());
用途:安全设置系统参数(与 SetSysParam 类似,失败不抛异常)。
参数:
- param_name参数名或系统参数函数
- value参数值
返回:设置结果(成功为 1失败为 0
返回:设置结果(成功为 1失败为 0
##### 性能优化相关函数
@ -1474,11 +1474,11 @@ return SingleVariableExecute(arr, pn_stock(), @close());
用途:设置性能分析开关与统计范围。
参数:
- flags统计选项位掩码
返回:无。
范例
范例011+2+4的优化信息返回
@ -1514,11 +1514,11 @@ return 1;
用途:获取性能分析信息。
参数:
- mode可选传 1 仅返回信息不弹窗
返回:性能分析信息。
范例
范例01不弹出profiler窗口
@ -1534,7 +1534,6 @@ b := nday3(100, close()); // nday3也算是指令不是函数 ,close是函数
return GetProfilerInfo(1);
```
范例02弹出profiler窗口
```tsl
@ -1564,7 +1563,6 @@ return b;
参数:无。
返回:当前查找路径字符串。
范例
```tsl
@ -1575,11 +1573,11 @@ echo "当前查找路径:", sysgettsllibpath(), '\r\n';
用途:设置函数库查找路径(支持分号分隔的多个目录)。
参数:
- path_list路径列表字符串分号分隔
返回:设置前的查找路径字符串。
范例
```tsl

View File

@ -47,7 +47,6 @@ version=3
参数arg1按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -68,7 +67,6 @@ return array("a":pygetvar("a"), "b":pygetvar("b"));
参数arg1arg2arg3arg4按示例顺序传入
返回:处理后的结果值。
范例
```tsl
@ -380,7 +378,6 @@ end;
返回:处理后的结果值。
范例
```tsl
@ -397,7 +394,6 @@ The&#160;First&#160;LETTER&#160;won't&#160;be&#160;replaced&#160;by&#160;'one',&
返回:处理后的结果值。
范例
```tsl
@ -413,7 +409,6 @@ return TextToURL(ASrc);
返回:处理后的结果值。
范例
```tsl
@ -429,7 +424,6 @@ return HtmlToText(Src);
返回:处理后的结果值。
范例
```tsl

View File

@ -5,6 +5,7 @@
> - **模板源**`playbook/rulesets/` → 通过 `sync_standards.*` 同步 → 目标项目的 `.agents/`
> - **AI 读取**:目标项目根目录的 `.agents/`,而非此处
> - **使用流程**
>
> ```
> playbook/rulesets/tsl/ → [sync] → your-project/.agents/tsl/ ← AI 代理读取
> (模板源) (实际使用)

View File

@ -11,17 +11,21 @@
## Markdown 代码格式约定(不可违反)
### 代码块
- 统一使用围栏代码块(```lang
- 语言标识尽量准确:`tsl`/`cpp`/`python`/`bash`/`json` 等
- 仅做必要的排版修复;不改变代码语义
### 工具
- 优先使用仓库既有的格式化工具(如 Prettier
- 不引入新的 Markdown 格式化依赖
### 行内代码
- 用反引号包裹命令、路径、关键字或短代码
## 适用范围
- 仅适用于 `.md` 文件
- 涉及代码内容时,遵循对应语言的 `.agents` 规则