180 lines
3.4 KiB
Python
180 lines
3.4 KiB
Python
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()
|
|
TOP4 = auto()
|
|
BOTTOM1 = auto()
|
|
BOTTOM2 = auto()
|
|
BOTTOM3 = auto()
|
|
BOTTOM4 = 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]
|