from enum import Enum, auto from typing import Literal class DATA_SRC(Enum): BAO_STOCK = auto() CCXT = auto() CSV = auto() class 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_2H = auto() K_4H = auto() K_6H = auto() K_8H = auto() K_12H = auto() K_3DAY = auto() K_3M = auto() K_QUARTER = auto() class KLINE_DIR(Enum): UP = auto() DOWN = auto() COMBINE = auto() INCLUDED = auto() class FX_TYPE(Enum): BOTTOM = auto() TOP = auto() UNKNOWN = auto() class BI_DIR(Enum): UP = auto() DOWN = auto() class SEG_DIR(Enum): UP = auto() DOWN = auto() class BI_TYPE(Enum): UNKNOWN = auto() STRICT = auto() SUB_VALUE = auto() # 次高低点成笔 TIAOKONG_THRED = auto() DAHENG = auto() TUIBI = auto() UNSTRICT = auto() TIAOKONG_VALUE = auto() BSP_MAIN_TYPE = Literal['1', '2', '3'] class BSP_TYPE(Enum): T1 = '1' T1P = '1p' T2 = '2' T2S = '2s' T3A = '3a' # 中枢在1类后面 T3B = '3b' # 中枢在1类前面 def main_type(self) -> BSP_MAIN_TYPE: return self.value[0] # type: ignore class AUTYPE(Enum): QFQ = auto() HFQ = auto() NONE = auto() class TREND_TYPE(Enum): MEAN = "mean" MAX = "max" MIN = "min" class TREND_LINE_SIDE(Enum): INSIDE = auto() OUTSIDE = auto() class LEFT_SEG_METHOD(Enum): ALL = auto() PEAK = auto() class FX_CHECK_METHOD(Enum): STRICT = auto() LOSS = auto() HALF = auto() TOTALLY = auto() class SEG_TYPE(Enum): BI = auto() SEG = auto() class 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 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" # 换手率 TRADE_INFO_LST = [DATA_FIELD.FIELD_VOLUME, DATA_FIELD.FIELD_TURNOVER, DATA_FIELD.FIELD_TURNRATE]