资金异动方向翻成中文:时间线五路混排,方向要同一套说法

This commit is contained in:
zlt 2026-09-09 14:58:01 +08:00
parent 7e46d49cfc
commit 3c43f7814f
3 changed files with 11 additions and 3 deletions

View File

@ -397,7 +397,7 @@ def _row(src, src_label, ms, **kw) -> dict:
"ymd": _ymd_of(ms), "cat": None, "cat_label": None, "direction": None,
"level": None, "value": None, "price": None, "target": None, "confidence": None,
"entry_score": None, "z_dd": None, "window_net": None, "window_ret": None,
"action": None, "dominant_signal": None, "reason": None, "stale": False,
"action": None, "dominant_signal": None, "reason": None, "stale": False, "flow": None,
"age_min": None, "dup": 1, "ts_from": "trigger"}
base.update(kw)
return base
@ -518,8 +518,10 @@ def _bycode_metrics(c, code, cap):
if not _same_code(cd or payload.get("ts_code"), code):
continue
g = lambda k, dv=None: payload.get(k, f.get(k, dv))
_d = str(g("direction") or "").lower()
rows.append(_row("metrics", "盘中资金异动", _id_ms(sid), cat="fund_flow", cat_label="资金异动",
direction=g("direction"), level=g("level"),
direction={"inflow": "看涨", "outflow": "看跌"}.get(_d, g("direction")),
flow=_d or None, level=g("level"),
value=_num(g("value") if g("value") is not None else g("net")),
z_dd=_num(g("z_dd")), window_net=_num(g("window_net")),
window_ret=_num(g("window_ret")), ts_from="stream_id"))

View File

@ -1949,7 +1949,7 @@ body.dock-r:not(.r-fold) .side-r .strip{display:none;}
<div class="h">当前快照 · 这两路上游只给当前值,不带时间</div>
<div class="cs-row" v-for="(r,i) in ((csData&&csData.snapshot&&csData.snapshot.metrics)||[])" :key="'m'+i">
<span class="s">资金异动</span>
<span v-if="flowText(r.direction)!=='—'" :class="dirCls(r.direction)">{{ flowText(r.direction) }}</span>
<span v-if="r.direction && r.direction!=='—'" :class="dirCls(r.direction)">{{ r.direction }}</span>
<span class="mono" v-if="r.window_net!=null" :class="(r.window_net||0)>=0?'clr-up':'clr-down'">{{ moneyCn(r.window_net) }}</span>
<span class="muted" v-if="r.z_dd!=null">偏离 <span class="mono">{{ r.z_dd }}</span></span>
</div>

View File

@ -157,6 +157,12 @@ def test_parse_sources():
mrows, _n, _t = us._bycode_metrics(_FakeRedis({"mtf:intraday:stream:metrics": met}), "601126.SH", 5000)
assert len(mrows) == 1 and mrows[0]["time"] == "13:41" and mrows[0]["z_dd"] == 2.4
assert mrows[0]["ts_from"] == "stream_id", "时间取自流 id 是写入时刻, 必须标出来"
assert mrows[0]["direction"] == "看涨" and mrows[0]["flow"] == "up", mrows[0]
# 时间线是五路混着排的, 方向必须同一套说法, 且不许把英文枚举直接印给人看
m2 = us._bycode_metrics(_FakeRedis({"mtf:intraday:stream:metrics": [
("%d-0" % _today_ms(9, 50), {"data": '{"ts_code": "601126.SH", "direction": "outflow"}'})]}),
"601126.SH", 5000)[0]
assert m2[0]["direction"] == "看跌" and m2[0]["flow"] == "outflow", m2[0]
@case("去重: 同源同分钟同值合并并计数; 跨源永不合并")