启动与运行时入口
负责配置加载、数据库初始化、进程模式、日志与守护流程,不承担策略判断本身。
面向 vn.py / CTP 期权账户的风险监控与执行中枢,把 retrace、STM、监控和部署约束收束成一个真实可运行的工程系统。
页面、工作流、状态持久化和部署入口都服务于同一件事:把一个正在运行的期权账户风险控制系统解释清楚。
如果策略逻辑、执行状态、监控面板和部署入口互相脱节,那么任何一个“看起来能跑”的页面都不足以证明这是真正可交付的系统。
这个仓库把账户真实持仓、触发条件、执行工作流、Web 监控、Docker 项目检查和部署验证连成一条可追溯路径,重点不是“信号漂亮”,而是“边界不失真”。
围绕真实账户持仓运转,不能把本地推断结果当成事实来源。
不是普通的 K 线策略宣传页,也不是只展示指标卡的 SaaS 仪表盘。
同一项目里同时收敛风控逻辑、执行链路、监控可视化和部署治理。
更能体现系统边界意识、异常处理思路和工程判断,而不是单点编码速度。
这页不是讲“模块很多”,而是讲每一层为什么存在,以及为什么不能混在一起。
负责配置加载、数据库初始化、进程模式、日志与守护流程,不承担策略判断本身。
处理 `retrace`、`STM`、净义务、订单推进、暂停保护等核心业务规则,把业务事实建模成明确的工作流。
Flask 页面读取数据库与快照,不直接承载策略逻辑;它的职责是把系统正在发生什么解释给操作者看。
主分支之外的部署镜像保证“合并到 main”与“真正可部署”是两件被分别验证的事情,避免功能分支即交付的错觉。
这页刻意用状态与步骤表达,而不是放一大段业务术语,目的是让面试官能在一分钟内判断我是否真的理解系统流向。
不依赖“本地估算剩余量”做最终判断,所有 workflow 都围绕真实账户状态推进。
`trigger_arm_ratio` 先建立隔离带,避免还没形成有效回撤时就进入平仓流程。
`retrace` 负责回撤平仓,`STM` 处理净义务与价格簇;两者协作但不混写成一团。
`QUEUE → TAKER`、撤单重挂、双活保护、缺盘口暂停,都是显式状态,不是隐藏副作用。
完成条件、价格回落退出、残留活动单处理都被纳入 workflow,不留“靠经验看”的灰区。
价格先进入隔离带,再按 `lowest_price → trigger_price` 关系判断是否启动回撤平仓。
从未 retrace 触发过的 symbol 可以走直接上升触发路径,防止单边风险被遗漏。
按 `base_bid_1`、价格簇和 MAD 护栏选择可执行候选,而不是把所有腿一股脑打出去。
因为这份展示页不放真实截图,我用纯 HTML/CSS 把监控页最关键的语义重构出来:组合、状态、事件、Docker 项目摘要。
面试里真正能区分水平的,通常不是某个 API 会不会写,而是能不能在系统边界最容易失真的地方做出稳定的判断。
订单回报和成交回报只用于推进状态,不把“本地剩余量推断”当成事实,降低状态漂移带来的错误决策。
Docker 部署统一走 `deploy/deploy-main.ps1`,避免“在哪个目录执行 compose 都行”这种会制造偶发事故的习惯。
把实现、验证、merge、cleanup 收束到独立 worktree,避免在主工作区上边做边试,留下不可信的交付状态。
上层直接调用具体服务/基础设施,让复杂度暴露在正确的位置,而不是用 coordinator 名字把问题藏起来。
这个仓库对测试、merge、deploy 和 cleanup 都有强约束,这种“让流程替我防错”的倾向,本身就是工程成熟度的一部分。
| 层 | 验证对象 | 意图 |
|---|---|---|
| Workflow | `retrace` / `STM` / state workflow | 确认触发语义、执行推进、暂停与退出条件 |
| Persistence | 快照 roundtrip、state repository | 防止运行时重启后状态不可恢复 |
| Web | monitor、docs、docker page tests | 证明读取层能正确解释后端数据与页面结构 |
| Deploy | Dockerfile、compose、deploy script | 把“可部署”从口头描述变成脚本化检查 |
撤单重挂后旧单仍活跃就暂停,宁可显式告警,也不接受静默超量平仓。
关键盘口字段连续缺失达到阈值就暂停 workflow,避免在数据残缺时继续下单。
当 Docker daemon 暂不可达时保留最后成功快照,而不是把页面清空成误导性“全正常”。
这页已经接入当前作品集站点,同时保留独立 deck 的叙事节奏,方便在站内外都作为完整项目案例阅读。
它展示的不只是量化风控领域理解,也包括:如何给工作流定边界,如何把监控做成解释界面,如何让 merge / deploy / cleanup 变成工程流程的一部分。