feat(tsl-api-reference): add class and framework API lookup

This commit is contained in:
csh
2026-08-20 13:49:55 +08:00
parent 7233646398
commit 651c1f68d2
637 changed files with 25498 additions and 36673 deletions
@@ -16,15 +16,10 @@
```tsl
endt := 20190404T;
setsysparam(pn_stock(), 'SZ000002');
v1 := StockTotalShares(endt); // 考虑变动日及公布日
setsysparam(PN_ChangedDateMode(), 1);
v2 := StockTotalShares(endt); // 仅考虑变动日
return array(v1, v2);
// 输出:array(11039152001.0,11302143001.0)
```
@@ -45,13 +40,9 @@ return array(v1, v2);
```tsl
// 取万科A在2019-02-18 11:25:00时的五分钟线成交量
setsysparam(pn_stock(), 'SZ000002');
setsysparam(pn_date(), 20190218.1125T);
setsysparam(pn_cycle(), cy_5m());
return vol();
// 输出:1389725
```
@@ -60,9 +51,7 @@ return vol();
```tsl
// 取上证指数一段时间内的5分钟线数据
setsysparam(pn_cycle(), cy_5m());
return select ['date'], ['close'], ['vol'] from markettable datekey 20190218.1030T to 20190218.1120T of 'SH000001' end;
```
@@ -82,9 +71,7 @@ return select ['date'], ['close'], ['vol'] from markettable datekey 20190218.103
```tsl
// 设置当前时间为2019-2-18
setsysparam(pn_date(), 20190218T);
return sp_time(); // 或return getsysparam(pn_date());//获取当前时间
// 输出:43514,即2019-02-18
```
@@ -93,11 +80,8 @@ return sp_time(); // 或return getsysparam(pn_date());//获取当前时间
```tsl
// 取指定证券SH60000在指定日2019-02-18这一天的收盘价
setsysparam(pn_stock(), 'SH600000');
setsysparam(pn_date(), 20190218T); // 设置当前时间
return close(); // 取收盘价
// 输出:10.84
```
@@ -118,15 +102,10 @@ return close(); // 取收盘价
```tsl
// 取万科A在2019年的三季报与年报的股东权益合计,笔者执行日期为20191224日,年报还未出
setsysparam(pn_emptymode(), 5); // 空记录设置为浮点NAN
setsysparam(pn_stock(), 'SZ000002');
t1 := reportofall(44111, 20190930);
t2 := reportofall(44111, 20191231);
return array(t1, t2);
```
@@ -166,11 +145,8 @@ Nday2执行的周期数目,相关数据为整数类型,一般在使用nday2
```tsl
setsysparam(pn_stock(), 'SZ000001');
setsysparam(pn_date(), inttodate(20140115));
setsysparam(pn_nday(), 250);
return nday2('time', datetostr(sp_time()), 'close', close());
```
@@ -190,11 +166,8 @@ NIL在COM中转换的行为。 假如用户在其他的本地应用中与外部C
```tsl
// matlab代码
ts=actxserver('TSExpert.CoExec')
ts.SetSysParam('NilTrans', 9)
ts.RemoteExecute('return array((1,2,nil,4),(2,nil,3,nil));')
```
@@ -214,11 +187,8 @@ ts.RemoteExecute('return array((1,2,nil,4),(2,nil,3,nil));')
```tsl
setsysparam(PN_Precision(), 3); // 设置有效
ov := BackupSystemParameters2();
setsysparam(PN_Precision(), 2); // 设置无效,在return 之前被恢复到备份之前的状态
return rand(2, 3);
// 输出:保留3位小数:
```
@@ -227,13 +197,9 @@ return rand(2, 3);
```tsl
// 提取万科A2019-2-19日的5分钟线收盘价,并保留2位小数结果输出
setsysparam(PN_Precision(), 2); // 有效
setsysparam(pn_cycle(), cy_30m());
return select datetimetostr(['date']) as 'date', ['close']
from markettable datekey 20190219T to 20190219.16T of 'SZ000002' end;
```
@@ -253,17 +219,11 @@ from markettable datekey 20190219T to 20190219.16T of 'SZ000002' end;
```tsl
// 以第一个交易日为基准进行复杂复权后的截止20110909万科A的收盘价时间序列
setsysparam(pn_stock(), 'SZ000002');
setsysparam(pn_date(), inttodate(20110909));
setsysparam(pn_rate(), rt_complex()); // 复权方式:复杂复权
setsysparam(pn_rateday(), rd_firstday()); // 复权基准日:第一个交易日
return nday(30, 'date', datetostr(sp_time()),
'close', close());
```
@@ -283,15 +243,10 @@ return nday(30, 'date', datetostr(sp_time()),
```tsl
// 设置2018-08-20为复权基准日,小于这个日期的前复权,大于这个日的后复权。
setsysparam(pn_stock(), 'SZ000002');
setsysparam(pn_date(), 20180905T);
setsysparam(pn_rate(), 1); // 复权方式:比例复权
setsysparam(pn_rateday(), 20180820T); // 复权基准日
return nday(30, 'date', datetostr(sp_time()), 'close', close());
```
@@ -311,73 +266,67 @@ return nday(30, 'date', datetostr(sp_time()), 'close', close());
```tsl
SetSysParam(PN_Stock(), 'SH600170');
// pn_ReportMode()=-1,返回调整前、调整后
SetSysParam(pn_ReportMode(), -1);
return Select ['StockID'], ['StockName'], ['截止日'], ['公布日'], ['营业收入'], ['归属于母公司所有者净利润']
from infotable 46
of 'SH600170'
where ['截止日']>=20171231 end;
StockID
StockName
截止日
公布日
营业收入
归属于母公司所有者净利润
SH600170
上海建工
20171231
20180328
142, 082, 638, 561.83
2, 584, 465, 203.87
SH600170
上海建工
20171231
20190329
142, 082, 638, 561.83
2, 584, 465, 203.87
SH600170
上海建工
20180331
20180428
31, 075, 378, 878.24
532, 834, 340.41
SH600170
上海建工
20180331
20190430
31, 075, 378, 878.24
532, 834, 340.41
SH600170
上海建工
20180630
20180829
78, 290, 436, 984.83
1, 289, 780, 254.93
SH600170
上海建工
20180930
20181031
115, 410, 360, 329.49
1, 811, 096, 340.58
SH600170
上海建工
20181231
20190329
170, 545, 783, 102.81
2, 779, 866, 799.83
SH600170
上海建工
20190331
20190430
47, 099, 976, 904.12
1, 317, 287, 587.90
// 输出:
// StockID
// StockName
// 截止日
// 公布日
// 营业收入
// 归属于母公司所有者净利润
// SH600170
// 上海建工
// 20171231
// 20180328
// 142, 082, 638, 561.83
// 2, 584, 465, 203.87
// SH600170
// 上海建工
// 20171231
// 20190329
// 142, 082, 638, 561.83
// 2, 584, 465, 203.87
// SH600170
// 上海建工
// 20180331
// 20180428
// 31, 075, 378, 878.24
// 532, 834, 340.41
// SH600170
// 上海建工
// 20180331
// 20190430
// 31, 075, 378, 878.24
// 532, 834, 340.41
// SH600170
// 上海建工
// 20180630
// 20180829
// 78, 290, 436, 984.83
// 1, 289, 780, 254.93
// SH600170
// 上海建工
// 20180930
// 20181031
// 115, 410, 360, 329.49
// 1, 811, 096, 340.58
// SH600170
// 上海建工
// 20181231
// 20190329
// 170, 545, 783, 102.81
// 2, 779, 866, 799.83
// SH600170
// 上海建工
// 20190331
// 20190430
// 47, 099, 976, 904.12
// 1, 317, 287, 587.90
```
## `pn_reportType()`
@@ -396,17 +345,11 @@ SH600170
```tsl
EndT := 20230121T;
ov := BackupSystemParameters2();
SetSysParam(pn_stock(), 'SH688699');
SetSysParam(pn_date(), EndT);
SetSysParam(pn_ReportType(), 0); // 财报最新报告期,等价于不设置该系统参数
RDate := NewReportDateOfEndT2(EndT);
return RDate;
// 输出:20220930, 财报2022年三季报已公布,年报未公布
```
@@ -415,17 +358,11 @@ return RDate;
```tsl
EndT := 20230121T;
ov := BackupSystemParameters2();
SetSysParam(pn_stock(), 'SH688699');
SetSysParam(pn_date(), EndT);
SetSysParam(pn_ReportType(), 1); // 财报>快报>预测
RDate := NewReportDateOfEndT2(EndT);
return RDate;
// 输出:20221231, 财报和快报2022年年报未公布,预测已公布
```
@@ -434,17 +371,11 @@ return RDate;
```tsl
EndT := 20230121T;
ov := BackupSystemParameters2();
SetSysParam(pn_stock(), 'SH688699');
SetSysParam(pn_date(), EndT);
SetSysParam(pn_ReportType(), 2); // 财报>快报
RDate := NewReportDateOfEndT2(EndT);
return RDate;
// 输出:20220930,财报和快报2022年年报未公布,财报2022年三季报已公布
```
@@ -453,17 +384,11 @@ return RDate;
```tsl
EndT := 20230121T;
ov := BackupSystemParameters2();
SetSysParam(pn_stock(), 'SH688699');
SetSysParam(pn_date(), EndT);
SetSysParam(pn_ReportType(), 3); // 财报>预测
RDate := NewReportDateOfEndT2(EndT);
return RDate;
// 输出:20221231,财报2022年年报未公布,预测已公布
```
@@ -472,13 +397,9 @@ return RDate;
```tsl
EndT := 20230121T;
ov := BackupSystemParameters2();
SetSysParam(pn_ReportType(), 90); // 财报按财报发布规则
RDate := NewReportDateOfEndT2(EndT);
return RDate;
// 输出:20220930 按财报公布规则20230121t,2022年年报未公布在4月底才公布,2022年三季报已在2022年10月公布了
```
@@ -487,15 +408,10 @@ return RDate;
```tsl
EndT := 20230121T;
ov := BackupSystemParameters2();
SetSysParam(pn_stock(), 'SH688699');
SetSysParam(pn_ReportType(), 20221231); // 财报指定报告期已公布
RDate := NewReportDateOfEndT2(EndT);
return RDate;
// 输出:20220930 20230121T指定报告期2022年年报未公布,2022年三季报已公布
```
@@ -516,9 +432,7 @@ return RDate;
```tsl
// 设置当前证券为万科A
setsysparam(pn_stock(), 'SZ000002');
return getsysparam(pn_stock()); // 获取当前的证券代码
// 输出:字符串SZ000002
```
@@ -527,11 +441,8 @@ return getsysparam(pn_stock()); // 获取当前的证券代码
```tsl
// 取指定证券SH60000在指定日2019-02-18这一天的收盘价
setsysparam(pn_stock(), 'SH600000');
setsysparam(pn_date(), 20190218T); // 设置当前时间
return close(); // 取收盘价
// 输出:10.84
```
@@ -552,12 +463,8 @@ return close(); // 取收盘价
```tsl
setsysparam(pn_stock(), "SH600519");
setsysparam(pn_cycle(), cy_1m());
setsysparam(pn_ViewPoint(), 20240702.102942T); // 仿真时间为10:29:42
setsysparam(pn_date(), 20240702.1030T); // 取分钟线十点半时的价量
return array(close(), vol());
```