# 应用专题 / 基金研究 / 风格分析

## `fund_style_index_cfg(type)`

声明：function

基金仓位基准配置函数，用户可自定义

<!-- tags: 持仓 基金产品 比较基准 业绩基准 基金 仓位分析 -->

| 参数   | 类型    | 说明                                   |
| ------ | ------- | -------------------------------------- |
| `type` | integer | 控制计算方法、数据口径或返回格式的选项 |

返回：array

## `fund_styleQKData(begt, endt, index_id, type)`

声明：function

计算单只基金在指定区间内相对给定基准的风格仓位

<!-- tags: 持仓 基金产品 风格因子 投资风格 基金 仓位分析 -->

| 参数       | 类型     | 说明                 |
| ---------- | -------- | -------------------- |
| `begt`     | datetime | 区间开始日           |
| `endt`     | datetime | 区间截止日           |
| `index_id` | string   | 市场基准指数代码     |
| `type`     | integer  | 用户自定义的基准类型 |

返回：array

## `tsPositionMeasure`

声明：class

复用行情数据、缓存和优化约束，对指定基金与日期执行仓位测算的求解基类

<!-- tags: 基金 仓位测算 数学优化 求解基类 -->

### `FDataNum`

声明：field

回归使用的交易日数，默认 20

可见性：`public`

类型：integer

### `FEndT`

声明：field

仓位测算截止日，默认 `Today()`

可见性：`public`

类型：datetime

### `FCycle`

声明：field

行情数据周期，默认 `日线`

可见性：`public`

类型：string

### `FBaseFund`

声明：field

目标测算基金代码，必须设置

可见性：`public`

类型：string

### `FIndexArr`

声明：field

权益基准代码列表

可见性：`public`

类型：array

### `FBondId`

声明：field

固收基准代码；为空时不配置债券仓位

可见性：`public`

类型：string

### `FifConstant`

声明：field

回归模型是否包含常数项，默认 `True`

可见性：`public`

类型：boolean

### `FObjType`

声明：field

优化目标函数类型；设为 -1 时由 `GetObj` 提供自定义目标

可见性：`public`

类型：integer

### `FConType`

声明：field

约束类型；设为 -1 时由 `GetCon` 提供自定义约束

可见性：`public`

类型：integer

### `FThresholdLower`

声明：field

与 `FConType` 配合使用的约束下界

可见性：`public`

类型：real

### `FThresholdUpper`

声明：field

与 `FConType` 配合使用的约束上界

可见性：`public`

类型：real

### `FYdata`

声明：field

目标基金净值收益率序列

可见性：`public`

类型：array

### `FXdata`

声明：field

权益基准收益率矩阵，列顺序与 `FIndexArr` 对应

可见性：`public`

类型：array

### `FOtherX`

声明：field

固收基准收益率序列

可见性：`public`

类型：array

### `Fiffastgetdata`

声明：field

是否优先使用数据仓库中的预计算基金收益率，默认 `True`

可见性：`public`

类型：boolean

### `FifUseCase`

声明：field

是否使用缓存减少重复取数，默认 `True`

可见性：`public`

类型：boolean

### `PortfolioOptimize()`

声明：function

按照优化目标和约束求解仓位配置比例

可见性：`public`

返回：boolean

### `Upm_Endt(EndT)`

声明：function

更新测算截止日并复用约束执行仓位测算

可见性：`public`

| 参数   | 类型     | 说明           |
| ------ | -------- | -------------- |
| `EndT` | datetime | 新的测算截止日 |

返回：boolean

### `Upm_Fund(baseFund)`

声明：function

更新目标基金并复用基准数据和约束执行仓位测算

可见性：`public`

| 参数       | 类型   | 说明         |
| ---------- | ------ | ------------ |
| `baseFund` | string | 新的目标基金 |

返回：boolean

### `GetXData()`

声明：function

设置基金净值收益率数据 `FYdata`；可重写以接入自有数据

可见性：`public`

### `SetXdata()`

声明：function

设置权益基准收益率矩阵 `FXdata`；可重写以接入自有数据

可见性：`public`

### `SetOtherX()`

声明：function

设置固收基准收益率序列 `FOtherX`；可重写以接入自有数据

可见性：`public`

### `GetObj(wa, WEquity_, Wbond)`

声明：function

在 `FObjType=-1` 时提供自定义优化目标

可见性：`public`

| 参数       | 类型  | 说明             |
| ---------- | ----- | ---------------- |
| `wa`       | real  | 常数项收益       |
| `WEquity_` | array | 权益资产配置比例 |
| `Wbond`    | real  | 债券配置比例     |

返回：real

### `GetCon(wa, WEquity_, Wbond)`

声明：function

在 `FConType=-1` 时提供自定义等式与不等式约束

可见性：`public`

| 参数       | 类型  | 说明             |
| ---------- | ----- | ---------------- |
| `wa`       | real  | 常数项收益       |
| `WEquity_` | array | 权益资产配置比例 |
| `Wbond`    | real  | 债券配置比例     |

返回：array

### `GetRealDataNum()`

声明：function

返回对齐市场交易日后基金实际公布的净值点数

可见性：`public`

返回：integer

### `GetPmedParams(wa, WEquity, Wbond)`

声明：function

通过输出参数批量取得优化后的常数项、权益配置和债券配置

可见性：`public`

| 参数      | 类型  | 说明             |
| --------- | ----- | ---------------- |
| `wa`      | real  | 输出常数项收益   |
| `WEquity` | array | 输出权益配置比例 |
| `Wbond`   | real  | 输出债券配置比例 |

返回：nil

## `ts_SameTypeFundEquityPercent`

声明：class

在历史回溯场景中批量测算同类基金仓位，并提供缓存、汇总和误差分析接口

<!-- tags: 基金 仓位测算 同类基金 历史回溯 分析框架 -->

### `FEndT`

声明：field

测算截止日，默认 `Today()`

可见性：`public`

类型：datetime

### `FBegT`

声明：field

测算开始日，默认从当前日期向前推一年

可见性：`public`

类型：datetime

### `FCycle`

声明：field

测算周期，默认 `日线`

可见性：`public`

类型：string

### `FIndexArr`

声明：field

默认求解器使用的权益基准代码列表

可见性：`public`

类型：array

### `FBondId`

声明：field

默认求解器使用的固收基准代码

可见性：`public`

类型：string

### `FDataNum`

声明：field

默认求解器使用的回归天数，默认 20

可见性：`public`

类型：integer

### `FPMOBJ`

声明：field

仓位测算求解器；为空时按 `FIndexArr`、`FBondId` 和 `FDataNum` 创建默认 `tsPositionMeasure`

可见性：`public`

类型：object

### `FMinDataNum`

声明：field

约束回归使用的最小基金净值点数，默认 -1 表示不计算点数

可见性：`public`

类型：integer

### `FRDateType`

声明：field

真实仓位报告期序列类型；-1 不输出，0 输出季报仓位

可见性：`public`

类型：integer

### `FVersionId`

声明：field

结果缓存模式，默认 -1 表示不缓存

可见性：`public`

类型：integer

### `FDestDir`

声明：field

缓存结果输出目录

可见性：`public`

类型：string

### `FAnyTimeout`

声明：field

是否实时缓存计算结果，默认 `True`

可见性：`public`

类型：boolean

### `FifNoLog`

声明：field

是否启用静默模式，默认 `False`

可见性：`public`

类型：boolean

### `BackMeasure()`

声明：function

执行同类基金历史仓位测算主流程

可见性：`public`

### `GetTimeSeries()`

声明：function

返回仓位测算时间序列；可重写以提供自定义回溯日期

可见性：`public`

返回：array

### `GetFundArr(vEndT)`

声明：function

返回指定日需要求解仓位的基金列表；可重写以自定义基金筛选

可见性：`public`

| 参数    | 类型     | 说明     |
| ------- | -------- | -------- |
| `vEndT` | datetime | 当前时点 |

返回：array

### `GetStatfundData(regmxarrday, day)`

声明：function

从指定日已完成的基金仓位结果中筛选进入统计分析的数据；可重写

可见性：`public`

| 参数          | 类型     | 说明                   |
| ------------- | -------- | ---------------------- |
| `regmxarrday` | array    | 当日各基金仓位测算结果 |
| `day`         | datetime | 当前统计日期           |

返回：array

### `GetPMOBJ(vEndT, fund)`

声明：function

返回指定日期、指定基金的仓位求解器参数；可重写以增加个别约束

可见性：`public`

| 参数    | 类型     | 说明     |
| ------- | -------- | -------- |
| `vEndT` | datetime | 截止日   |
| `fund`  | string   | 基金代码 |

返回：any

### `GetPMdetail(vBegT, vEndT)`

声明：function

返回区间基金仓位汇总使用的原始测算明细

可见性：`public`

| 参数    | 类型     | 说明       |
| ------- | -------- | ---------- |
| `vBegT` | datetime | 区间开始日 |
| `vEndT` | datetime | 区间截止日 |

返回：array

### `GetPMdistribution(vBegT, vEndT)`

声明：function

返回不同日期下的基金仓位分布统计

可见性：`public`

| 参数    | 类型     | 说明       |
| ------- | -------- | ---------- |
| `vBegT` | datetime | 区间开始日 |
| `vEndT` | datetime | 区间截止日 |

返回：array

### `GetOverAllPM(vBegT, vEndT, type_)`

声明：function

返回不同日期和加权方式下的基金整体仓位

可见性：`public`

| 参数    | 类型     | 说明             |
| ------- | -------- | ---------------- |
| `vBegT` | datetime | 区间开始日       |
| `vEndT` | datetime | 区间截止日       |
| `type_` | integer  | 整体仓位加权方式 |

返回：array

### `GetErrorDistribution(vBegT, vEndT)`

声明：function

返回不同日期下基金测算仓位与真实仓位的误差分布

可见性：`public`

| 参数    | 类型     | 说明       |
| ------- | -------- | ---------- |
| `vBegT` | datetime | 区间开始日 |
| `vEndT` | datetime | 区间截止日 |

返回：array

### `GetOverAllErrorAnalysis(vBegT, vEndT)`

声明：function

返回基金整体仓位误差分析结果

可见性：`public`

| 参数    | 类型     | 说明       |
| ------- | -------- | ---------- |
| `vBegT` | datetime | 区间开始日 |
| `vEndT` | datetime | 区间截止日 |

返回：array
