Source code for czsc.signals.other

# -*- coding: utf-8 -*-
"""
author: zengbin93
email: zeng_bin8888@163.com
create_dt: 2022/2/7 19:05
"""
from datetime import datetime
from collections import OrderedDict
from czsc import CZSC, Signal
from deprecated import deprecated


[docs]@deprecated(reason="请使用 czsc.signals.bar.bar_end_V221111 替代", version='1.0.0') def get_s_raw_bar_end(c: CZSC, k1='60分钟') -> OrderedDict: """原始分钟K线结束,c 必须是基础周期的 CZSC 对象""" s = OrderedDict() k2, k3 = "K线", "结束" assert "分钟" in k1 m = int(k1.replace("分钟", "")) dt: datetime = c.bars_raw[-1].dt if dt.minute % m == 0: v = "是" else: v = "否" signal = Signal(k1=k1, k2=k2, k3=k3, v1=v) s[signal.key] = signal.value return s
[docs]@deprecated(reason="请使用 czsc.signals.bar.bar_operate_span_V221111 替代", version='1.0.0') def get_s_op_time_span(c: CZSC, op: str = '开多', time_span=("14:00", "14:50")) -> OrderedDict: """日内操作时间区间,c 必须是基础周期的 CZSC 对象""" s = OrderedDict() dt: datetime = c.bars_raw[-1].dt k1 = f"{op}时间范围" assert len(time_span) == 2 k2, k3 = time_span if k2 <= dt.strftime("%H:%M") <= k3: v = "是" else: v = "否" signal = Signal(k1=k1, k2=k2, k3=k3, v1=v) s[signal.key] = signal.value return s
[docs]@deprecated(reason="请使用 czsc.signals.bar.bar_operate_span_V221111 替代", version='1.0.0') def get_s_zdt(c: CZSC, di=1) -> OrderedDict: """计算倒数第di根K线的涨跌停信息 任何K线,只要收盘价是最高价,那就不能买,只要收盘价是最低价,就不能卖, 这是用来规避回测中的一些问题的辅助函数。 """ s = OrderedDict() k1 = str(c.freq.value) k2 = f"倒{di}K" k3 = "ZDT" if len(c.bars_raw) < di + 2: v1 = "非涨跌停" else: bar = c.bars_raw[-di] if bar.close == bar.high: v1 = "涨停" elif bar.close == bar.low: v1 = "跌停" else: v1 = "非涨跌停" v = Signal(k1=k1, k2=k2, k3=k3, v1=v1) s[v.key] = v.value return s