get_ensemble_weight

czsc.get_ensemble_weight(trader: CzscTrader, method: AnyStr | Callable = 'mean')[source]

获取 CzscTrader 中所有 positions 按照 method 方法集成之后的权重

函数计算逻辑:

  1. 获取 trader 持仓信息并转换为DataFrame:

    • 遍历交易者的每个持仓位置。

    • 将每个位置的持仓信息转换为DataFrame,并合并到一个整体的DataFrame中。

    • 将持仓列重命名为对应的位置名称。

  2. 根据给定的方法计算权重:

    • 如果方法是可调用对象,将持仓信息转换为字典,并传递给该方法进行计算。

    • 如果方法是预定义字符串(”mean”、”max”、”min”、”vote”),根据相应的计算方式计算权重。

  3. 返回包含日期、交易标的、权重和价格的DataFrame:

    • 将计算得到的权重与其他相关列一起组成一个新的DataFrame。

    • 将交易标的信息添加到新的DataFrame中。

    • 返回包含日期、交易标的、权重和价格的DataFrame副本。

Parameters:
  • trader – CzscTrader 缠论交易员对象

  • method

    str or callable

    集成方法,可选值包括:’mean’, ‘max’, ‘min’, ‘vote’ 也可以传入自定义的函数,函数的输入为 dict,key 为 position.name,value 为 position.pos, 样例输入:

    {‘多头策略A’: 1, ‘多头策略B’: 1, ‘空头策略A’: -1}

  • kwargs

Returns:

pd.DataFrame columns = [‘dt’, ‘symbol’, ‘weight’, ‘price’]