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 生成信号
函数执行逻辑:
函数首先从信号配置signals_config中获取所有的freqs。
然后,函数将信号计算开始时间sdt转换为datetime类型,并将开始时间之前的K线数据分配给bars_left,开始时间之后的K线数据分配给bars_right。
如果bars_right为空,即没有开始时间之后的K线数据,函数会发出一个警告,并返回一个空的DataFrame或空列表。
函数创建一个BarGenerator对象bg,并使用bars_left中的K线数据来初始化它。
函数创建一个CzscSignals对象cs,并将bg和信号配置signals_config作为参数传入。
函数遍历bars_right中的每一根K线,对于每一根K线,函数调用cs.update_signals(bar)来更新信号,并将更新后的信号添加到_sigs列表中。
最后,如果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:
信号计算结果