cal_trade_price

czsc.cal_trade_price(bars: List[RawBar] | DataFrame, decimals=3, **kwargs)[source]

计算给定品种基础周期K线数据的交易价格

函数执行逻辑:

  1. 首先,根据输入的 bars 参数类型(列表或 DataFrame),将其转换为 DataFrame 格式,并将其存储在变量 df 中。

  2. 计算下一根K线的开盘价和收盘价,分别存储在新列 next_open 和 next_close 中。同时,将这两个新列名添加到 price_cols 列表中。

  3. 计算 TWAP(时间加权平均价格)和 VWAP(成交量加权平均价格)。为此,函数使用了一个 for 循环, 遍历 t_seq 参数(默认值为 (5, 10, 15, 20, 30, 60))。在每次循环中:

    • 计算 TWAP:使用 rolling(t).mean().shift(-t) 方法计算时间窗口为 t 的滚动平均收盘价。

    • 计算 VWAP:首先计算滚动窗口内的成交量之和(sum_vol_t)和成交量乘以收盘价之和(sum_vcp_t),然后用后者除以前者,并向下移动 t 个单位。

    • 将 TWAP 和 VWAP 的列名添加到 price_cols 列表中。

  4. 遍历 price_cols 列表中的每个列,将其中的 NaN 值替换为对应行的收盘价。

  5. 从 DataFrame 中选择所需的列(包括基本的K线数据列和新计算的交易价格列),并使用 round(decimals) 方法保留指定的小数位数(默认为3)。

  6. 返回处理后的 DataFrame。

Parameters:
  • bars – 基础周期K线数据,一般是1分钟周期的K线

  • decimals – 保留小数位数,默认值3

Returns:

交易价格表