597 lines
10 KiB
Markdown
597 lines
10 KiB
Markdown
# 应用专题 / 基金研究 / 风格分析
|
|
|
|
## `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
|