添加波浪理论和klc状态识别

This commit is contained in:
jackyu66git
2026-03-31 01:07:18 +08:00
parent 89269198a0
commit b6b6cb94c0
6 changed files with 1033 additions and 31 deletions
+5 -25
View File
@@ -357,28 +357,8 @@ class Chan_DATA_FIELD:
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]
S10 = "(1, 0)" # 分型构造中 (1,0)
S_10 = "(-1, 0)" # 底分型构造中 (-1,0)
S11 = "(1,1)" # 向上笔延续中
S_11 = "(-1,1)" # 向下笔延续中
UNKNOWN = "Unknown" # 初始状态