第19章:合规与监管风控:监管报告要求、交易记录保存、反洗钱检查、市场操纵检测

做市商这行,技术再牛,策略再赚钱,一旦合规出问题,那就是一票否决。我见过不少团队,辛辛苦苦跑了一年的策略,最后因为监管文件没交齐,直接被罚到破产。说白了,合规风控不是束缚你的枷锁,而是保护你的铠甲。

这一章,我们聊聊做市商必须面对的四个合规硬骨头:监管报告、交易记录、反洗钱、市场操纵检测。嗯,每个都是实打实的红线。

核心观点:合规不是成本,是生存许可证。别等到监管找上门,才想起补课。

合规与监管风控 监管报告要求 交易记录保存 反洗钱检查 市场操纵检测 日报/月报 异常交易报告 订单簿分析 交易量异常 KYC/AML 可疑交易

19.1 监管报告要求:别让数据成为你的催命符

监管报告,说白了就是交易所或监管机构要求你定期上交的「成绩单」。我刚开始做做市商那会儿,觉得这东西就是走形式。直到有一次,因为日报数据少填了一笔大宗交易,被交易所发了警告函。嗯,从那以后我再也不敢马虎了。

常见的监管报告包括:

  • 日报/周报:交易量、持仓量、盈亏情况、最大回撤等基础指标
  • 月报:更详细的策略表现、风险敞口、流动性贡献分析
  • 异常交易报告:触发风控阈值时的即时报告(比如单笔亏损超过5%)
  • 年度合规报告:全年交易行为总结、系统审计结果、合规自评

我的习惯:所有报告模板提前做好自动化脚本。每天收盘后自动生成日报,人工复核只需5分钟。别等到月底再手动整理,那会累死你。

你想想看,监管机构要的不是你的策略细节,而是你的风险暴露和合规状态。所以报告里重点突出这几个维度:

  1. 资金安全:保证金率、杠杆倍数、资金使用率
  2. 市场风险:VaR、最大回撤、敞口集中度
  3. 操作风险:系统故障次数、订单延迟率、错误交易笔数
  4. 合规状态:是否有违规记录、是否完成KYC/AML检查

19.2 交易记录保存:每一笔订单都是呈堂证供

交易记录保存,这个我吃过亏。曾经有个项目,因为服务器硬盘坏了,丢了3天的交易日志。结果那3天刚好有客户投诉说我们操纵价格。没有日志,我们百口莫辩。最后赔了客户一笔钱才了事。

监管要求通常包括:

  • 保存期限:一般要求5-7年(不同地区不同,香港要求7年,新加坡要求5年)
  • 保存内容:订单时间戳(精确到毫秒)、订单类型、价格、数量、成交记录、修改/撤销记录
  • 保存格式:不可篡改的格式(比如WORM存储,Write Once Read Many)
  • 可检索性:监管随时可能要求你提供某一天的某笔订单详情

注意:时间戳必须使用UTC时间,并且与交易所的时间源同步。我曾经见过一个团队,因为服务器时间慢了2秒,导致所有订单记录与交易所对不上,被认定为数据造假。这可不是小事。

我个人建议的存储架构是这样的:

# 交易记录存储示例(伪代码)
class TradeLogger:
    def __init__(self):
        self.storage = WORMStorage()  # 不可篡改存储
        self.time_sync = NTPClient()  # 时间同步
        
    def log_order(self, order):
        # 记录原始数据
        raw_data = {
            'timestamp': self.time_sync.get_utc_ms(),
            'order_id': order.id,
            'symbol': order.symbol,
            'side': order.side,
            'price': order.price,
            'quantity': order.quantity,
            'type': order.type,
            'status': order.status
        }
        # 写入不可篡改存储
        self.storage.write(raw_data)
        # 同时写入热存储用于快速检索
        self.hot_cache.set(order.id, raw_data, ttl=30*24*3600)
        
    def query_order(self, order_id, date_range):
        # 优先查热存储
        result = self.hot_cache.get(order_id)
        if result:
            return result
        # 查冷存储
        return self.storage.read(order_id, date_range)

19.3 反洗钱检查:别让做市商变成洗钱通道

反洗钱(AML)这块,很多做市商容易忽视。你想想看,你的做市账户每天进进出出几千万,如果被坏人利用来洗钱,那你就成了帮凶。监管对这块查得特别严。

核心要求包括:

  • KYC(了解你的客户):如果是自营做市,相对简单。但如果你帮客户做市,必须完成完整的KYC流程
  • 交易监控:自动检测异常交易模式,比如频繁的小额交易(结构化交易)、大额资金快进快出
  • 可疑交易报告:发现可疑行为后,必须在规定时间内向监管报告(通常24-48小时)
  • 客户风险评级:根据客户背景、交易行为、资金来源等划分风险等级

避坑指南:我曾经遇到过一个客户,每天做市交易量很大,但资金来源不明。我们当时没太在意,结果后来被查出是洗钱团伙。从那以后,我坚持所有客户必须提供资金来源证明,哪怕少赚点钱,也不能冒这个险。

反洗钱检测的常见规则:

检测规则 描述 阈值示例
结构化交易 频繁小额交易,规避大额报告门槛 单笔<1万,但日累计>10万
快进快出 资金入账后短时间内转出 入账后1小时内转出>80%
异常对倒 同一账户或关联账户之间频繁交易 日对倒量>总交易量30%
地理异常 来自高风险地区的交易 IP来自FATF黑名单国家

19.4 市场操纵检测:别搬起石头砸自己的脚

市场操纵检测,这是做市商合规里最敏感的一块。做市商本身就是在提供流动性,但一不小心就可能越界变成操纵市场。我见过不少做市商,因为策略参数设置不当,被认定为「虚假订单」或「幌骗交易」。

常见的市场操纵行为包括:

  • 幌骗交易(Spoofing):挂大单但不成交,诱导其他交易者跟单,然后撤单反向操作
  • 对倒交易(Wash Trading):自己买自己卖,制造虚假交易量
  • 分层挂单(Layering):在多个价位挂单,制造虚假深度
  • 动量点火(Momentum Ignition):通过大单推动价格,然后反向平仓

注意:做市商的「合法做市」和「市场操纵」之间只有一线之隔。比如,你挂单后频繁撤单,撤单率超过一定比例,就可能被认定为幌骗。我个人建议,做市策略的撤单率控制在20%以内,超过这个数就要小心了。

如何检测自己的策略是否越界?我建议建立内部监控系统:

# 市场操纵检测示例(伪代码)
class ManipulationDetector:
    def __init__(self):
        self.cancel_rate_threshold = 0.2  # 撤单率阈值
        self.wash_trade_window = 60  # 对倒检测时间窗口(秒)
        
    def check_spoofing(self, orders):
        # 检测撤单率
        total_orders = len(orders)
        cancelled = sum(1 for o in orders if o.status == 'cancelled')
        cancel_rate = cancelled / total_orders if total_orders > 0 else 0
        
        if cancel_rate > self.cancel_rate_threshold:
            self.alert('撤单率过高,可能涉及幌骗交易')
            
    def check_wash_trading(self, trades):
        # 检测对倒交易
        for trade in trades:
            # 检查买卖双方是否关联
            if trade.buyer_id == trade.seller_id:
                self.alert('发现对倒交易:同一账户买卖')
            # 检查时间窗口内的反向交易
            if self.is_reverse_trade(trade, self.wash_trade_window):
                self.alert('发现可疑对倒:短时间内反向交易')
                
    def check_layering(self, order_book):
        # 检测分层挂单
        layers = order_book.get_layers()
        for layer in layers:
            if layer.quantity > 100 and layer.lifetime < 5:
                self.alert('发现分层挂单:大单快速撤单')

我的建议:每个季度做一次策略合规审计。把策略跑在历史数据上,看看有没有触发任何操纵检测规则。如果有,赶紧调整参数。别等到监管来查你,那时候就晚了。

最后说一句,合规不是一朝一夕的事。它需要你从系统设计的第一天就开始考虑。我见过太多团队,先跑策略赚钱,等被罚了才想起来补合规。结果呢?赚的钱全交了罚款,还搭上了声誉。

嗯,这一章就到这里。记住,合规风控不是你的敌人,而是你的护身符。


无相订单流研究社 微信Lucian808555