from collections import OrderedDict
from czsc.analyze import CZSC
from czsc.utils import create_single_signal
def bar_classify_V240606(c: CZSC, **kwargs) -> OrderedDict:
飞书文档:https://s0cqcxuy3p.feishu.cn/wiki/P79fwVE19i7vw4keDuac4tFRnMf
参数模板:"{freq}_D{di}收盘位置_分类V240606"
1. 高收盘蜡烛是指收盘价在蜡烛范围的上三分之一内的蜡烛。
2. 中间收盘价是指收盘价在蜡烛范围的中间三分之一以内。
3. 中间收盘价是指收盘价在蜡烛范围的中间三分之一以内。
- Signal('60分钟_D1收盘位置_分类V240606_低位_任意_任意_0')
- Signal('60分钟_D1收盘位置_分类V240606_中间_任意_任意_0')
- Signal('60分钟_D1收盘位置_分类V240606_高位_任意_任意_0')
- di: int, default 1, 周期偏移量
di = int(kwargs.get("di", 1))
assert di > 0, "参数 di 必须大于 0"
k1, k2, k3 = f"{freq}_D{di}收盘位置_分类V240606".split("_")
if len(c.bars_raw) < 7 + di:
return create_single_signal(k1=k1, k2=k2, k3=k3, v1=v1)
close, high, low = bar.close, bar.high, bar.low
gap_unit = (high - low) / 3
if close > (high - gap_unit):
elif close < (low + gap_unit):
return create_single_signal(k1=k1, k2=k2, k3=k3, v1=v1)
from czsc.connectors import research
from czsc.traders.base import check_signals_acc
symbols = research.get_symbols("A股主要指数")
bars = research.get_raw_bars(symbols[0], "15分钟", "20181101", "20210101", fq="前复权")
{"name": bar_classify_V240606, "freq": "60分钟"},
check_signals_acc(bars, signals_config=signals_config, height="780px", delta_days=5) # type: ignore
if __name__ == "__main__":