# 金融 / 基金 / 业绩基准偏离 ## `fund_activeShare(index_id, rdate, asset_type, por_type)` 声明:function 返回主动比率衡量基金投资组合与基准指数偏离程度的指标,反映基金经理通过主动 管理(如选股、择时、行业配置)对基准的偏离幅度 主动比率(%)=sum(abs(Wi-Bi))/2 其中, Wi是基金持有的个券占净值比例(占市值比例);Bi是基准中对应个券比例 | 参数 | 类型 | 说明 | | ------------ | ------- | ----------------------------------------------------------------------------------------------- | | `index_id` | string | 指数,指数代码 | | `rdate` | integer | 报告期,指定报告期 | | `asset_type` | integer | 用户自定义,资产类型 显示名 取值 全部 "全部" 股票 "股票" 债券 "债券" | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | 返回:real ### 示例 范例01:获取"OF510500"报告期20250630与业绩比较基准的主动比率(%),按占市值比例(%)计算 ```tsl // 获取"OF510500"报告期20250630与业绩比较基准的主动比率(%),按占市值比例(%)计算 FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; BenchMarkID := FundBenchmarkOFID(FundID, Inttodate(Rdate)); return Fund_ActiveShare(BenchMarkID, RDate, "股票", "占市值比例(%)"); // 输出:0.2145 ``` ## `fund_activeShare2(rdate, asset_type, por_type)` 声明:function 返回主动比率(%)(默认基准) | 参数 | 类型 | 说明 | | ------------ | ------- | ----------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `asset_type` | integer | 用户自定义,资产类型 显示名 取值 全部 "全部" 股票 "股票" 债券 "债券" | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | 返回:real ### 示例 范例01:获取"OF510500"在报告期20250630与业绩比较基准主动比率(%) ```tsl // 获取"OF510500"在报告期20250630与业绩比较基准主动比率(%) FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; return Fund_ActiveShare2(RDate, "股票", "占市值比例(%)"); // 输出:0.2145 ``` ## `fund_hhi(rdate, asset_type, por_type)` 声明:function 返回HHI指数衡量股票集中度风险:持仓越集中,HHI 越大;越分散,HHI 越小。 HHI指数=Sum(占比(%)^2) | 参数 | 类型 | 说明 | | ------------ | ------- | ----------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `asset_type` | integer | 用户自定义,资产类型 显示名 取值 全部 "全部" 股票 "股票" 债券 "债券" | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | 返回:real ### 示例 范例01:获取"OF510500"在报告期2025030的HHI指数 ```tsl // 获取"OF510500"在报告期2025030的HHI指数 FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; return Fund_HHI(RDate, "股票", "占市值比例(%)"); // 输出:23.928 ``` ## `fundBenchmarkCoverage(index_id, rdate, asset_type)` 声明:function 返回基准覆盖率(%): 衡量投资组合持有的基准指数成份券市值占组合内同类资产总市值的比例, 反映组合对基准构成的跟踪纯度。基准成份券覆盖率可量化指数基金复制效率, 被动型基金成份券比例覆盖率越接近 100%,指数复制精度越高;对于主动型基金, 较低的基准成份券覆盖率表明其显著超配了基准指数成份券以外的资产, 体现了基金的主动风险暴露。 基准成份券覆盖率=sum(Xi)/X Xi是基金持有的基准成分券的市值,X是基金的该类资产总市值 (本模型使用的是基金资产配置表该类资产总市值)。 由于公墓基金公布资产持仓,一季报和三季报只公布前面几个重仓券,会导致结果 不够准确,使用中报和年报则数据更准确 | 参数 | 类型 | 说明 | | ------------ | ------- | ------------------------------------------------------------------- | | `index_id` | string | 指数,指数代码 | | `rdate` | integer | 报告期,指定报告期 | | `asset_type` | integer | 用户自定义,资产类型 显示名 取值 全部 "全部" 股票 "股票" 债券 "债券" | 返回:real ### 示例 范例01:获取"OF510500"在报告期20251231与指数"SH000905"为基准的基准覆盖率(%) ```tsl // 获取"OF510500"在报告期20251231与指数"SH000905"为基准的基准覆盖率(%) FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20251231; return FundBenchmarkCoverage("SH000905", RDate, "股票"); // 输出:99.997 ``` ## `fundBenchmarkCoverage2(rdate, asset_type)` 声明:function 返回基准覆盖率(%)(默认基准) 基金持仓中属于业绩比较基准成分的个券市值和/该类资产市值和*100 | 参数 | 类型 | 说明 | | ------------ | ------- | ------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `asset_type` | integer | 用户自定义,资产类型 显示名 取值 全部 "全部" 股票 "股票" 债券 "债券" | 返回:real ### 示例 范例01:获取"OF001015"在报告期20251231的基金业绩比较基准覆盖率(%) ```tsl // 获取"OF001015"在报告期20251231的基金业绩比较基准覆盖率(%) FundID := "OF001015"; Setsysparam(Pn_stock(), FundID); RDate := 20251231; return FundBenchmarkCoverage2(RDate, "股票"); // 输出:99.75 ``` ## `fundCreditRiskConcentration(rdate, r_type)` 声明:function 返回信用风险暴露集中度: 分析持仓债券信用风险分布,通过行业、外部评级等维度对持仓信用债的风险 暴露分布进行监测,防止基金信用风险暴露水平与基金主题、基准发生重大偏离 | 参数 | 类型 | 说明 | | -------- | ------- | ------------------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `r_type` | integer | 用户自定义,返回类型 显示名 取值 行业暴露集中度 "行业暴露集中度" 外部评级暴露集中度 "外部评级暴露集中度" | 返回:real ### 示例 范例01:获取"OF000014"在202500630的外部评级暴露集中度 ```tsl // 获取"OF000014"在202500630的外部评级暴露集中度 Setsysparam(Pn_stock(), "OF000014"); Rdate := 20250630; RType := "外部评级暴露集中度"; return FundCreditRiskConcentration(Rdate, RType); ``` ## `fundCreditRiskConcentration_hy(rdate, hy_type, c_type)` 声明:function 返回信用风险暴露集中度-行业 | 参数 | 类型 | 说明 | | --------- | ------- | ----------------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `hy_type` | string | 字符串,行业类型 | | `c_type` | integer | 用户自定义,集中度类型 显示名 取值 占净值比例(%) "占净值比例(%)" 占债券市值比例(%) "占债券市值比例(%)" | 返回:real ### 示例 范例01:获取"OF000014"在202500630的信用风险暴露集中度-行业 ```tsl // 获取"OF000014"在202500630的信用风险暴露集中度-行业 Setsysparam(Pn_stock(), "OF000014"); Rdate := 20250630; RType := "可转债"; PorType := "占净值比例(%)"; return FundCreditRiskConcentration_HY(Rdate, RType, PorType); // 输出:3.08 ``` ## `fundCreditRiskConcentration_pj(rdate, pj_type, c_type)` 声明:function 返回信用风险暴露集中度-外部评级 | 参数 | 类型 | 说明 | | --------- | ------- | ----------------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `pj_type` | string | 字符串,评级类型 | | `c_type` | integer | 用户自定义,集中度类型 显示名 取值 占净值比例(%) "占净值比例(%)" 占债券市值比例(%) "占债券市值比例(%)" | 返回:real ### 示例 范例01:获取"OF000014"在202500630的"AAA"级的信用风险暴露集中度-外部评级 ```tsl // 获取"OF000014"在202500630的"AAA"级的信用风险暴露集中度-外部评级 Setsysparam(Pn_stock(), "OF000014"); Rdate := 20250630; RType := "AAA"; PorType := "占净值比例(%)"; return FundCreditRiskConcentration_PJ(Rdate, RType, PorType); // 输出:15.58 ``` ## `fundDeviationDegree(index_id, rdate, dim_type, por_type, industry_type)` 声明:function 返回衡量基金在股票仓位、债券仓位,行业配置、风格等方面偏离业绩比较基准的程度, 用于控制主动管理风险。 1)股票仓位偏离、债券仓位偏离,指定行业偏离,指定风格偏离计算公式为 偏离度=Wp-Wb 其中,Wp为基金的股票仓位(债券仓位、指定行业权重),即对应市值占资产净值比; Wb为基准中股票的权重,即股票成分指数权重; 2)行业偏离合计=sum(abs(Wi-Bi))/2 其中,Wi是基金持有行业i的市值占净值比;Bi是基准在行业i上的权重 | 参数 | 类型 | 说明 | | --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `index_id` | string | 指数,指数代码 | | `rdate` | integer | 报告期,指定报告期 | | `dim_type` | integer | 用户自定义,偏离维度 显示名 取值 股票仓位偏离 "股票仓位偏离" 债券仓位偏离 "债券仓位偏离" 行业偏离 "行业偏离" 风格偏离 "风格偏离" 行业合计偏离 "行业合计偏离" | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | | `industry_type` | integer | 用户自定义,行业类型 显示名 取值 申万一级行业 1 证监会一级行业 2 中证一级行业 3 | 返回:real ### 示例 范例01:获取"OF510500"在报告期20250630的股票仓位与基金业绩比较基准的偏离度(%) ```tsl // 获取"OF510500"在报告期20250630的股票仓位与基金业绩比较基准的偏离度(%) // 按占净值比例(%)计算 FundID := "OF510500"; BenchMarkID := FundBenchmarkOFID(FundID); Setsysparam(Pn_stock(), FundID); RDate := 20250630; return FundDeviationDegree(BenchMarkID, RDate, "股票仓位偏离", "占净值比例(%)"); // 输出:-3.658 ``` 范例02:获取"OF510500"在报告期20250630的股票仓位与基金业绩比较基准的偏离度(%) ```tsl // 获取"OF510500"在报告期20250630的股票仓位与基金业绩比较基准的偏离度(%) // 按占净值比例(%)计算 FundID := "OF510500"; BenchMarkID := FundBenchmarkOFID(FundID); Setsysparam(Pn_stock(), FundID); RDate := 20250630; return FundDeviationDegree(BenchMarkID, RDate, "股票仓位偏离", "占净值比例(%)"); // 输出:-3.658 ``` ## `fundDeviationDegree_fg(rdate, por_type, style_name)` 声明:function 返回指定风格偏离度(%)(默认基准) 偏离度:Wp-Wb,其中Wp为基金持仓指定风格权重,Wb为业绩基准风格权重 | 参数 | 类型 | 说明 | | ------------ | ------- | ----------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | | `style_name` | string | 字符串,风格名称 | 返回:real ### 示例 范例01:结果:-0.048 ```tsl FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; return FundDeviationDegree_FG(RDate, '占净值比例(%)', '大盘成长'); // 输出:-0.048 ``` ## `fundDeviationDegree_hy(rdate, por_type, industry_type, industry_name)` 声明:function 返回指定行业偏离度(%)(默认基准) 偏离度:Wp-Wb,其中Wp为基金持仓指定行业权重,Wb为业绩基准权重 | 参数 | 类型 | 说明 | | --------------- | ------- | ----------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | | `industry_type` | integer | 用户自定义,行业类型 显示名 取值 申万一级行业 1 证监会一级行业 2 中证一级行业 3 | | `industry_name` | string | 字符串,行业名称 | 返回:real ### 示例 范例01:获取"OF510500"报告期20250630的申万房地产偏离度(%),按占净值比例(%)计算 ```tsl // 获取"OF510500"报告期20250630的申万房地产偏离度(%),按占净值比例(%)计算 FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; return FundDeviationDegree_HY(RDate, '占净值比例(%)', 1, '申万房地产'); // 输出:-0.049 ``` ## `fundDeviationDegree_hyhj(rdate, por_type, industry_type)` 声明:function 计算行业偏离合计,公式为sum(abs(Wi-Bi))/2 其中,Wi是基金持有行业i的市值占净值比;Bi是基准在行业i上的权重 | 参数 | 类型 | 说明 | | --------------- | ------- | ----------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | | `industry_type` | integer | 用户自定义,行业类型 显示名 取值 申万一级行业 1 证监会一级行业 2 中证一级行业 3 | 返回:real ### 示例 范例01:获取"OF510500"报告期20250630的行业偏离度(%), ```tsl // 获取"OF510500"报告期20250630的行业偏离度(%), // 使用申万一级行业,按占净值比例(%)计算 FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; return FundDeviationDegree_HYHJ(RDate, '占净值比例(%)', 1); // 输出:1.829 ``` ## `fundDeviationDegree_stocks(rdate, por_type)` 声明:function 返回股票仓位偏离度(%) 偏离度:Wp-Wb,其中Wp为基金持仓股票权重,Wb为基准权重 | 参数 | 类型 | 说明 | | ---------- | ------- | ----------------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 占净值比例(%) "占净值比例(%)" 占市值比例(%) "占市值比例(%)" | 返回:real ### 示例 范例01:获取"OF510500"报告期20250630的股票仓位偏离度(%),按占净值比例(%)计算 ```tsl // 获取"OF510500"报告期20250630的股票仓位偏离度(%),按占净值比例(%)计算 FundID := "OF510500"; Setsysparam(Pn_stock(), FundID); RDate := 20250630; return FundDeviationDegree_Stocks(RDate, "占净值比例(%)"); // 输出:-3.658 ``` ## `fundEquityExposure(rdate)` 声明:function 返回含权资产仓位(可转债)(%) 从持债配置表获得 | 参数 | 类型 | 说明 | | ------- | ------- | ----------------- | | `rdate` | integer | 报告期,指定报告期 | 返回:real ### 示例 范例01:获取"OF000014"在202500630的含权资产仓位(可转债)(%) ```tsl // 获取"OF000014"在202500630的含权资产仓位(可转债)(%) Setsysparam(Pn_stock(), "OF000014"); Rdate := 20250630; return FundEquityExposure(Rdate);; // 输出:60.06 ``` ## `fundModifiedDuration(rdate, por_type)` 声明:function 返回久期是债券各期现金流支付时间。组合久期等于占净值比例加权个券的久期, 债券久期等于债券市值占比加权个券久期: MDuarationt=Sum(V[i,t]×MDuration[i,t]) 其中MDuration[i,t]是T日第i个债修正久期,v[i,t]为T日第i个债的市值占比(或净值占比) | 参数 | 类型 | 说明 | | ---------- | ------- | ------------------------------------------------------------------------------------- | | `rdate` | integer | 报告期,指定报告期 | | `por_type` | integer | 用户自定义,占比计算方式 显示名 取值 组合久期 "占净值比例(%)" 债券久期 "占市值比例(%)" | 返回:real ### 示例 范例01:获取"OF000014"在报告期20251231的组合久期 ```tsl // 获取"OF000014"在报告期20251231的组合久期 FundID := "OF000014"; Setsysparam(Pn_stock(), FundID); RDate := 20251231; return FundModifiedDuration(RDate, "占净值比例(%)"); // 输出:0.194 ```