代码管不了托管风险
资产在中心化交易所,平台破产就不在你的策略回测里。控制方式是暴露,不是自信。

降低暴露
- 独立子账户
- 只放策略所需最少资金
- 禁用提现
- 固定 IP,定期人工提回
换成另一组风险
- 私钥在线
- 合约与授权
- Gas、RPC、MEV
- 不天然更安全
策略生成意图,风控才许下单
行情 -> 策略 -> 风控 -> 执行
-> 账本 -> 对账 -> 告警定期查询订单、成交、余额和仓位。本地与交易所不一致时进入 reconciliation,而不是继续用本地幻觉交易。
密钥和订单都按最小权限设计
key独立子账户;只开读取和必要交易;禁止提现、划转、杠杆,除非策略过闸且明确需要。
ip能绑固定 IP 就绑。密钥不进代码、数据库和日志。
cid每个订单唯一 client order id。
timeout超时后先查询,不直接重试下单。
round下单前按 tick/step/min notional 取整并复核。
age行情超过 MAX_DATA_AGE 立即暂停。
硬风控写在执行层,不写在设置页
MAX_TOTAL_CAPITAL平台上最多放多少钱。
MAX_BASE / QUOTE单边库存上限。
MAX_OPEN_ORDERS同时挂单数量。
MAX_ORDER_NOTIONAL单笔名义上限。
DAILY_LOSS / DRAWDOWN亏到这里就停。
PRICE_BOUNDS离开预设区间停止新增。
默认 fail closed
上线顺序只能是:历史回测 → 实时模拟 → 交易所测试环境 → 极小金额人工监督 → 固定观察期后再谈扩大。短期盈利不是升级条件。
完成证据
为假设中的机器人写出硬风控表,并演练一次“超时但可能已成交”的恢复步骤。没有查询步骤的重试流程,算不合格。
课末自测
下单请求超时后,为什么不能立刻用同一参数再发一笔?
信心