combine_holds_and_pairs

czsc.combine_holds_and_pairs(holds, pairs, results_path)[source]

结合股票池和择时策略开平交易进行分析

函数计算逻辑:

  1. 将holds和pairs数据进行处理和准备。
    • 将holds复制到dfh变量。

    • 将dfh的’成分日期’列转换为日期类型。

    • 将dfh的’证券代码’列赋值给’标的代码’列。

    • 将pairs复制到dfp变量。

    • 将dfp的’开仓时间’列转换为日期类型,并将日期部分提取出来赋值给’开仓日期’列。

  2. 合并数据并筛选交易对。
    • 将dfp与dfh的[[‘开仓日期’, ‘标的代码’, ‘持仓权重’]]列进行左连接,得到dfp_

    • 从dfp_中选择持仓权重大于0的交易对,赋值给df_pairs。

    • 从dfp中选择开仓时间在df_pairs的开仓时间范围内的数据,赋值给dfp_sub。

  3. 进行评价和分析。
    • 使用dfp_sub创建PairsPerformance对象tp_old。

    • 使用df_pairs创建PairsPerformance对象tp_new。

  4. 创建结果目录并保存评价结果和交易数据。
    • 使用os.makedirs创建结果目录。

    • 将tp_old的统计结果保存为Excel文件,文件名为”原始交易评价.xlsx”。

    • 将tp_new的统计结果保存为Excel文件,文件名为”组合过滤评价.xlsx”。

    • 将df_pairs的数据保存为Feather文件,文件名为”组合过滤交易.feather”。

  5. 返回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: