处理问题

This commit is contained in:
zlt 2026-08-03 10:54:30 +08:00
parent 32f18a5461
commit 5fc6f989db
1 changed files with 20 additions and 3 deletions

View File

@ -152,12 +152,23 @@ print(" ▸ tick: 检查 %s · 出手 %s · 等待 %s · 拒绝 %s%s" % (d.get(
len(d.get("fired") or []), len(d.get("waited") or []), len(d.get("rejected") or []),\
(" ⚠ 错误 " + json.dumps(e, ensure_ascii=False)) if e else ""))'
loop: ## 手动联测循环: 每 N 秒跑一跳择时再刷监视 (beat 停着时用; Ctrl-C 退出)
@echo "$(or $(N),20) 秒跑一跳并刷新。Ctrl-C 退出。"
# **出手 + 入账两跳都要跑**: exec-tick 只发单, 成交要 replay 那一跳才认领进账本。
# 第一版只跑了 exec-tick —— 那样一旦成交, 单子成了而账本一直空, 看着像成交没回来。
REPSUM := python3 -c 'import sys,json;\
d=(json.loads(sys.stdin.read()) or {}).get("data") or {};\
w=d.get("ws") or {}; e=(d.get("errors") or []);\
print(" ▸ 入账: ws 成交 %s → 记账动作 %s · 外部成交 %s%s%s" % (w.get("trades",0),\
w.get("actions",0), d.get("fills",0),\
(" 挂起 " + str(len(w.get("held") or []))) if w.get("held") else "",\
(" ⚠ 错误 " + json.dumps(e, ensure_ascii=False)) if e else ""))'
loop: ## 手动联测循环: 每 N 秒跑「出手一跳 + 入账一跳」再刷监视 (beat 停着时用)
@echo "$(or $(N),20) 秒: 出手一跳 + 入账一跳 → 刷新监视。Ctrl-C 退出。"
@while true; do \
sum=$$(curl -s -X POST '$(A)/api/ops/exec-tick' | $(TICKSUM)); \
rep=$$(curl -s -X POST '$(A)/api/ops/replay' | $(REPSUM)); \
$(MAKE) --no-print-directory watch; \
echo "$$sum"; \
echo "$$sum"; echo "$$rep"; \
sleep $(or $(N),20); \
done
@ -198,6 +209,12 @@ t-dry: ## A6 择时试算 (实现B, 不经决策系统; dry_run 只算不发
t-tick: ## A7 真出手 (shadow 下 = 置 DISPATCHED 但不写下游, 你照着在 QMT 手工下)
@curl -s -X POST '$(A)/api/ops/exec-tick' | $(J)
# **出手和入账是两条独立的路**, exec-tick 只管发单不管收账。成交回来落在 pms_qmt_inbox,
# 要 replay 这一跳才会认领进批次、算摊薄成本与安全垫。beat 停着时忘了跑它, 表现是
# 「待入账」一直涨而账本持仓一直空 —— 看着像成交没回来, 其实是没人去收。
t-replay: ## A7.5 成交入账 (ws 逐笔 + trading_order 增量 + 盘中轻对账)
@curl -s -X POST '$(A)/api/ops/replay' | $(J)
t-ins: ## A8 看指令与子单状态
@curl -s '$(A)/api/instructions?limit=50' | $(J)