动态周期K线

register_extra_ktype(ktype, basetype, nbars|minutes[, get_phase_end])

注册扩展K线类型, 实现自定义动态周期K线。

方式一: 严格基于Bar数量进行合成, 如: register_extra_ktype("DAY4, "DAY", 4)

方式二: 基于时间段进行合成, 需定义当前时间计算周期结束时间的转换函数, 如定义7分钟K线:

def get_min3_phase_end(datetime):
    m = datetime.minute
    if m % 3 == 0:
        return datetime
    m = (m / 3 + 1) * 3
    return Datetime(datetime.year, datetime.month, datetime.day, datetime.hour, m)

register_extra_ktype("MIN3", "MIN", 3, get_min3_phase_end)

备注

注意:

  1. Hikyuu 已内建了基于Bar数量的的DAY3、DAY5、DAY7, 和基于时间转换的 MIN3 扩展K线

  2. 建议使用 hub c++ 部件的方式创建自定义K线类型周期结束点计算转换函数, 因为 python 带有 GIL 锁, 创建转换函数时将可能导致无法使用多线程进行计算

  3. 注册动态K线是非线程安全的, 请在注册完毕后再进行其他操作

参数:
  • ktype (str) -- 扩展K线类型名称

  • basetype (str) -- 基础K线类型名称

  • nbars (int) -- (or) minutes: 基础K线类型对应的基础周期数或分钟数

  • get_phase_end (func) -- 日期转换函数,参数为日期,返回该日期对应的周期结束日期

返回:

None