✨ feat(tsl-api-reference): expand and reorganize api catalog
Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references. Keep the existing generated index without rebuilding after signature normalization.
This commit is contained in:
+533
@@ -0,0 +1,533 @@
|
||||
# 数据仓库 / 系统参数名称函数
|
||||
|
||||
## `pn_changedDateMode()`
|
||||
|
||||
声明:function
|
||||
|
||||
设置获取股本数据模式: 0:考虑变动日和公布日 1:仅考虑变动日 2:通过生效日判断。 1)变动日>公布日,生效日=变动日 2)变动日<=公布日,生效日=公布日+1 取endt最近一条生效日的数据。 默认为0,即考虑变动日和公布日
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:结果:array(11039152001.0,11302143001.0)
|
||||
|
||||
```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)
|
||||
```
|
||||
|
||||
## `pn_cycle()`
|
||||
|
||||
声明:function
|
||||
|
||||
周期,相关数据为字符串类型(见周期函数)或整数。当周期为整数的时候,表示为滚动秒数的自由周期
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:取万科A在2019-02-18 11:25:00时的五分钟线成交量
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
范例02:取上证指数一段时间内的5分钟线数据
|
||||
|
||||
```tsl
|
||||
// 取上证指数一段时间内的5分钟线数据
|
||||
|
||||
setsysparam(pn_cycle(), cy_5m());
|
||||
|
||||
return select ['date'], ['close'], ['vol'] from markettable datekey 20190218.1030T to 20190218.1120T of 'SH000001' end;
|
||||
```
|
||||
|
||||
## `pn_date()`
|
||||
|
||||
声明:function
|
||||
|
||||
当前时间,相关数据为日期时间类型 在什么时候需要设置当前时间? 1、取行情数据、财务数据时需要。 2、调用的函数,函数说明中有提到与时间相关时,需要在调用该函数之前设置该系统参数
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:设置当前时间为2019-2-18
|
||||
|
||||
```tsl
|
||||
// 设置当前时间为2019-2-18
|
||||
|
||||
setsysparam(pn_date(), 20190218T);
|
||||
|
||||
return sp_time(); // 或return getsysparam(pn_date());//获取当前时间
|
||||
// 输出:43514,即2019-02-18
|
||||
```
|
||||
|
||||
范例02:取指定证券SH60000在指定日2019-02-18这一天的收盘价
|
||||
|
||||
```tsl
|
||||
// 取指定证券SH60000在指定日2019-02-18这一天的收盘价
|
||||
|
||||
setsysparam(pn_stock(), 'SH600000');
|
||||
|
||||
setsysparam(pn_date(), 20190218T); // 设置当前时间
|
||||
|
||||
return close(); // 取收盘价
|
||||
// 输出:10.84
|
||||
```
|
||||
|
||||
## `pn_emptymode()`
|
||||
|
||||
声明:function
|
||||
|
||||
当前空记录模式,系统参数选项,对应系统参数下标‘EmptyMode’,可以设定当记录不存在的时候report和base返回的数据表示形式的缺省行为。该系统参数取值如下: 取值 说明 0 缺省值,设置为整数0 1 设置为Nil 2 根据字段的数据类型设定,浮点为0.0 3 设置为短杠字符串 4 设置为N/A字符串 5 设置为浮点NAN 6 根据类型设定,浮点为NAN
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:取万科A在2019年的三季报与年报的股东权益合计,笔者执行日期为20191224日,年报还未出
|
||||
|
||||
```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);
|
||||
```
|
||||
|
||||
## `pn_freeCycle()`
|
||||
|
||||
声明:function
|
||||
|
||||
设为自由周期模式,系统参数的值为真假值。设置自由周期模式后,分钟线和秒线从固定截止时间的周期变换为滚动周期,也就是周期为设置的pn_date的时间往前滚动周期的长度。例如当设置pn_FreeCycle()参数为1时,设置pn_Cycle()为cy_1m(),设置pn_date()为11:03:05秒,则时间序列为以11:03:05为截止点,一分钟为单位(会自动跳过非交易时段)的时序。 采用设置pn_FreeCycle()为1,设置周期为cy_1m()的效果与直接设置pn_cycle()为60是一样的,而cy_FreeCycle(60)的值亦为60
|
||||
|
||||
返回:string
|
||||
|
||||
## `pn_i64Trans()`
|
||||
|
||||
声明:function
|
||||
|
||||
Int64在COM中转换的行为。 假如用户在其他的本地应用中与外部COM打交道,例如调用EXCEL,那么用户可以在TSL中设置该系统参数的方式来调整INT64对COM数据类型转换的行为。 设置的值可为下列值(默认为0): 0:转换为64位整数。默认值 1:转换为32位整数。可能会溢出。 2:转换为双精度浮点数。可能会丢失精度。 以上增强是因为目前买卖盘量已经转换为64位整数,而某些COM前端不支持64位整数,例如Matlab2009等。用户可以设置该属性来控制转换的行为。如Matlab中用ts.SetSysParam('I64Trans ',2)来设置
|
||||
|
||||
返回:string
|
||||
|
||||
## `pn_nDay()`
|
||||
|
||||
声明:function
|
||||
|
||||
Nday2执行的周期数目,相关数据为整数类型,一般在使用nday2函数的时候使用pn_nday设置当前的交易日数据,否则默认180天
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:调用 pn_nDay
|
||||
|
||||
```tsl
|
||||
setsysparam(pn_stock(), 'SZ000001');
|
||||
|
||||
setsysparam(pn_date(), inttodate(20140115));
|
||||
|
||||
setsysparam(pn_nday(), 250);
|
||||
|
||||
return nday2('time', datetostr(sp_time()), 'close', close());
|
||||
```
|
||||
|
||||
## `pn_nilTrans()`
|
||||
|
||||
声明:function
|
||||
|
||||
NIL在COM中转换的行为。 假如用户在其他的本地应用中与外部COM打交道,例如调用EXCEL,那么用户可以在TSL中设置该系统参数的方式来调整NIL对COM数据类型转换的行为。 设置的值可为下列值(默认为0): 0: 转换为Unassigned 1: 转换为Empty 2: 转换为NULL 3: 转换为NaN 4: 转换为整数0 5: 转换为浮点0 6: 转换为空字符串 7: 转换为'NIL'字符串 8: 转换为'NULL'字符串 9: 转换为'-'字符串 10: 转换为'/'字符串 其他值: 转换为Unassigned
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:matlab代码
|
||||
|
||||
```tsl
|
||||
// matlab代码
|
||||
|
||||
ts=actxserver('TSExpert.CoExec')
|
||||
|
||||
ts.SetSysParam('NilTrans', 9)
|
||||
|
||||
ts.RemoteExecute('return array((1,2,nil,4),(2,nil,3,nil));')
|
||||
```
|
||||
|
||||
## `pn_precision()`
|
||||
|
||||
声明:function
|
||||
|
||||
保留小数点位数,-1表示保留所有小数。 对返回的结果保留小数点位数,即return时生效。例如BackupSystemParameters2()中系统参数的恢复是在return之前执行,所以精度的设置需要在系统参数备份之前设置
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:返回结果保留3位小数:
|
||||
|
||||
```tsl
|
||||
setsysparam(PN_Precision(), 3); // 设置有效
|
||||
|
||||
ov := BackupSystemParameters2();
|
||||
|
||||
setsysparam(PN_Precision(), 2); // 设置无效,在return 之前被恢复到备份之前的状态
|
||||
|
||||
return rand(2, 3);
|
||||
// 输出:保留3位小数:
|
||||
```
|
||||
|
||||
范例02:提取万科A2019-2-19日的5分钟线收盘价,并保留2位小数结果输出
|
||||
|
||||
```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;
|
||||
```
|
||||
|
||||
## `pn_rate()`
|
||||
|
||||
声明:function
|
||||
|
||||
复权方式,0为不复权;1为比例复权(考虑股改),计算一个复权因子,通过与除权发生日的复权因子相乘,得到比例复权数据;2为采用分红送配数据除权,该种除权算法不仅仅考虑送股的比例关系,还考虑了诸如分红的加减关系;3为比例复权(不考虑股改),同样通过计算复权因子,后与除权发生日的复权因子相乘,得到比例复权数据,但是不考虑股改时发生权益变动。 注意,比例复权(1和3)主要使用的是交易所发送的系统昨收计算,系统昨收考虑了分红送股的数据
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:以第一个交易日为基准进行复杂复权后的截止20110909万科A的收盘价时间序列
|
||||
|
||||
```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());
|
||||
```
|
||||
|
||||
## `pn_rateDay()`
|
||||
|
||||
声明:function
|
||||
|
||||
复权基准日,0为最后交易日为基准日,-1为上市日为基准日,其他为TDateTime类型的指定的复权基准日。一般与pn_rate()一起使用
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:设置2018-08-20为复权基准日,小于这个日期的前复权,大于这个日的后复权
|
||||
|
||||
```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());
|
||||
```
|
||||
|
||||
## `pn_reportMode()`
|
||||
|
||||
声明:function
|
||||
|
||||
设定报表数据规则模式。对报告期相关的表格数据(Infotable、InfoArray)进行取调整前调整后的数据选择。该系统参数取值如下: 赋值 说明 1 只返回调整前(即:未调整数据) 0 如果有调整后,则返回;否则,返回调整前(即:取最新可取得到的) -1 返回调整前、调整后(即:全表数据)
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:pn_ReportMode()=-1,返回调整前、调整后
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
## `pn_reportType()`
|
||||
|
||||
声明:function
|
||||
|
||||
报告类型,用于控制财务数据取数的报告源与优先级
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:返回结果:20220930, 财报2022年三季报已公布,年报未公布
|
||||
|
||||
```tsl
|
||||
EndT := 20230121T;
|
||||
|
||||
ov := BackupSystemParameters2();
|
||||
|
||||
SetSysParam(pn_stock(), 'SH688699');
|
||||
|
||||
SetSysParam(pn_date(), EndT);
|
||||
|
||||
SetSysParam(pn_ReportType(), 0); // 财报最新报告期,等价于不设置该系统参数
|
||||
|
||||
RDate := NewReportDateOfEndT2(EndT);
|
||||
|
||||
return RDate;
|
||||
// 输出:20220930, 财报2022年三季报已公布,年报未公布
|
||||
```
|
||||
|
||||
范例02:返回结果:20221231, 财报和快报2022年年报未公布,预测已公布
|
||||
|
||||
```tsl
|
||||
EndT := 20230121T;
|
||||
|
||||
ov := BackupSystemParameters2();
|
||||
|
||||
SetSysParam(pn_stock(), 'SH688699');
|
||||
|
||||
SetSysParam(pn_date(), EndT);
|
||||
|
||||
SetSysParam(pn_ReportType(), 1); // 财报>快报>预测
|
||||
|
||||
RDate := NewReportDateOfEndT2(EndT);
|
||||
|
||||
return RDate;
|
||||
// 输出:20221231, 财报和快报2022年年报未公布,预测已公布
|
||||
```
|
||||
|
||||
范例03:返回结果:20220930,财报和快报2022年年报未公布,财报2022年三季报已公布
|
||||
|
||||
```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年三季报已公布
|
||||
```
|
||||
|
||||
范例04:返回结果:20221231,财报2022年年报未公布,预测已公布
|
||||
|
||||
```tsl
|
||||
EndT := 20230121T;
|
||||
|
||||
ov := BackupSystemParameters2();
|
||||
|
||||
SetSysParam(pn_stock(), 'SH688699');
|
||||
|
||||
SetSysParam(pn_date(), EndT);
|
||||
|
||||
SetSysParam(pn_ReportType(), 3); // 财报>预测
|
||||
|
||||
RDate := NewReportDateOfEndT2(EndT);
|
||||
|
||||
return RDate;
|
||||
// 输出:20221231,财报2022年年报未公布,预测已公布
|
||||
```
|
||||
|
||||
范例05:返回结果:20220930, 按财报公布规则20230121t,2022年年报未公布在4月底才公布,2022年三季报已在2022年10月公布了
|
||||
|
||||
```tsl
|
||||
EndT := 20230121T;
|
||||
|
||||
ov := BackupSystemParameters2();
|
||||
|
||||
SetSysParam(pn_ReportType(), 90); // 财报按财报发布规则
|
||||
|
||||
RDate := NewReportDateOfEndT2(EndT);
|
||||
|
||||
return RDate;
|
||||
// 输出:20220930, 按财报公布规则20230121t,2022年年报未公布在4月底才公布,2022年三季报已在2022年10月公布了
|
||||
```
|
||||
|
||||
范例06:返回结果:20220930, 20230121T指定报告期2022年年报未公布,2022年三季报已公布
|
||||
|
||||
```tsl
|
||||
EndT := 20230121T;
|
||||
|
||||
ov := BackupSystemParameters2();
|
||||
|
||||
SetSysParam(pn_stock(), 'SH688699');
|
||||
|
||||
SetSysParam(pn_ReportType(), 20221231); // 财报指定报告期已公布
|
||||
|
||||
RDate := NewReportDateOfEndT2(EndT);
|
||||
|
||||
return RDate;
|
||||
// 输出:20220930, 20230121T指定报告期2022年年报未公布,2022年三季报已公布
|
||||
```
|
||||
|
||||
## `pn_stock()`
|
||||
|
||||
声明:function
|
||||
|
||||
当前股票,相关数据为字符串类型。 在什么时候需要设置当前股票?1、取行情数据、基本面数据、财务数据时需要。2、调用的函数,函数说明中有提到与证券相关时,需要在调用该函数之前设置该系统参数
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:设置当前证券为万科A
|
||||
|
||||
```tsl
|
||||
// 设置当前证券为万科A
|
||||
|
||||
setsysparam(pn_stock(), 'SZ000002');
|
||||
|
||||
return getsysparam(pn_stock()); // 获取当前的证券代码
|
||||
// 输出:字符串SZ000002
|
||||
```
|
||||
|
||||
范例02:取指定证券SH60000在指定日2019-02-18这一天的收盘价
|
||||
|
||||
```tsl
|
||||
// 取指定证券SH60000在指定日2019-02-18这一天的收盘价
|
||||
|
||||
setsysparam(pn_stock(), 'SH600000');
|
||||
|
||||
setsysparam(pn_date(), 20190218T); // 设置当前时间
|
||||
|
||||
return close(); // 取收盘价
|
||||
// 输出:10.84
|
||||
```
|
||||
|
||||
## `pn_viewPoint()`
|
||||
|
||||
声明:function
|
||||
|
||||
设定时点仿真的时点,系统参数的值为一个精确的仿真时间,如果仿真时间为0表示不进行仿真历史。设置时点仿真以后,各类周期均不会访问到未来数据,例如设置时点为11:03:05秒,访问日线、周线、分钟线、秒线等均会和11:03:05秒的时刻访问相同。此外,对于RD等实时函数,访问到的行情数据均会推移到这一时刻
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:调用 pn_ViewPoint
|
||||
|
||||
```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());
|
||||
```
|
||||
Reference in New Issue
Block a user