from enum import Enum, auto from typing import Literal class Chan_DATA_SRC(Enum): BAO_STOCK = auto() CCXT = auto() CSV = auto() class Chan_ZS_DIR(Enum): UP = auto() DOWN = auto() class Chan_K_DIR(Enum): BULL = auto() BEAR = auto() CROSS = auto() class Chan_KL_TYPE(Enum): K_1S = auto() K_1M = auto() K_DAY = auto() K_WEEK = auto() K_MON = auto() K_YEAR = auto() K_5M = auto() K_15M = auto() K_30M = auto() K_60M = auto() K_1H = auto() K_2H = auto() K_4H = auto() K_6H = auto() K_8H = auto() K_12H = auto() K_1D = auto() K_3D = auto() K_3M = auto() K_QUARTER = auto() class Chan_KLINE_DIR(Enum): UP = auto() DOWN = auto() COMBINE = auto() INCLUDED = auto() class Chan_KLU_TYPE(Enum): BigBull = auto() MiddleBull = auto() SmallBull = auto() BigBear = auto() MiddleBear = auto() SmallBear = auto() Cross = auto() class Chan_FX_TYPE(Enum): BOTTOM = auto() TOP = auto() UNKNOWN = auto() UP = auto() DOWN = auto() TT = auto() BB = auto() PTOP = auto() PBOTTOM = auto() class Chan_KLC_FX(Enum): TOP1 = auto() TOP2 = auto() TOP3 = auto() BOTTOM1 = auto() BOTTOM2 = auto() BOTTOM3 = auto() UNKNOWN = auto() class Chan_BI_DIR(Enum): UP = auto() DOWN = auto() class Chan_SEG_DIR(Enum): UP = auto() DOWN = auto() class Chan_BI_TYPE(Enum): UNKNOWN = auto() STRICT = auto() SUB_VALUE = auto() # 次高低点成笔 TIAOKONG_THRED = auto() DAHENG = auto() TUIBI = auto() UNSTRICT = auto() TIAOKONG_VALUE = auto() Chan_BSP_MAIN_TYPE = Literal['1', '2', '3'] class Chan_BSP_DIR(Enum): BUY = auto() SELL = auto() class Chan_BSP_TYPE(Enum): T1 = '1' T1P = '1p' T2 = '2' T2S = '2s' T3A = '3a' # 中枢在1类后面 T3B = '3b' # 中枢在1类前面 T3 = '3' T3E ='3e' # T3退出点 QJT = 'qjt' # 区间套突破 QJT1 = 'qjt1' # 区间套一类买点 QJT2 = 'qjt2' # 区间套一类卖点 QJT3 = 'qjt3' # 区间套三类买点 def main_type(self) -> Chan_BSP_MAIN_TYPE: return self.value[0] # type: ignore class Chan_AUTYPE(Enum): QFQ = auto() HFQ = auto() NONE = auto() class Chan_TREND_TYPE(Enum): MEAN = "mean" MAX = "max" MIN = "min" class Chan_TREND_LINE_SIDE(Enum): INSIDE = auto() OUTSIDE = auto() class Chan_LEFT_SEG_METHOD(Enum): ALL = auto() PEAK = auto() class Chan_FX_CHECK_METHOD(Enum): STRICT = auto() LOSS = auto() HALF = auto() TOTALLY = auto() class Chan_SEG_TYPE(Enum): BI = auto() SEG = auto() class Chan_MACD_ALGO(Enum): AREA = auto() PEAK = auto() FULL_AREA = auto() DIFF = auto() SLOPE = auto() AMP = auto() VOLUMN = auto() AMOUNT = auto() VOLUMN_AVG = auto() AMOUNT_AVG = auto() TURNRATE_AVG = auto() RSI = auto() class Chan_DATA_FIELD: FIELD_TIME = "time_key" FIELD_OPEN = "open" FIELD_HIGH = "high" FIELD_LOW = "low" FIELD_CLOSE = "close" FIELD_VOLUME = "volume" # 成交量 FIELD_TURNOVER = "turnover" # 成交额 FIELD_TURNRATE = "turnover_rate" # 换手率 Chan_TRADE_INFO_LST = [Chan_DATA_FIELD.FIELD_VOLUME, Chan_DATA_FIELD.FIELD_TURNOVER, Chan_DATA_FIELD.FIELD_TURNRATE]