# 基金研究 / 财报归因

## `ts_FundFinancialAttribution`

声明：class

基金财报归因框架

<!-- tags: 收益分解 贡献分析 基金产品 基金持仓 财报分析 业绩归因 -->

### `Attribution()`

声明：function

归因主程序，用户必须调用

<!-- tags: 执行 收益分解 贡献分析 -->

可见性：`public`

### `GetRDateSeries()`

声明：function

获取归因报告期序列，默认使用成员变量 FBegRDate、FEndRDate 和 FRDateType 提取

<!-- tags: 查询 收益分解 贡献分析 时序 序列数据 交易日期 日期时间 -->

可见性：`public`

返回：array

### `GetAttributionReport(r_type)`

声明：function

归因报表，指标纵向排列，报告期横向排列

<!-- tags: 查询 收益分解 贡献分析 -->

可见性：`public`

| 参数     | 类型 | 说明                                                   |
| -------- | ---- | ------------------------------------------------------ |
| `r_type` | int  | 输出类型，0 表示输出利润总额分解，1 表示输出收益率分解 |

返回：array

### `GetTotalProfitAttiDetail(out_field)`

声明：function

利润总额分解详情

<!-- tags: 查询 利润总额归因 分解详情 基金财报 -->

可见性：`public`

| 参数        | 类型         | 说明                                                                                                                                                                            |
| ----------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `out_field` | int_or_array | 输出字段，整型或一维字符串数组，分解项详情可参考 3.3 利润总额分解中表 3-4 与 表 3-5 取值 含义 0（默认） 返回所有分解项字段 1 返回大类资产字段 一维字符串 返回指定一维字符串字段 |

返回：array

### `GetSummaryReturnDetail(out_field)`

声明：function

总收益分解详情

<!-- tags: 查询 总收益归因 分解详情 基金财报 -->

可见性：`public`

| 参数        | 类型         | 说明                                                                                                     |
| ----------- | ------------ | -------------------------------------------------------------------------------------------------------- |
| `out_field` | int_or_array | 输出字段，整型或一维字符串数组，可参考 GetTotalProfitAttiDetail 的参数说明，区 别在于各分解项都加(%)后缀 |

返回：array

### `GetFundAvgNAV()`

声明：function

获取平均资产净值

<!-- tags: 查询 单位净值 -->

可见性：`public`

返回：array

### `GetBondAvgPercent()`

声明：function

获取债券平均仓位(%)

<!-- tags: 查询 持仓 -->

可见性：`public`

返回：array

### `Fund_BondInterestIncome(r_date)`

声明：function

债券利息收入

<!-- tags: 查询 债券利息收入 基金财报 -->

可见性：`public`

| 参数     | 类型 | 说明                        |
| -------- | ---- | --------------------------- |
| `r_date` | int  | 报告期， 报告期类型（整型） |

返回：real

#### 示例

范例01：调用示例

```tsl
setsysparam(pn_stock(),"OF270048");
RDate := 20220630;
return Fund_BondInterestIncome(RDate);     //157687918.7
```

### `Fund_BondPercentAvg(r_date)`

声明：function

债券平均仓位(%)，期初与期末债券占净值比例(%)的平均值

<!-- tags: 单位净值 资产净值 持仓 -->

可见性：`public`

| 参数     | 类型 | 说明                        |
| -------- | ---- | --------------------------- |
| `r_date` | int  | 报告期， 报告期类型（整型） |

返回：real

#### 示例

范例01：调用示例

```tsl
setsysparam(pn_stock(),"OF270048");
RDate := 20220630;
return Fund_BondPercentAvg(RDate);         //124.15
```

### `Fund_NetAssetValue(r_date)`

声明：function

期末基金资产净值

<!-- tags: 查询 期末净资产 基金净值 -->

可见性：`public`

| 参数     | 类型 | 说明                        |
| -------- | ---- | --------------------------- |
| `r_date` | int  | 报告期， 报告期类型（整型） |

返回：real

#### 示例

范例01：调用示例

```tsl
setsysparam(pn_stock(),"OF270048");
RDate := 20220630;
return Fund_NetAssetValue(RDate);          //8308966561.02
```

### `Fund_NetAssetValueAvg(r_date, method)`

声明：function

平均资产净值

<!-- tags: 计算 平均净资产 基金净值 -->

可见性：`public`

| 参数     | 类型 | 说明                                                              |
| -------- | ---- | ----------------------------------------------------------------- |
| `r_date` | int  | 报告期， 报告期类型（整型）                                       |
| `method` | int  | 计算方法，整型，0 表示期初期末均值法【默认】 ，1 表示净利润反推法 |

返回：real

#### 示例

范例01：调用示例

```tsl
setsysparam(pn_stock(),"OF270048");
RDate := 20220630;
//return Fund_NetAssetValueAvg(RDate,0);    //7215693654.48
return Fund_NetAssetValueAvg(RDate,1);      //7084822306.45
```
