4、信息驱动型策略:订单流不平衡、知情交易者识别、逆向选择成本、信号提取
好,咱们进入第四讲。
前面几章我们聊了流动性博弈的底层逻辑,说白了就是怎么跟市场里的对手盘周旋。但这一章,我们要聊点更“玄”的东西——信息。
你想想看,市场为什么会有波动?本质上就是信息在驱动。有人知道得比你多,有人知道得比你早,这些人就是“知情交易者”。而我们这些做策略的,说白了就是要在信息不对称的夹缝里找饭吃。
我个人习惯把信息驱动型策略分成四个核心模块:订单流不平衡、知情交易者识别、逆向选择成本、信号提取。这四个东西是环环相扣的,咱们一个一个拆。
4.1 订单流不平衡:市场的“呼吸”
什么叫订单流不平衡?很简单,就是买单和卖单的力量不匹配。
我举个例子。假设某只股票,当前时刻主动买入的单子有1000手,主动卖出的单子只有200手。那这800手的净买入,就是订单流不平衡。说白了,就是有人在抢着买,有人在犹豫着卖。
为什么会这样?大概率是有人知道了什么好消息,急着进场。或者,是有人知道了坏消息,急着离场。
我在项目中遇到过一种情况:某只股票盘口上挂满了大单,看着像是有主力在护盘。但如果你去算订单流不平衡,会发现主动卖出的单子其实一直在偷偷增加。嗯,这就是典型的“明修栈道,暗度陈仓”。
核心公式:
订单流不平衡 = (主动买入量 - 主动卖出量) / (主动买入量 + 主动卖出量)
取值范围:[-1, 1]。正值表示买方主导,负值表示卖方主导。
这里要注意,订单流不平衡不能只看绝对值。我曾经吃过亏,以为0.8的不平衡值就一定是强信号。后来发现,在流动性极差的股票上,0.8可能只是几笔小单造成的假象。所以,一定要结合成交量来看。
4.2 知情交易者识别:谁在“偷跑”?
识别知情交易者,是信息驱动策略的核心中的核心。
你想想看,如果市场上所有人都知道同一个消息,那这个消息就没有价值了。真正有价值的信息,是那些只有少数人知道、并且正在悄悄利用的信息。
那怎么识别这些人呢?我个人习惯从三个维度入手:
- 交易规模:知情交易者通常不会小打小闹。他们一出手就是大单,或者是一连串的中等单子。我见过一个经典的案例:某只股票在财报公布前三天,突然出现了一连串的500手买单,每次间隔5分钟,持续了整整一个下午。事后证明,那家公司确实有重大利好。
- 交易时机:知情交易者往往会在市场最不活跃的时候动手。比如开盘前15分钟、午休前后、收盘前半小时。为什么?因为这些时间段流动性差,他们的订单不容易被察觉。
- 订单行为模式:知情交易者通常不会用市价单直接扫货。他们更喜欢用限价单,一点一点地吃。我曾经监控过一个账户,它每次下单都是“挂单-撤单-再挂单”的循环,持续了整整一周。后来发现,那是一个内幕交易团伙。
避坑指南:
我曾经把“大单”和“知情交易”直接划等号,结果亏了不少。后来才明白,有些大单只是机构在做调仓,跟内幕消息半毛钱关系没有。识别知情交易者,一定要结合多个维度,不能只看单一指标。
4.3 逆向选择成本:你是在“喂鱼”还是在“钓鱼”?
逆向选择成本,这个词听起来很学术,说白了就是:你跟知情交易者做对手盘,你亏了多少钱。
你想想看,如果你挂了一个买单,结果被一个知情交易者吃掉了。他为什么卖给你?因为他知道这只股票马上要跌。你接了他的货,就是接了烫手山芋。这个“烫手山芋”的成本,就是逆向选择成本。
我习惯用这个公式来估算:
逆向选择成本 = (成交价格 - 事后真实价格) × 成交量
当然,“事后真实价格”是个理想值。在实际操作中,我会用未来N个tick的加权平均价格来代替。N的取值取决于你的交易频率。高频交易的话,N取10-20个tick就够了;如果是日内交易,N可以取到100-200个tick。
注意:
逆向选择成本不是固定的。它跟市场状态、股票流动性、甚至时间段都有关系。我建议你每天收盘后都算一遍,看看自己今天被“割”了多少。如果某个股票的逆向选择成本持续偏高,那就要考虑是不是该放弃这个标的了。
4.4 信号提取:从噪音中“淘金”
最后一步,也是最难的一步:信号提取。
你想想看,市场里每分钟都有成千上万笔订单。这些订单里,99%都是噪音,只有1%是真正的信号。怎么把这1%找出来?
我个人习惯用两种方法:
- 统计方法:比如用Z-score来检测异常值。假设某只股票过去100笔订单的平均规模是100手,标准差是20手。突然来了一笔500手的订单,那它的Z-score就是(500-100)/20=20。这个值远大于3,说明这笔订单极有可能是知情交易者所为。
- 机器学习方法:我最近在尝试用LSTM来提取信号。把订单流数据、盘口数据、成交量数据都喂进去,让模型自己学习哪些特征组合能预测价格变动。效果还不错,但要注意过拟合。我踩过这个坑,模型在回测里表现完美,一上实盘就崩了。
一个简单的信号提取示例:
# 伪代码,仅示意逻辑
def extract_signal(order_book):
# 计算订单流不平衡
imbalance = (order_book.buy_volume - order_book.sell_volume) / (order_book.buy_volume + order_book.sell_volume)
# 检测异常大单
large_trade = order_book.trade_size > 3 * order_book.avg_trade_size
# 综合判断
if imbalance > 0.6 and large_trade:
return "strong_buy_signal"
elif imbalance < -0.6 and large_trade:
return "strong_sell_signal"
else:
return "no_signal"
嗯,这里要注意,信号提取不是一劳永逸的。市场在变,信号的特征也在变。我建议你每周都重新训练一次模型,或者至少调整一下参数。否则,你提取出来的信号会越来越弱,直到完全失效。
知识体系总览
为了让你更直观地理解这四个模块的关系,我画了一张图:
这张图想表达的是:订单流不平衡是原始输入,经过知情交易者识别模块过滤噪音,再通过逆向选择成本模块量化风险,最后提取出可执行的交易信号。而且,这个流程不是一次性的——信号的质量会反馈回来,帮你调整前面的参数。
好了,这一章的内容就到这里。信息驱动型策略,说白了就是跟市场里的“聪明钱”博弈。你如果能比他们快一步,或者能识别出他们的踪迹,那你就能赚到钱。但记住,他们也在进化,所以你的策略也要不断迭代。
个人经验总结:
我做信息驱动策略这些年,最大的感悟就是:不要试图去预测消息本身,而是去预测“别人对消息的反应”。你永远不知道内幕消息是什么,但你可以通过订单流的变化,知道有人知道了内幕消息。抓住这个“知道有人知道”的窗口期,就够了。