第21章 市场操纵与价格发现:幌骗、分层、虚假订单与监管检测

说到价格发现,有个绕不开的话题——市场操纵。

我做了这么多年量化,见过太多人试图钻空子。说白了,他们就是想用虚假信息干扰价格,然后自己获利。今天咱们聊聊最常见的三种手法:幌骗、分层、虚假订单。

21.1 幌骗(Spoofing)——虚晃一枪

幌骗,英文叫Spoofing。什么意思呢?

就是挂一个大单在买一或卖一的位置,看起来像是要大量买入或卖出。但实际上,这个单子根本没打算成交。目的就是吓唬其他交易者,让他们以为市场方向要变了。

核心逻辑: 挂单 → 诱导他人跟单 → 撤单 → 反向成交

举个例子。我在2015年做过一个美股策略,当时就遇到过这种情况。某只股票盘口突然出现一个5000手的卖单,价格比当前卖一低了两分钱。很多散户一看,以为要大跌,纷纷跟着卖。结果呢?那个大单在成交前0.1秒撤掉了。价格反而被砸下去,庄家在低位接货。

嗯,这就是典型的幌骗。

21.2 分层(Layering)——层层设局

分层比幌骗更复杂一些。它不是挂一个单,而是挂多个单,形成多层价格阶梯。

你想想看,如果只在某个价位挂一个大单,太明显了。监管一看就知道有问题。但如果你在多个价位都挂单,看起来就像正常的流动性提供者。

我见过一个案例:某交易员在买一到买五分别挂了100手、200手、300手、400手、500手。看起来像是逐步建仓。但实际上,这些单子都是假的,目的就是制造买盘旺盛的假象,把价格推上去。

层级 价格 挂单量 真实意图
买一 10.00 100手 诱导
买二 9.99 200手 诱导
买三 9.98 300手 诱导
买四 9.97 400手 诱导
买五 9.96 500手 诱导

等价格真的被推上去,这些单子会全部撤掉,然后在高位卖出。

注意: 分层和幌骗的区别在于,分层是多层虚假订单,幌骗是单层或少量虚假订单。两者都是违法行为。

21.3 虚假订单(Phantom Orders)——幽灵单

虚假订单,说白了就是那些永远不会成交的单子。

有些交易者会挂一个超大单,比如10000手,但价格设得很离谱。比如当前价格是10块,他挂个9块的买单。这种单子永远不会成交,但会出现在盘口数据里,影响其他交易者的判断。

我记得有一次做回测,发现某个股票在收盘前5分钟,盘口突然出现一个巨大的买单。很多算法交易看到这个信号,以为有大资金进场,纷纷跟买。结果收盘后一看,那个单子根本没成交,就是用来骗人的。

21.4 监管与检测——怎么抓这些坏蛋?

监管机构也不是吃素的。这些年,CFTC(美国商品期货交易委员会)和SEC(美国证券交易委员会)抓了不少人。

检测方法主要有以下几种:

  • 订单撤销率分析: 如果一个账户的撤单率超过95%,基本可以判定有问题。正常交易者的撤单率一般在30%-50%之间。
  • 时间戳分析: 虚假订单通常会在成交前极短时间撤单。比如挂单后0.1秒就撤,这明显不正常。
  • 价格关联分析: 如果某个账户的挂单总是出现在关键价位附近,而且频繁撤单,那就要小心了。
  • 网络拓扑分析: 有些操纵者会用多个账户协同操作。监管会分析这些账户之间的网络关系。

避坑指南: 我曾经帮一个客户做合规系统,发现他的策略撤单率高达70%。虽然他不是故意的,但监管可不管这些。后来我们优化了算法,把撤单率降到了40%以下。所以,做量化一定要关注撤单率这个指标。

21.5 如何用代码检测异常订单?

下面我给一个简单的Python示例,用来检测幌骗行为。

import pandas as pd
import numpy as np

def detect_spoofing(order_book, threshold=0.95):
    """
    检测幌骗行为
    :param order_book: DataFrame,包含订单数据
    :param threshold: 撤单率阈值
    :return: 可疑订单列表
    """
    suspicious = []
    
    for account_id, group in order_book.groupby('account_id'):
        total_orders = len(group)
        cancelled_orders = len(group[group['status'] == 'cancelled'])
        cancel_rate = cancelled_orders / total_orders
        
        if cancel_rate > threshold:
            suspicious.append({
                'account_id': account_id,
                'cancel_rate': cancel_rate,
                'total_orders': total_orders
            })
    
    return suspicious

# 示例数据
data = {
    'account_id': ['A001', 'A001', 'A001', 'A002', 'A002'],
    'price': [10.00, 10.01, 10.02, 10.00, 10.01],
    'quantity': [1000, 2000, 1500, 100, 200],
    'status': ['cancelled', 'cancelled', 'cancelled', 'filled', 'cancelled']
}

df = pd.DataFrame(data)
result = detect_spoofing(df)
print(result)

这个代码很简单,就是算每个账户的撤单率。如果超过95%,就标记为可疑。

当然,实际生产中要复杂得多。你还要考虑时间窗口、价格变动、订单大小等因素。

21.6 知识体系图

下面我用一张SVG图来总结本章的核心内容。

市场操纵与价格发现 幌骗 (Spoofing) 分层 (Layering) 虚假订单 共同特征:虚假信息 → 诱导他人 → 反向获利 监管检测方法 • 订单撤销率分析(撤单率 > 95% 可疑) • 时间戳分析(挂单后极短时间撤单) • 价格关联分析(关键价位频繁撤单) • 网络拓扑分析(多账户协同操作) 结论:操纵行为破坏价格发现,必须严查

21.7 我的几点建议

做量化交易,合规是第一位的。我见过太多人因为一时贪心,最后被罚得倾家荡产。

几点建议送给你:

  1. 不要碰红线: 幌骗、分层这些行为,一旦被抓,轻则罚款,重则坐牢。2015年,英国交易员Navinder Sarao就因为幌骗被判了7年。
  2. 做好合规检查: 你的策略上线前,一定要做合规测试。看看撤单率、订单停留时间这些指标是否正常。
  3. 关注监管动态: 各国的监管规则在变。比如美国2010年通过了《多德-弗兰克法案》,明确把幌骗列为违法行为。
  4. 用技术保护自己: 我建议在交易系统中加入实时监控模块,一旦发现异常行为,自动报警或暂停交易。

记住: 价格发现的本质是真实供需的博弈。任何试图用虚假信息干扰价格的行为,最终都会被市场惩罚。

好了,这一章就到这里。希望你能理解市场操纵的危害,也能学会如何保护自己。

无相订单流研究社 微信Lucian808555