添加分型识别

This commit is contained in:
jackyu66git
2026-03-14 02:03:27 +08:00
parent aeced3c618
commit 1c17cf1f11
2 changed files with 35 additions and 8 deletions
+25
View File
@@ -355,5 +355,30 @@ class Chan_DATA_FIELD:
FIELD_TURNOVER = "turnover" # 成交额
FIELD_TURNRATE = "turnover_rate" # 换手率
class Chan_KLC_STATE:
"""笔当下状态(缠论笔定理)。任意时刻必属其一。"""
FX = auto() # 分型构造中(未确认顶/底)
BI = auto() # 笔延伸中(分型已确认,笔在延伸)
UP = auto() # 顶分型构造中 (1,0):向上笔末端
DOWN = auto() # 底分型构造中 (-1,0):向下笔末端
# 笔定理四状态:(Chan_BI_DIR, Chan_KLC_STATE)。笔方向用 Chan_BI_DIR,阶段用 Chan_KLC_STATE。
# (UP, BI) 向上笔延伸;(DOWN, BI) 向下笔延伸;(UP, UP) 向上笔顶分型构造;(DOWN, DOWN) 向下笔底分型构造
def bi_theorem_state(direction: Chan_BI_DIR, phase: Literal[0, 1]) -> tuple[Chan_BI_DIR, int]:
"""(direction, phase) -> (Chan_BI_DIR, Chan_KLC_STATE)。phase 0=分型构造中,1=笔延伸中。"""
if phase == 1:
return (direction, Chan_KLC_STATE.BI)
return (direction, Chan_KLC_STATE.UP if direction == Chan_BI_DIR.UP else Chan_KLC_STATE.DOWN)
# 笔定理状态转移:当前 (Chan_BI_DIR, Chan_KLC_STATE) 允许的下一状态列表
# (UP,BI) 只能 -> (UP,UP)(DOWN,BI) 只能 -> (DOWN,DOWN)(UP,UP) 可 -> (UP,BI)|(DOWN,BI)(DOWN,DOWN) 可 -> (DOWN,BI)|(UP,BI)
Chan_BI_STATE_TRANSITIONS: dict[tuple[Chan_BI_DIR, int], list[tuple[Chan_BI_DIR, int]]] = {
(Chan_BI_DIR.UP, Chan_KLC_STATE.BI): [(Chan_BI_DIR.UP, Chan_KLC_STATE.UP)],
(Chan_BI_DIR.DOWN, Chan_KLC_STATE.BI): [(Chan_BI_DIR.DOWN, Chan_KLC_STATE.DOWN)],
(Chan_BI_DIR.UP, Chan_KLC_STATE.UP): [(Chan_BI_DIR.UP, Chan_KLC_STATE.BI), (Chan_BI_DIR.DOWN, Chan_KLC_STATE.BI)],
(Chan_BI_DIR.DOWN, Chan_KLC_STATE.DOWN): [(Chan_BI_DIR.DOWN, Chan_KLC_STATE.BI), (Chan_BI_DIR.UP, Chan_KLC_STATE.BI)],
}
Chan_TRADE_INFO_LST = [Chan_DATA_FIELD.FIELD_VOLUME, Chan_DATA_FIELD.FIELD_TURNOVER, Chan_DATA_FIELD.FIELD_TURNRATE]