
清算燃料耗尽:一个短线反转因子的拆解
今天看到 YuCry 提到一个很有意思的因子:价格跳跃成交额相关性因子。
原理并不复杂:当价格在某一分钟内剧烈跳动,同时成交额突然放大,我们可以把这一分钟视为一次潜在的清算冲击。合约市场里,价格短时间往一个方向极端运动,往往不是因为所有人突然达成共识,而是因为一批杠杆仓位被迫平仓,强平单变成了继续推动价格的燃料。
但燃料不是无限的。
当该爆的仓集中爆完,市场短时间内就可能进入“燃料枯竭”状态。如果没有新的主动趋势资金继续接力,价格就容易出现短线反向运动。
这篇文章把这个因子拆成一个可以落地的量化框架。
一句话定义
价格跳跃成交额相关性因子 = 用“短时间价格剧烈跳动 + 成交额异常放大”的共振,识别疑似清算/爆仓燃料耗尽点,做短线反向。
它不是趋势因子,而是一个典型的 清算后反转因子。
更准确的英文名可以叫:
Liquidation Exhaustion Reversal Factor
中文可以叫:
清算燃料耗尽反转因子
这个因子到底在捕捉什么?
普通价格因子关注的是:价格涨了还是跌了。
普通成交量因子关注的是:这一段有没有放量。
但这个因子真正关心的是:
这一分钟的价格运动,是不是被清算流强行推出来的?
如果是,那么它隐含两个信息:
- 方向性冲击已经发生;
- 推动冲击的被动燃料可能快耗尽。
所以它不是追突破,而是在找“杠杆链条断裂之后”的短线均值回归。
flowchart TD
A[价格短时间剧烈跳动] --> C[疑似清算冲击]
B[成交额异常放大] --> C
C --> D[强平单推动价格单边运动]
D --> E[爆仓燃料逐渐耗尽]
E --> F[短线反向修复]
典型方向是:
- 急跌 + 高成交额 + 高价格跳跃:疑似多头清算,后续偏反弹;
- 急涨 + 高成交额 + 高价格跳跃:疑似空头清算,后续偏回落。
因子拆解:三个核心变量
这个因子可以拆成三个部分:价格跳跃、成交额异常、二者共振。
1. 价格跳跃:Price Jump
最简单的跳跃定义是当前分钟的实体收益:
但清算场景里,单看实体不够。很多清算会表现为长上下影线,所以更推荐用振幅:
如果有逐笔成交数据,还可以用微观价格路径:
三者区别:
jump_body更关注方向性;jump_range更适合捕捉插针和剧烈波动;micro_jump最适合捕捉“上下剧烈抖动”。
如果只有 1m K 线,我会优先用 jump_range。
2. 成交额异常:Turnover Spike
清算一定伴随成交。没有成交额配合的价格跳动,可能只是流动性薄或者报价跳变,不一定是系统性强平。
成交额可以定义为:
如果数据里只有 base volume,可以近似:
然后做标准化:
或者用更稳健的中位数倍数:
常见窗口:
N = 60:过去 60 分钟,适合短线;N = 240:过去 4 小时,更稳一点;N = 1440:过去 1 天,适合日内统计。
3. 跳跃-成交额共振:Shock
推文里提到“价格跳跃成交额相关性”,严格做法可以计算滚动相关:
但实盘触发时,我更喜欢用当前分钟的冲击乘积:
原因很简单:滚动相关更像状态变量,而 shock_t 更像触发变量。
当 jump_z_t 和 turnover_z_t 同时很高,说明当前这根 1m K 线不仅波动大,而且成交额也异常大。它更像一次真实的冲击,而不是普通噪音。
最终因子公式
有了冲击强度之后,还需要判断方向。方向可以用当前分钟收盘相对开盘的符号:
最终反转因子可以写成:
展开就是:
含义:
factor_t > 0:偏多,通常对应急跌后的反弹;factor_t < 0:偏空,通常对应急涨后的回落。
flowchart LR
A[1m OHLCV] --> B[计算价格跳跃 jump]
A --> C[计算成交额 turnover]
B --> D[jump z-score]
C --> E[turnover z-score]
D --> F[shock = jump_z × turnover_z]
E --> F
A --> G[direction = sign close-open]
F --> H[factor = -direction × shock]
G --> H
H --> I[短线反转信号]
入场规则示例
这个因子最好先用非常简单、可解释的规则验证,不要一开始就堆太多参数。
做多信号
翻译成人话:
- 当前 1m 明显下跌;
- 当前振幅异常;
- 当前成交额异常;
- 疑似多头被集中清算;
- 做短线反弹。
做空信号
翻译成人话:
- 当前 1m 明显上涨;
- 当前振幅异常;
- 当前成交额异常;
- 疑似空头被集中清算;
- 做短线回落。
最小可用版本可以直接写成:
出场:别把微结构因子拿成趋势单
这个因子捕捉的是清算后的短线修复,不适合拿太久。它的优势通常集中在几分钟到十几分钟内。
常见出场有三种。
1. 固定持有时间
最适合做因子验证:
先看不同持有期的未来收益分布,再决定策略化时用哪个窗口。
2. 回到短线均值
做多时:
做空时:
这对应的是“清算插针后修复到短线均值”的逻辑。
3. 冲击 K 线失效止损
做多后,如果价格继续跌破冲击 K 线低点,说明这可能不是燃料耗尽,而是真趋势继续:
做空后,如果价格继续突破冲击 K 线高点,也应该止损:
为什么它不是普通成交量因子?
普通成交量因子经常会把“放量”理解成趋势确认。
但这个因子的关键不是放量本身,而是:
放量是否和价格跳跃同时发生。
三种情况要分开:
- 只有放量,价格不动:更像换手,不一定有方向;
- 只有价格跳,成交额不大:可能只是流动性薄;
- 价格剧烈跳 + 成交额异常放大:更像清算冲击。
所以这个因子真正捕捉的是“成交额驱动的价格冲击”。
最好用什么数据?
最好:逐笔成交 + 强平数据
如果数据条件允许,最理想的数据组合是:
- Binance aggTrade;
- forceOrder liquidation stream;
- mark price / index price;
- orderbook imbalance;
- open interest。
这样可以把“疑似清算”变成更接近“确认清算”。
次优:1m OHLCV
如果没有强平流,1m K 线也可以做弱版本。
最小字段是:
但要记住:OHLCV 只能推断清算,不能证明清算。
不建议只用 3m/5m
推文里说的是“某一分钟”。
3m 或 5m 会把清算瞬间摊平,信号会变钝,甚至把“冲击后反弹”合并到同一根 K 线里,导致因子失真。
可以加的过滤器
1. OI 下降过滤
清算通常伴随 open interest 下降。
如果价格急跌、成交额巨大、OI 明显下降,更像多头被清掉;如果价格急涨、成交额巨大、OI 明显下降,更像空头被清掉。
2. Funding / Premium 过滤
如果 funding 长时间偏多后急跌,更容易出现多头清算后的反弹。
如果 funding 长时间偏空后急涨,更容易出现空头清算后的回落。
可以写成:
3. 大盘同步过滤
如果 BTC、ETH 和主流山寨同时出现清算冲击,说明可能是全市场杠杆去化。
这种情况下,单币种反转信号的质量往往更高,因为它不只是局部流动性问题。
4. 趋势过滤
这个因子最怕把真趋势突破误判成清算反转。
可以加一个简单过滤:
- 大周期极强下跌时,少做急跌反弹;
- 大周期极强上涨时,少做急涨回落;
- 或者只允许极短持有,防止反转失败变成逆趋势硬扛。
最大风险:趋势接力
这个因子最大的坑是:
有些大成交 + 大跳跃不是清算尾声,而是趋势启动。
比如重大新闻、交易所故障、宏观数据、ETF 流出、监管事件,都可能让大成交之后继续同向运动。
解决方法有几个:
- 等冲击 K 线收完再进,不追正在形成中的针;
- 看后续 1-3 分钟是否继续同向放量;
- 一旦突破冲击 K 线极值,立刻承认判断失败;
- 不在重大新闻窗口机械做反转。
回测应该怎么看?
最关键不是看单个阈值收益,而是看 shock 分桶后的未来收益。
例如把 shock 分成:
0-11-22-33-5>5
分别统计未来:
- 3 分钟收益;
- 5 分钟收益;
- 10 分钟收益;
- 15 分钟收益。
然后分方向看:
- 急跌 shock 后,未来收益是否为正;
- 急涨 shock 后,未来收益是否为负。
flowchart TD
A[收集 1m OHLCV] --> B[计算 jump_z / turnover_z / shock]
B --> C[按 shock 强度分桶]
C --> D[区分急涨冲击和急跌冲击]
D --> E[统计未来 3/5/10/15m 收益]
E --> F{高 shock 分桶是否稳定反向?}
F -->|是| G[进入策略化]
F -->|否| H[因子故事好听但 alpha 不足]
如果 shock > 3 或 shock > 5 之后,反向 5-15 分钟收益显著为正,这个因子才算真的站住。
如果分桶越高,反向收益没有改善,甚至继续同向,那它就是一个看起来很合理、但市场不给钱的故事。
和现有策略池的结合
这个因子很适合接进 ETH/BTC 的短线策略池,尤其是已有以下数据链路时:
- aggTrade 成交流;
- liquidation 强平流;
- orderbook runtime;
- premium/funding feature;
- Freqtrade dry-run 框架。
我的建议是先做两个版本:
版本 A:OHLCV 弱版本
只用 1m K 线:
优点是简单,数据稳定,容易快速回测。
版本 B:强平确认版本
在版本 A 上增加:
也就是只有当强平额异常,并且 OI 下降时,才认为它是高质量清算冲击。
这个版本信号更少,但质量应该更高。
结语
价格跳跃成交额相关性因子的核心,不是“放量就反向”,也不是“插针就抄底”。
它真正的逻辑是:
当价格冲击和成交额异常同时出现,市场可能正在经历一轮杠杆清算。清算推动了价格,但清算结束后,推动价格的燃料也可能暂时耗尽。
所以它抓的是 清算后的短线修复。
最终可以浓缩成一个公式:
如果要把它做成真正能跑的策略,重点不在公式本身,而在三个问题:
- 数据粒度够不够细?
- 能不能过滤真趋势?
- 高 shock 分桶后的未来收益是否真的反向?
这三个问题过了,它才不是一个好听的交易叙事,而是一个可用的微结构因子。
量化心流:最爽的不是赚钱
Typora For Mac:把 Markdown 写作变成一种专注体验