# 金融 / 组合评价 / 绩效归因 / 多期收益分解 / 中间函数

## `pf_sp_returnAttribution(t, end_t, attr_fields)`

声明：function

由个券单期对数收益分解项，得到组合收益分解 （1）通过转换系数k=ln(1+r)/r，将个券对数收益分解项 转为 收益分解项 （2）个券收益分解项 加权合并得到 组合收益分解项 （3）组合收益=sum(组合收益分解项) 注：输入的个券分解项为【对数收益】 输出的组合分解项为【收益】

<!-- tags: 金融 组合评价 绩效归因 多期收益分解 中间函数 -->

| 参数          | 类型     | 说明                                                                                                                                                            |
| ------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `t`           | db_data  | 数据表类型, 个券对数收益分解数据，包含“代码”、“比例(%)”、“涨幅(%)”、各分解项；“涨幅(%)”:个券收益，非对数收益；“各分解项”:衡量对数收益分解项，对应AttrFields字段 |
| `end_t`       | datetime | 日期, 截止日                                                                                                                                                    |
| `attr_fields` | array    | 一维字符串数组, 分解项字段                                                                                                                                      |

返回：array

### 示例

范例01：调用 pf_SP_ReturnAttribution

```tsl
t :=
array(
    ("代码":"SZ000001", "比例(%)":40.0, "因子贡献(%)":0.2, "特质贡献(%)":0.3),
    ("代码":"SZ000002", "比例(%)":60.0, "因子贡献(%)":0.1, "特质贡献(%)":0.2));
EndT := 20260330T;
AttrFields := array("因子贡献(%)", "特质贡献(%)");
return pf_SP_ReturnAttribution(t, EndT, AttrFields);
```
