资产分配算法组件
资产分配算法组件,用于对选中的系统进行资产分配。
公共参数:
adjust_running_sys (bool|True) : 是否调整之前已经持仓策略的持仓。不调整时,仅使用总账户当前剩余资金进行分配,否则将使用总市值进行分配。
True: 主动根据资产分配对已持仓策略进行增减仓,
False: 不会根据当前分配权重对已持仓策略进行强制加减仓
auto_adjust_weight (bool|True) : 自动调整权重,此时认为传入的权重为各证券的相互比例(详见ignore_zero_weight说明)。否则,以传入的权重为指定权重不做调整(此时传入的各个权重需要小于1)。
ignore_zero_weight (bool|False) : 该参数在 auto_adjust_weight 为 True 时生效。是否过滤子类返回的比例权重列表中的 0 值(包含小于0)和 nan 值。
如: 子类返回权重比例列表 [6, 2, 0, 0, 0], 则 - 过滤 0 值, 则实际调整后的权重为 Xi / sum(Xi): [6/8, 2/8] - 不过滤, m 设为非零元素个数, n为总元素个数, (Xi / Sum(Xi)) * (m / n): [(6/8)*(2/5), (2/8)*(2/5), 0, 0, 0] 即保留分为5份后, 仅在2份中保持相对比例ignore_se_score_is_null (bool|False) : 忽略选中系统列表中的系统得分为 null 的系统。 注意: 某些SE(如SE_MultiFactor)本身可能也存在类似控制
ignore_se_score_lt_zero (bool|False) : 忽略选中系统列表中的系统得分小于等于 0 的系统
reserve_percent (float|0.0) : 资产占比保留比例,小于该比例的资产将被忽略。
trace (bool|False) : 打印跟踪信息
内建资产分配算法
代码 | 名称 | 描述 |
---|---|---|
AF_FixedWeight | 固定比例资产分配 | 每个选中的资产都只占总资产固定的比例 |
AF_FixedWeightList | 固定比例资产分配列表 | 按指定的权重列表对选中系统进行资产分配 |
AF_EqualWeight | 固定比例资产分配 | 对选中的资产进行等比例分配 |
AF_MultiFactor | 多因子评分权重资产分配 | 根据系统得分进行资产分配,对选中的系统进行得分排序,按得分从高到低进行资产分配,得分为0的系统将被忽略。 |
- hikyuu.trade_sys.AF_FixedWeight(weight)
固定比例资产分配,每个选中的资产都只占总资产固定的比例
- 参数:
weight (float) – 指定的资产比例 [0, 1]
- hikyuu.trade_sys.AF_FixedWeightList(weights)
固定比例资产分配列表.
- 参数:
weights (float) – 指定的资产比例列表
- hikyuu.trade_sys.AF_EqualWeight()
固定比例资产分配,对选中的资产进行等比例分配
- hikyuu.trade_sys.AF_MultiFactor()
根据系统得分进行资产分配,对选中的系统进行得分排序,按得分从高到低进行资产分配,得分为0的系统将被忽略。
系统权重系数结构
- class hikyuu.trade_sys.SystemWeight
系统权重系数结构,在资产分配时,指定对应系统的资产占比系数
- sys 对应的 System 实例
- weight 对应的权重系数,有效范围为 [0, 1]
资产分配算法基类
- class hikyuu.trade_sys.AllocateFundsBase
资产分配算法基类, 子类接口:
_allocateWeight : 【必须】子类资产分配调整实现
_clone : 【必须】克隆接口
_reset : 【可选】重载私有变量
- name 名称
- __init__(self[, name="AllocateFundsBase])
初始化构造函数
- 参数:
name (str) – 名称
- have_param(self, name)
指定的参数是否存在
- 参数:
name (str) – 参数名称
- 返回:
True 存在 | False 不存在
- get_param(self, name)
获取指定的参数
- 参数:
name (str) – 参数名称
- 返回:
参数值
- 引发:
out_of_range – 无此参数
- set_param(self, name, value)
设置参数
- 参数:
name (str) – 参数名称
value (int | bool | float | string) – 参数值
- 引发:
logic_error – Unsupported type! 不支持的参数类型
- reset(self)
复位操作
- clone(self)
克隆操作
- _calculate(self)
【重载接口】子类计算接口
- _reset(self)
【重载接口】子类复位接口,复位内部私有变量