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.
293 lines
11 KiB
Markdown
293 lines
11 KiB
Markdown
# 数据仓库 / 财务函数
|
|
|
|
## `baseExists(info_id, order)`
|
|
|
|
声明:function
|
|
|
|
返回是否存在某项和报告期无关的数据,例如公司简称、注册地址等
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | ----------------------------------------------------------------------- |
|
|
| `info_id` | int | 信息类别代码,infoID参见附录 |
|
|
| `order` | int | 省略此参数取最后一次更新,否则为第几条数据。0表示第一条,-1表示最后一条 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SZ000002');
|
|
if BaseExists(10002) then
|
|
return base(10002);
|
|
```
|
|
|
|
## `basicIdExists(id)`
|
|
|
|
声明:function
|
|
|
|
返回某信息ID是否存在
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ---- | ------------------ |
|
|
| `id` | int | 整数,某信息的ID号 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:返回1,表示存在
|
|
|
|
```tsl
|
|
infoid := DatabaseInfoArrayId(21);
|
|
|
|
return BasicIDExists(infoid);
|
|
// 输出:1,表示存在
|
|
```
|
|
|
|
## `bName(info_id)`
|
|
|
|
声明:function
|
|
|
|
返回某信息ID的含义。另,用户也可以通过F11快捷键进行查询
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | --------------------- |
|
|
| `info_id` | int | 整数,某信息对应的ID号 |
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
范例01:返回”红利比”,即用18007可提取红利比数据
|
|
|
|
```tsl
|
|
return bName(18007);
|
|
// 输出:"红利比",即用18007可提取红利比数据。
|
|
```
|
|
|
|
## `idfType(id)`
|
|
|
|
声明:function
|
|
|
|
返回某信息ID的数据类型
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ---- | ------------------ |
|
|
| `id` | int | 整数,某信息的ID号 |
|
|
|
|
返回:int
|
|
|
|
### 示例
|
|
|
|
范例01:调用 idfType
|
|
|
|
```tsl
|
|
TYPES := array( '整型', '实数', '字符', '表格');
|
|
|
|
TYPES[-1] := '未知';
|
|
|
|
return array('公司全称':TYPES[idftype(10002)],
|
|
|
|
'红利比':TYPES[idftype(18007)],
|
|
|
|
'分红送股表':TYPES[idftype(18)],
|
|
|
|
'未知':TYPES[idftype(99)]);
|
|
```
|
|
|
|
## `idtType(info_id)`
|
|
|
|
声明:function
|
|
|
|
返回某信息ID的类型
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | --------------------- |
|
|
| `info_id` | int | 整数,某信息对应的ID号 |
|
|
|
|
返回:int
|
|
|
|
### 示例
|
|
|
|
范例01:调用 idtType
|
|
|
|
```tsl
|
|
TYPES := array( '', '报告期相关', '报告期无关', '报表');
|
|
|
|
TYPES[-1] := '未知';
|
|
|
|
return array('公司全称':TYPES[idttype(10002)],
|
|
|
|
'红利比':TYPES[idttype(18007)],
|
|
|
|
'分红送股表':TYPES[idttype(18)],
|
|
|
|
'未知':TYPES[idttype(99)]);
|
|
```
|
|
|
|
## `infoArray(info_id)`
|
|
|
|
声明:function
|
|
|
|
返回某项内容的历史纪录,是一个表结构。例如:分红送股,配股的历史纪录(二维表)
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ------- | ---------------------------------- |
|
|
| `info_id` | integer | 整数,信息类别代码,infoID参见附录 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
范例01:获取万科A分红送股表数据
|
|
|
|
```tsl
|
|
// 获取万科A分红送股表数据
|
|
|
|
setsysparam(pn_stock(), 'SZ000002');
|
|
|
|
// 分红送股表ID
|
|
|
|
infoid := DatabaseInfoArrayId(21);
|
|
|
|
return infoarray(infoid);
|
|
```
|
|
|
|
## `infoArrayExists(info_id)`
|
|
|
|
声明:function
|
|
|
|
返回某项表格内容是否存在
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | ---------------------------------- |
|
|
| `info_id` | int | 代码,信息类别代码,infoID参见附录 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SH601888');
|
|
return InfoArrayExists(20);
|
|
```
|
|
|
|
## `last12MData(r_date, info_id, get_the_nearest)`
|
|
|
|
声明:function
|
|
|
|
返回指定报告期RDate往前12个月的某项财务指标的值。函数只能提取与报告期相关的数据。 该模型与当前的时间有关。因为财务数据有调整前调整后的数据,提取数据的时候,要注意设置当前的时间。如果要取调整前的数据,当前的日期,要设置在调整后数据公布日之前。 比如股票A,2011年的年报是2012年4月15日公布,2012年年报是2013年4月15日公布,2012年年报披露的时候,同时会披露2011年年报调整后的数据。 当前的时间pn_date()设置在2013年4月15日之前的时候,取到的2011年年报数据就是调整前的数据,否则,取到的是2011年调整后的数据。 与系统参数pn_stock()、pn_date()相关,默认时间为今天
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `r_date` | int | 整数报告期,一般为YEAR + Code指定,Code为0630表示中报,1231表示年报,0331第一季度,0930第三季度。如20170930;0001为自然周第一周周报,0002为第二周,以此类推。以周为报告期的日期,主要用于提取封闭式基金的净值数据。如20170001;另外,使用0表示最新报告期 |
|
|
| `info_id` | int | 整数,信息类别代码,即财务指标和其他信息的ID,可以通过证券数据专家或基本面信息(F11)查询 |
|
|
| `get_the_nearest` | bool | 布尔值,如无指定报告,是否找最接近的报告数据。1为是,0为否 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SZ000001');
|
|
setsysparam(pn_date(), 20171031T);
|
|
return Last12MData(20170930, 46002);
|
|
```
|
|
|
|
## `lastQuarterData(r_date, info_id, get_the_nearest)`
|
|
|
|
声明:function
|
|
|
|
返回某个季度RDate的某项财务指标的值。函数只能提取与报告期相关的数据。季度数据如一季度(1-3月)、二季度(4-6月)、三季度(7-9月)、四季度(10-12月),目前在内地交易所没有要求上市企业公布季度报表,所以我们季度数据需要计算出来。 该模型与当前的时间有关。因为财务数据有调整前调整后的数据,提取数据的时候,要注意设置当前的时间。如果要取调整前的数据,当前的日期,要设置在调整后数据公布日之前。 比如股票A,2011年的年报是2012年4月15日公布,2012年年报是2013年4月15日公布,2012年年报披露的时候,同时会披露2011年年报调整后的数据。 当前的时间pn_date()设置在2013年4月15日之前的时候,取到的2011年年报数据就是调整前的数据,否则,取到的是2011年调整后的数据。 与系统参数pn_stock()、pn_date()相关,默认时间为今天
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `r_date` | int | 整数报告期,一般为YEAR + Code指定,Code为0630表示中报,1231表示年报,0331第一季度,0930第三季度。如20170930;0001为自然周第一周周报,0002为第二周,以此类推。以周为报告期的日期,主要用于提取封闭式基金的净值数据。如20170001;另外,使用0表示最新报告期 |
|
|
| `info_id` | int | 整数,信息类别代码,即财务指标和其他信息的ID,可以通过证券数据专家或基本面信息(F11)查询 |
|
|
| `get_the_nearest` | bool | 布尔值,如无指定报告,是否找最接近的报告数据。1为是,0为否 |
|
|
|
|
返回:float
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SZ000001');
|
|
setsysparam(pn_date(), 20171031T);
|
|
return LastQuarterData(20170930, 46002, 0);
|
|
```
|
|
|
|
## `reportExists(info_id, report_id)`
|
|
|
|
声明:function
|
|
|
|
返回是否存在某个报告期的某项财务指标
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `info_id` | int | 信息类别代码,包括财务指标和其他信息,每项信息有一个InfoID编号,infoID参见附录 |
|
|
| `report_id` | int | 报告期代码,一般为YEAR + Code指定,Code为0630表示中报,1231表示年报。0331第一季度,0930第三季度。0001为自然周第一周周报,0002为第二周,以此类推如果ReportID,使用0表示最新报告期 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SH601888');
|
|
return ReportExists(18007, 20101231);
|
|
// 输出:1,是
|
|
```
|
|
|
|
## `reportHist(infoid, find_v)`
|
|
|
|
声明:function
|
|
|
|
返回一个数组,公布了包含infoID的所有报告期列表,例如返回(19991231,20000630,20001231)表示含有InfoID所指数据的报告有1999年年报,2000年中报以及2001年年报。 如果存在FindV参数,则仅返回报告期ID与FindV最接近且不大于的报告期
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | ----------------------------------------------------------------- |
|
|
| `infoid` | int | 数据表字段代码,infoID参见附录。如合并利润表中营业收入的ID为46002 |
|
|
| `find_v` | int | 可选参数,查找的报告期,如20131231 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SH601888');
|
|
infoid := DataBaseRatioId(1);
|
|
return ReportHist(infoid);
|
|
```
|
|
|
|
## `reportHistExists(infoid)`
|
|
|
|
声明:function
|
|
|
|
返回某项数据是否存在有报告
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | ---------------------------- |
|
|
| `infoid` | int | 信息类别代码,infoID参见附录 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:调用函数
|
|
|
|
```tsl
|
|
setsysparam(pn_stock(), 'SZ300002');
|
|
return ReportHistExists(18007);
|
|
```
|