get_ensemble_weight
- czsc.traders.get_ensemble_weight(trader: CzscTrader, method: AnyStr | Callable = 'mean')[source]
获取 CzscTrader 中所有 positions 按照 method 方法集成之后的权重
函数计算逻辑:
获取 trader 持仓信息并转换为DataFrame:
遍历交易者的每个持仓位置。
将每个位置的持仓信息转换为DataFrame,并合并到一个整体的DataFrame中。
将持仓列重命名为对应的位置名称。
根据给定的方法计算权重:
如果方法是可调用对象,将持仓信息转换为字典,并传递给该方法进行计算。
如果方法是预定义字符串(”mean”、”max”、”min”、”vote”),根据相应的计算方式计算权重。
返回包含日期、交易标的、权重和价格的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’]