SignalsParser

class czsc.SignalsParser(signals_module: str = 'czsc.signals')[source]

Bases: object

解析一串信号,生成信号函数配置

Methods Summary

config_to_keys(config)

将信号函数配置转换为信号key列表

get_function_name(signal)

获取信号对应的信号函数名称

parse(signal_seq)

解析信号序列

parse_params(name, signal)

获取信号函数参数

Methods Documentation

config_to_keys(config: List[Dict])[source]

将信号函数配置转换为信号key列表

函数执行逻辑:

  1. 首先创建了一个空列表 keys 用于存储信号key。

  2. 对于传入的 config 列表中的每个配置字典 conf 进行以下操作:
    • 获取信号函数的名称。

    • 如果该信号函数的名称在 self.sig_pats_map 中存在对应的模板,使用参数填充模板,并将结果添加到 keys 列表中。

Parameters:

config

信号函数配置

config = [{‘freq’: ‘日线’, ‘max_overlap’: ‘3’, ‘name’: ‘czsc.signals.cxt_bi_end_V230222’},

{‘freq1’: ‘日线’, ‘freq2’: ‘60分钟’, ‘name’: ‘czsc.signals.cxt_zhong_shu_gong_zhen_V221221’}]

Returns:

信号key列表

get_function_name(signal: str)[source]

获取信号对应的信号函数名称

函数执行逻辑:

  1. 创建一个 _signal 对象,通过传入的信号字符串进行初始化。

  2. 通过遍历 sig_name_map 中的项目,找出那些与 _signal.k3 相匹配的键,并将它们存储在 _k3_match 列表中。

  3. 如果只有一个匹配项,则返回该项;否则记录错误日志并返回 None。

Parameters:

signal – 信号,数据样例:15分钟_D1K_量柱V221218_低量柱_6K_任意_0

Returns:

信号函数名称

parse(signal_seq: List[str])[source]

解析信号序列

函数执行逻辑:

  1. 接受一个signal_seq 参数。

  2. 定义一个空列表res ,用于存储解析结果。

  3. 遍历信号序列signal_seq 中的每一个信号:

    • 调用get_function_name 方法,以信号为参数,获取该信号对应的函数名。

    • 进行函数名存在性判断,name 在sig_pats_map 中存在, 调用parse_params 方法,以函数名和信号为参数,解析参数并返回结果。

Parameters:

signal_seq – 信号序列, 样例: [‘15分钟_D1K_量柱V221218_低量柱_6K_任意_0’, ‘日线_D1K_量柱V221218_低量柱_6K_任意_0’]

Returns:

信号函数配置

parse_params(name, signal)[source]

获取信号函数参数

函数执行逻辑:

  1. 首先根据传入的 name 和 signal 参数,通过 Signal(signal).key 获取一个键值。

  2. 然后从实例变量 sig_pats_map 中获取与指定名称对应的参数模板,并将其存储在 pats 中。

  3. 如果没有找到参数模板,则返回 None。

  4. 最后将信号函数的完整名称存储在参数字典中,并返回参数字典。

Parameters:
  • name – 信号函数名称, 如:cxt_bi_end_V230222

  • signal – 需要解析的信号, 如:15分钟_D1K_量柱V221218_低量柱_6K_任意_0

Returns: