generate_czsc_signals

czsc.generate_czsc_signals(bars: List[RawBar], signals_config: List[dict], sdt: AnyStr | datetime = '20170101', init_n: int = 500, df=False, **kwargs)[source]

使用 CzscSignals 生成信号

函数执行逻辑:

  1. 函数首先从信号配置signals_config中获取所有的freqs。

  2. 然后,函数将信号计算开始时间sdt转换为datetime类型,并将开始时间之前的K线数据分配给bars_left,开始时间之后的K线数据分配给bars_right。

  3. 如果bars_right为空,即没有开始时间之后的K线数据,函数会发出一个警告,并返回一个空的DataFrame或空列表。

  4. 函数创建一个BarGenerator对象bg,并使用bars_left中的K线数据来初始化它。

  5. 函数创建一个CzscSignals对象cs,并将bg和信号配置signals_config作为参数传入。

  6. 函数遍历bars_right中的每一根K线,对于每一根K线,函数调用cs.update_signals(bar)来更新信号,并将更新后的信号添加到_sigs列表中。

  7. 最后,如果df参数为True,函数将_sigs转换为DataFrame并返回;否则,直接返回_sigs。

Parameters:
  • bars – 基础周期 K 线序列

  • signals_config

    信号函数配置,格式如下: signals_config = [

    {‘name’: ‘czsc.signals.tas_ma_base_V221101’, ‘freq’: ‘日线’, ‘di’: 1, ‘ma_type’: ‘SMA’, ‘timeperiod’: 5}, {‘name’: ‘czsc.signals.tas_ma_base_V221101’, ‘freq’: ‘日线’, ‘di’: 5, ‘ma_type’: ‘SMA’, ‘timeperiod’: 5}, {‘name’: ‘czsc.signals.tas_double_ma_V221203’, ‘freq’: ‘日线’, ‘di’: 1, ‘ma_seq’: (5, 20), ‘th’: 100}, {‘name’: ‘czsc.signals.tas_double_ma_V221203’, ‘freq’: ‘日线’, ‘di’: 5, ‘ma_seq’: (5, 20), ‘th’: 100},

    ]

  • sdt – 信号计算开始时间

  • init_n – 用于 BarGenerator 初始化的基础周期K线数量

  • df – 是否返回 df 格式的信号计算结果,默认 False

Returns:

信号计算结果