第十八章:清算与结算风控
清算与结算,说白了就是做市商赚的钱能不能真正落袋为安。我见过太多团队,策略跑得飞起,最后死在结算环节。交割延迟、资金对不上、账务混乱——这些坑,我一个都没少踩。
今天咱们就聊聊这块。我会把交割风险、资金划转延迟、账务核对、异常交易处理这几个核心问题拆开揉碎,结合我自己的血泪教训,给你一套可落地的风控方案。
18.1 交割风险:别让到嘴的鸭子飞了
交割风险是什么?就是你该收的钱没收到,该交的货没交出去。做市商最怕这个。
我记得有一次,某个交易所的永续合约到了交割时间,系统却卡了十分钟。那十分钟里,我们的对冲仓位还在跑,但交割单一直没确认。嗯,那十分钟的敞口,差点把当月的利润全吐回去。
交割风险主要分三类:
- 对手方违约:对方没钱了,或者货不够了
- 系统故障:交易所或清算所的系统挂了
- 网络延迟:你的指令发出去了,但没到
怎么防?我个人的习惯是:
交割前30分钟:检查所有持仓的保证金是否充足。不够?立刻补。
交割前5分钟:停止所有新开仓操作。只做平仓和撤单。
交割后5分钟:核对交割结果。每笔都要对。
你想想看,如果交割前你还在开新仓,万一系统卡了,新仓和交割单混在一起,账都算不清。所以我建议,交割窗口期就老老实实等着,别折腾。
18.2 资金划转延迟:时间就是金钱
资金划转延迟,说白了就是钱在路上堵车了。做市商每天要划转大量资金,从交易所到钱包,从钱包到银行,每一笔都有时间成本。
我曾经遇到过一个案例:某次大行情前,我们需要把一笔USDT从A交易所转到B交易所。平时只要5分钟,那天却花了2小时。等钱到账,行情已经走完了。那波行情我们少赚了至少30%的利润。
为什么会这样?原因很多:
- 链上拥堵:以太坊网络堵的时候,一笔转账可能要等几小时
- 交易所审核:大额转账需要人工审核,周末更慢
- 银行处理:法币出入金,银行有固定的处理时间
我的应对策略是这样的:
| 资金类型 | 预留时间 | 风控措施 |
|---|---|---|
| 链上USDT(ERC20) | 30分钟 | 提前准备多个地址,分散转账 |
| 交易所内部转账 | 10分钟 | 开通VIP通道,减少审核时间 |
| 法币出入金 | 2小时 | 避开周末和节假日操作 |
我个人习惯在每天收盘前,把第二天需要的资金提前划转到位。别等到要用的时候才转,那时候你只能干着急。
18.3 账务核对:对不上账就是灾难
账务核对,听起来很枯燥,但做市商离了它寸步难行。你每天交易几千笔,每笔都有手续费、滑点、资金费率。如果账对不上,你根本不知道自己是赚是亏。
我刚开始做做市商时,犯过一个低级错误:某天收盘后,我发现账户里的USDT少了5000个。查了半天,原来是一笔挂单成交了,但成交记录被系统漏掉了。从那以后,我每天必做三件事:
- 交易记录核对:把交易所的成交记录和本地数据库逐笔比对
- 资金余额核对:交易所显示的余额和本地计算的余额必须一致
- 手续费核对:每笔手续费都要算清楚,别被多扣了
这里给个代码示例,我常用的核对逻辑:
def check_balance(exchange_balance, local_balance, tolerance=0.001):
"""
核对资金余额
:param exchange_balance: 交易所显示的余额
:param local_balance: 本地计算的余额
:param tolerance: 允许的误差(比如0.1%)
"""
diff = abs(exchange_balance - local_balance)
if diff / local_balance > tolerance:
# 触发告警
send_alert(f"余额差异过大:{diff}")
return False
return True
你想想看,如果每天不核对,等月底发现账对不上,那得花多少时间回溯?我建议至少每天核对一次,最好每4小时核对一次。
18.4 异常交易处理:别慌,先止损
异常交易,比如突然出现一笔大额亏损、或者系统重复下单。这种事,做市商早晚会遇到。
我记得有一次,我们的策略因为一个bug,在1秒内下了50笔重复订单。等我们发现时,已经亏了2万多美金。当时我第一反应不是追责,而是立刻止损。
异常交易的处理流程,我总结为三步:
第一步:立即止损。不管什么原因,先平掉所有异常仓位。别想着等行情回来,那是在赌。
第二步:冻结账户。暂停所有交易,防止损失扩大。
第三步:回溯分析。查日志、查代码、查网络,找到根因。
这里有个关键点:异常交易发生后,千万别急着找原因。先止损,再分析。我见过有人花半小时查bug,结果那半小时里又亏了5万。不值得。
另外,我建议在系统里预设一个「紧急停止」按钮。一旦触发,所有交易立即停止。这个按钮要放在最显眼的位置,让每个交易员都知道怎么用。
18.5 清算结算的核心逻辑
说了这么多,咱们用一张图来总结清算结算的核心逻辑。这张图是我自己画的,每次给团队培训都会用。
这张图展示了清算结算的四个核心环节:交易执行、资金划转、账务核对、异常处理。每个环节都可能出问题,所以需要实时监控和快速响应。
我个人习惯在每个环节都设置告警阈值。比如资金划转超过30分钟没完成,立刻告警。账务核对差异超过0.1%,立刻告警。别等出了问题再查,那时候已经晚了。
18.6 避坑指南
最后,分享几个我踩过的坑,希望能帮你少走弯路。
避坑1:别信「系统自动处理」
我曾经完全依赖交易所的自动交割功能,结果有一次系统升级,交割单没生成。从那以后,我每次交割都手动确认一遍。
避坑2:资金划转要留余量
别把账户里的钱全部转走。留一些作为缓冲,万一链上堵了,你还有钱应急。我一般留10%的余量。
避坑3:账务核对要自动化
手动核对太容易出错了。写个脚本,每天自动跑一遍。我用的就是上面那个check_balance函数,简单但有效。
嗯,清算结算这块,说白了就是细心加耐心。别嫌麻烦,每一步都做到位,你的做市商生意才能长久。
无相订单流研究社 微信Lucian808555