Files

80 lines
4.4 KiB
Python

# -*- coding: utf-8 -*-
"""策略域监控注册表 — v1.3 十一检(数据面 monitor_registry 的策略镜像).
初值阈值跑两周后校准(数据轨同款纪律)。
闸门字段:
trading_day=True → 交易日闸门: 日历=确认集(dbbardata 000300 实证)∪近 15 日
工作日假定集(剔 EXCHANGE_HOLIDAYS 休市表日, 表缺年不剔);
今日不在并集=周末/连休, 检查整体不评(不误开也不消解);
在并集但不在确认集=未确认工作日, 红级违例降黄
(节假日/日历源滞后三态容忍, data_monitor 同款)。
(weekday 键已随 logs_stale 迁 trading_day 退役——10-05)
shifts: morn 08:05 盘前 / eve 21:30 盘后 / noon 午间按需(不注册 schtask)。
"""
REGISTRY = [
{"key": "strategy.engines_expected", "fn": "engines_expected",
"shifts": ("morn", "noon"), "severity": "red", "trading_day": False,
"expected": 3, "enabled": True,
"title": "运行引擎数≠期望(paper_accounts running; 10-01 _ex四实例退役后=58/59/63)"},
{"key": "strategy.engines_actual", "fn": "engines_actual",
"shifts": ("morn", "noon"), "severity": "red", "trading_day": False,
"enabled": True,
"title": "wmic 实存 shadow 进程数≠DB running 数"},
{"key": "strategy.engines_no_restart", "fn": "engines_no_restart",
"shifts": ("morn", "noon"), "severity": "red", "trading_day": False,
"lookback_confirmed": 3, "enabled": True,
"title": "引擎会话日盘窗重生(§11.0,近3确认交易日 09:15-15:30)"},
{"key": "strategy.logs_error_storm", "fn": "logs_error_storm",
"shifts": ("morn", "noon"), "severity": "yellow", "trading_day": False,
"window_hours": 26, "max_errors": 20, "enabled": True,
"title": "引擎日志(live+shadow)26h 窗 ERROR/Traceback 超带"},
{"key": "strategy.logs_stale", "fn": "logs_stale",
"shifts": ("morn",), "severity": "yellow", "trading_day": True,
"max_age_days": 4, "enabled": True,
"title": "引擎日志(live+shadow)停滞(>4 天无新写)"},
{"key": "strategy.is_report_ran", "fn": "is_report_ran",
"shifts": ("eve",), "severity": "yellow", "trading_day": True,
"enabled": True,
"title": "偏差日报当日行缺失(20:45 后未跑)"},
{"key": "strategy.is_identity_resid", "fn": "is_identity_resid",
"shifts": ("eve",), "severity": "red", "trading_day": True,
"tol": 1e-4, "enabled": True,
"title": "恒等式残差超容差"},
{"key": "strategy.orders_leftover", "fn": "orders_leftover",
"shifts": ("eve",), "severity": "red", "trading_day": True,
"enabled": True,
"title": "订单链在途残留(open/ack/partial)"},
{"key": "strategy.fills_vs_paper", "fn": "fills_vs_paper",
"shifts": ("eve",), "severity": "red", "trading_day": True,
"amount_tol": 0.01, "enabled": True,
"title": "双轨配对当日成交对账不平(live↔shadow 逐对)"},
{"key": "strategy.weekly_ran", "fn": "weekly_ran",
"shifts": ("eve",), "severity": "yellow", "trading_day": True,
"enabled": True,
"title": "本周周报行缺失"},
{"key": "strategy.data_monitor_alive", "fn": "data_monitor_alive",
"shifts": ("morn", "eve"), "severity": "red", "trading_day": False,
"max_age_hours": 26, "enabled": True,
"title": "data-monitor健康文件停滞(>26h两班全死,互为外盯)"},
]
# 假定集剔除用(10-03 假黄根治, b24f905 data 侧同治)。2026 表=VPS dbbardata
# 000300 实证(至 1002)+交易所 2026-09-17 中秋国庆公告(1001~1007 休,
# **10-08[周四]复市**——勿沿用 10-09 旧误记)。与 data 域
# scripts/data_platform/monitor_registry.EXCHANGE_HOLIDAYS 逐字同步
# (tests/portfolio/test_strategy_monitor.py 强制两表相等, 单边改 CI 即红);
# data 侧年更闸强制其表含当年, 经同步测传导到我表。表缺年=不扣假定集
# (黄照旧绝不静默转绿)。错登真交易日会掩盖真缺失——只登实证/官方公告日,
# 勿凭记忆添。
EXCHANGE_HOLIDAYS = {
2026: {
"20260101", "20260102", # 元旦
"20260216", "20260217", "20260218", "20260219", "20260220", "20260223", # 春节
"20260406", # 清明
"20260501", "20260504", "20260505", # 劳动节
"20260619", # 端午
"20260925", # 中秋
"20261001", "20261002", "20261005", "20261006", "20261007", # 国庆(1008 复市)
},
}