CzscSignals

class czsc.traders.CzscSignals(bg: BarGenerator | None = None, **kwargs)[source]

Bases: object

缠中说禅技术分析理论之多级别信号计算

Methods Summary

get_signals_by_conf()

通过信号参数配置获取信号

open_in_browser([width, height])

直接在浏览器中打开分析结果

take_snapshot([file_html, width, height])

获取快照

update_signals(bar)

输入基础周期已完成K线,更新信号,更新仓位

Methods Documentation

get_signals_by_conf()[source]

通过信号参数配置获取信号

函数执行逻辑:

  1. 函数首先创建一个空的有序字典s。

  2. 如果self.signals_config不存在,函数直接返回空字典s,否则,函数遍历其中的每一个配置。

  3. 对于每一个参数,函数提取出信号名称和freq,并根据这两个参数获取相应的信号,获取到的信号被添加到字典s中。

  4. 函数最后返回字典s,其中包含了所有获取到的信号。

信号参数配置,格式如下:

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},

]

Returns:

信号字典

open_in_browser(width='1400px', height='580px')[source]

直接在浏览器中打开分析结果

函数执行逻辑:

  1. 首先创建一个HTML文件的路径file_html,这个文件将被保存在用户的主目录下,文件名为”temp_czsc_advanced_trader.html”。

  2. 然后,函数调用self.take_snapshot方法,将分析结果保存为一个HTML文件。

  3. 最后,函数使用webbrowser.open方法打开这个HTML文件

take_snapshot(file_html=None, width: str = '1400px', height: str = '580px')[source]

获取快照

函数执行逻辑:

  1. 函数首先创建一个Tab对象,用于存储所有的图表和表格。

  2. 函数遍历所有的freq,对于每一个freq,函数获取相应的CZSC对象,并将其转换为一个图表,然后添加到Tab对象中。

  3. 函数提取出所有的信号,并按照freq分组。对于每一个freq,函数创建一个表格,包含该freq下的所有信号,然后添加到Tab对象中。

  4. 如果还有其他的信号,函数创建一个表格,包含所有的其他信号,然后添加到Tab对象中。

  5. 最后,如果提供了file_html参数,函数将Tab对象渲染为一个HTML文件并保存;否则,函数返回Tab对象。

Parameters:
  • file_html – 交易快照保存的 html 文件名

  • width – 图表宽度

  • height – 图表高度

Returns:

update_signals(bar: RawBar)[source]

输入基础周期已完成K线,更新信号,更新仓位

函数执行逻辑:

  1. 函数首先调用self.bg.update(bar),输入一个已完成的基础周期K线bar,更新各周期K线。

  2. 然后,函数遍历所有的K线freq和对应的K线数据,对每一个K线数据,函数调用self.kas[freq].update(b[-1]),更新对应的 CZSC 对象。

  3. 函数提取出K线的标的代码bar.symbol,并将其赋值给self.symbol。

  4. 函数提取出基础freq的最后一根K线last_bar,并从中提取出结束时间dt,K线IDid,以及收盘价close,并将它们分别赋值给self.end_dt,self.bid,和self.latest_price。

  5. 函数创建一个空的有序字典s,并调用self.get_signals_by_conf()获取所有的信号,然后将这些信号更新到字典s中。

  6. 最后,函数将last_bar的所有属性更新到字典s中。

Parameters:

bar – 基础周期已完成K线

Returns:

None