# 数据仓库 / 判定函数 ## `baseExists(info_id, _order)` 声明:function 返回是否存在某项和报告期无关的数据,例如公司简称、注册地址等 | 参数 | 类型 | 说明 | | --------- | ---- | ----------------------------------------------------------------------- | | `info_id` | int | 信息类别代码,infoID参见附录。 | | `_order` | int | 省略此参数取最后一次更新,否则为第几条数据。0表示第一条,-1表示最后一条 | 返回:bool ### 示例 ```tsl setsysparam(pn_stock(),'SZ000002'); if BaseExists(10002) then return base(10002); ``` ## `basicIdExists(id)` 声明:function 返回某信息ID是否存在 | 参数 | 类型 | 说明 | | ---- | ---- | -------------------- | | `id` | int | 整数,某信息的ID号。 | 返回:bool ## `continuedMatchOfRepPeriod(expr, beg_report, end_year)` 声明:function 判断在区间BegReport到EndYear中是否存在运行表达式Exp的值,若存在返回1,否则返回0。 | 参数 | 类型 | 说明 | | ------------ | ---- | ------------------ | | `expr` | any | 布尔公式表达式 | | `beg_report` | any | 开始期,开始报告期 | | `end_year` | any | 年份,截止年份 | 返回:any ## `getExpCaceStr(exp, cache_str)` 声明:function 判断是否缓存以及返回缓存串。 | 参数 | 类型 | 说明 | | ----------- | ------ | -------- | | `exp` | string | 字符串。 | | `cache_str` | string | 字符串。 | 返回:string ## `isBalanceInfoId(infold)` 声明:function 是否是资产负债表指标。是则返回1,否则返回0。 | 参数 | 类型 | 说明 | | -------- | ---- | ---------------- | | `infold` | int | 基本面,基本面ID | 返回:bool ## `isCashFlowInfoId(infold)` 声明:function 判断是否是现金流量表指标,如果是则返回1,否则返回0。 | 参数 | 类型 | 说明 | | -------- | ---- | ---------------- | | `infold` | int | 基本面,基本面ID | 返回:bool ## `isFinancialInfoId(info_id)` 声明:function 是否是主要财务指标(仅Wind适用),兼容Wind的主要财务指标也计算最近12个月的数据。 | 参数 | 类型 | 说明 | | --------- | ---- | -------------- | | `info_id` | int | 整数。基本面Id | 返回:int ## `isFundBalanceSheetInfoId(infold)` 声明:function 是否是基金资产负债表字段。是则返回1,否则返回0。 | 参数 | 类型 | 说明 | | -------- | ---- | ---- | | `infold` | int | 整数 | 返回:bool ## `isFundInterestInfoId(infold)` 声明:function 是否是基金利润分配表表字段。是则返回1,否则返回0。 | 参数 | 类型 | 说明 | | -------- | ---- | ---- | | `infold` | int | 整数 | 返回:bool ## `isInterestInfoId(infold)` 声明:function 是否是利润分配表指标。是则返回1,否则返回0。 | 参数 | 类型 | 说明 | | -------- | ---- | ---------------- | | `infold` | int | 基本面,基本面ID | 返回:bool ## `isMainReportId(infold)` 声明:function 判断是否是主要报告指标,如果是返回1,否则返回0。指标包括资产负债表,利润分配表,现金流量表,基金资产负债表,基金利润分配表,股票财务指标。 | 参数 | 类型 | 说明 | | -------- | ---- | ---------------- | | `infold` | int | 基本面,基本面ID | 返回:bool ## `isStock(stock_id)` 声明:function 判定函数相关函数。 | 参数 | 类型 | 说明 | | ---------- | ------ | ---- | | `stock_id` | string | | 返回:bool ## `isStockFinancialItem(infold)` 声明:function 是否是股票财务指标。是则返回1,否则返回0。 | 参数 | 类型 | 说明 | | -------- | ---- | ---- | | `infold` | int | 整数 | 返回:bool ## `isTimePeriodInfoId(info_id)` 声明:function 是否是时段指标。 | 参数 | 类型 | 说明 | | --------- | ---- | ---------------- | | `info_id` | int | 整数。基本面Id。 | 返回:bool ## `isTradeDay(date)` 声明:function 如果当前股票在Date指定日交易则返回1,否则返回0。 该函数的判断是依据指定日是否有日线行情数据,不管当日是否有成交量。 比如期货不活跃时,当日可能没有成交量,但是也有行情数据,则判断当日也是交易日。 一般用于判断当前股票在指定日是否停牌。 支持周期:日线及更低频,比如周线、月线等。若是周线,则判断这一周内是否有日线数据,若有则为真,若一条都没有则为假。即,不支持高频的判定。 | 参数 | 类型 | 说明 | | ------ | -------- | ---------------- | | `date` | datetime | 日期类型,日期; | 返回:bool ### 示例 ```tsl setsysparam(pn_stock(),'SZ000002'); return IsTradeDay(inttodate(20110828));//返回0 ``` ## `isValidCode(id, full_id)` 声明:function 判断是否为合法的代码。判断是否合法代码的规则与isstock类似。如果ID是合法的代码,FullID返回的值为标准化后的天软代码,否则为0。 | 参数 | 类型 | 说明 | | --------- | ------ | ------------------------------------ | | `id` | string | 字符串,证券代码; | | `full_id` | string | 字符串,标准化后的证券代码,可省略; | 返回:bool ## `isValidPositiveValue(v)` 声明:function 判断是否为大于0的实数,如果是返回1,否则返回0。 | 参数 | 类型 | 说明 | | ---- | ---- | ---- | | `v` | int | 实数 | 返回:bool ## `isValidValue(v)` 声明:function 判断V是否是一个数字类型(整数或者实数),如果是非空实数,则返回1,否则返回0。 | 参数 | 类型 | 说明 | | ---- | ---- | ---- | | `v` | int | 整数 | 返回:bool ## `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 ### 示例 ```tsl setsysparam(pn_stock(),'SH601888'); return ReportExists(18007,20101231); //返回1,是 ``` ## `reportHistExists(infoid)` 声明:function 返回某项数据是否存在有报告 | 参数 | 类型 | 说明 | | -------- | ---- | ------------------------------ | | `infoid` | int | 信息类别代码,infoID参见附录。 | 返回:bool ### 示例 ```tsl setsysparam(pn_stock(),'SZ300002'); return ReportHistExists(18007); ``` ## `testStock(stock_id)` 声明:function 判定函数相关函数。 | 参数 | 类型 | 说明 | | ---------- | ------ | ---- | | `stock_id` | string | | 返回:bool ## `validFullCode(stock_id)` 声明:function 判定函数相关函数。 | 参数 | 类型 | 说明 | | ---------- | ------ | ---- | | `stock_id` | string | | 返回:string