combine_holds_and_pairs
- czsc.traders.combine_holds_and_pairs(holds, pairs, results_path)[source]
结合股票池和择时策略开平交易进行分析
函数计算逻辑:
- 将holds和pairs数据进行处理和准备。
将holds复制到dfh变量。
将dfh的’成分日期’列转换为日期类型。
将dfh的’证券代码’列赋值给’标的代码’列。
将pairs复制到dfp变量。
将dfp的’开仓时间’列转换为日期类型,并将日期部分提取出来赋值给’开仓日期’列。
- 合并数据并筛选交易对。
将dfp与dfh的[[‘开仓日期’, ‘标的代码’, ‘持仓权重’]]列进行左连接,得到dfp_。
从dfp_中选择持仓权重大于0的交易对,赋值给df_pairs。
从dfp中选择开仓时间在df_pairs的开仓时间范围内的数据,赋值给dfp_sub。
- 进行评价和分析。
使用dfp_sub创建PairsPerformance对象tp_old。
使用df_pairs创建PairsPerformance对象tp_new。
- 创建结果目录并保存评价结果和交易数据。
使用os.makedirs创建结果目录。
将tp_old的统计结果保存为Excel文件,文件名为”原始交易评价.xlsx”。
将tp_new的统计结果保存为Excel文件,文件名为”组合过滤评价.xlsx”。
将df_pairs的数据保存为Feather文件,文件名为”组合过滤交易.feather”。
返回tp_old和tp_new对象。
- Parameters:
holds –
- 组合股票池数据,样例:
成分日期 证券代码 n1b 持仓权重
0 2020-01-02 000001.SZ 183.758194 0.001232 1 2020-01-02 000002.SZ -156.633896 0.001232 2 2020-01-02 000063.SZ 310.296204 0.001232 3 2020-01-02 000066.SZ -131.824997 0.001232 4 2020-01-02 000069.SZ -38.561699 0.001232
pairs –
- 择时策略开平交易数据,数据格式如下
标的代码 交易方向 最大仓位 开仓时间 累计开仓 平仓时间 0 002698.SZ 多头 1 2015-01-12 13:30:00 24.02790 2015-01-13 09:45:00
1 300031.SZ 多头 1 2015-01-12 10:30:00 53.87420 2015-01-13 09:45:00 2 300046.SZ 多头 1 2015-01-12 10:15:00 41.35824 2015-01-13 09:45:00 3 300076.SZ 多头 1 2015-01-12 10:30:00 57.84800 2015-01-13 09:45:00 4 300099.SZ 多头 1 2015-01-12 10:15:00 62.57308 2015-01-13 09:45:00
累计平仓 累计换手 持仓K线数 持仓天数 盈亏金额 交易盈亏 盈亏比例
0 23.38150 2 7 0.843750 -0.64640 -0.0269 -0.0269 1 52.71284 2 13 0.968750 -1.16136 -0.0215 -0.0215 2 40.72068 2 14 0.979167 -0.63756 -0.0154 -0.0154 3 55.45144 2 13 0.968750 -2.39656 -0.0414 -0.0414 4 61.50528 2 14 0.979167 -1.06780 -0.0170 -0.0170
results_path – 分析结果目录
- Returns: