- Published on
Kloom Regime Detector - Market Regime Classifier
- Authors

- Name
- CoresightQuant
NOTE
本文为公开交易策略的技战术复盘,聚焦方法逻辑、交易场景与风险边界。
策略解读
如果把市场比作天气,那么趋势是“风向”,波动率是“风力”。一个合格的交易系统,首先要知道是晴天、雨天还是暴风天,才能决定穿什么衣服出门。Kloom的“市场制度检测器”正是这样一套天气识别的框架。它不直接给买卖信号,而是回答“当前市场属于什么状态”,从而为后续的策略选择提供依据。
这个策略的核心是同时检测“趋势”和“波动率”两个维度,并综合它们的结果将市场划分为有限的几种状态。这样做的哲学在于:不同市场状态下,盈利策略的构成完全不同。趋势行情中,顺势突破或均线跟踪类策略容易赚钱;震荡行情中,均值回归或区间高抛低吸更有效;而高波动行情中,即便有明确的趋势方向,也常伴随剧烈回撤,需要降低仓位或采用更宽的止损。如果系统能自动识别这些状态,就可以动态调整参数、过滤信号,甚至直接切换策略。
从具体逻辑来看,策略首先计算ADX。ADX本身并不关心方向,它只反映趋势的强度。如果ADX低于阈值,说明市场处于无趋势或弱趋势状态,此时不区分多空。如果ADX高于阈值,则进一步通过50周期与200周期指数移动平均线的关系来判断方向:当50 EMA高于200 EMA时,判定为多头趋势;反之则为空头趋势。这是一个非常经典的均线排列判断法,简单直观,且具有一定的稳定性。
与此同时,策略独立计算ATR%,并将它与自身的长周期平均值比较。ATR%是平均真实波幅除以价格,反映了价格波动的相对剧烈程度。当ATR%大幅高于历史平均水平时,说明市场正在经历波动率爆发,可能源于重大新闻、经济数据或流动性冲击。在这种环境下,任何趋势判断都可能被剧烈噪声干扰,因此策略给出优先级:只要波动率爆发被触发,不管ADX和均线状态如何,一律标记为“高波动”状态,而不是常规的多空趋势状态。
这样,四种市场状态便自然形成:
- 多头趋势状态:ADX高于阈值,50 EMA高于200 EMA,且ATR%未触发高波动;
- 空头趋势状态:ADX高于阈值,50 EMA低于200 EMA,且ATR%未触发高波动;
- 高波动状态:ATR%超过长期平均值的设定倍数,无论ADX与均线如何;
- 盘整/低波动状态:ADX低于阈值,且ATR%处于正常或偏低水平。
这套逻辑的价值在于“结构化”。它把连续变化的市场行情压缩为几个离散的标签,使得交易系统可以进行规则化的判断。同时,由于ADX和ATR%都是基于原始价格数据计算的,不存在动态重绘问题,所以同一根K线的状态判断是稳定的,不会在事后出现历史信号改变。这正是许多量化交易者偏爱它的原因。
名词解释
-
ADX(平均趋向指数)
ADX全称Average Directional Index,由技术分析大师威尔斯·怀尔德在1978年提出。它的主要作用是衡量趋势的强弱,数值范围通常在0到100之间,但指标本身不指示方向。一般经验以25为界,高于25认为存在有效趋势,低于25则视为震荡或无趋势。ADX是通过计算方向运动指标的正负值并平滑后得到的,因此它对趋势强度的刻画较稳定。 -
ATR%(平均真实波幅百分比)
ATR全称Average True Range,同样由怀尔德提出,衡量的是价格的真实波动幅度。ATR%是将ATR除以当前价格后得到的百分比值,这样可以剔除不同价位品种之间的绝对差异,让不同股票、期货或外汇之间的波动率可以互相比较。ATR%越高,说明价格运动越剧烈,风险越大。 -
EMA(指数移动平均线)
EMA是指数移动平均线的英文缩写,是一种对近期价格赋予更高权重的均线。与简单移动平均线相比,EMA反应更快、滞后更小。50 EMA通常被视为中期趋势的代表,200 EMA则被视为长期趋势的代表。当50 EMA位于200 EMA之上时,代表中期均线高于长期均线,市场处于多头格局;反之则处于空头格局。 -
无重绘(No Repainting)
“重绘”通常出现在某些技术指标中,指的是指标在历史K线位置上的数值或信号会随着未来新数据的出现而改变。无重绘指标则固定地使用原始价格数据计算,当前K线确定后,其历史信号不会因为后续价格变化而突变。交易者重视无重绘特性,因为重绘指标往往造成事后诸葛亮的错觉,严重影响回测和实盘的一致性。 -
阈值(Threshold)
阈值是一个预设的分界值,用于将连续的数值转换为离散的分类。在本文策略中,ADX是否高于阈值决定了是否为趋势状态;ATR%超过长期平均值的倍数阈值则决定了是否触发高波动状态。阈值的选择直接影响状态识别的灵敏度,设置过高会错过趋势,设置过低会产生大量噪声。 -
市场状态(Market Regime)
市场状态又称市场制度,是指市场整体运行所呈现的统计特征,例如趋势性、震荡性、高波动性、低波动性等。不同的市场状态往往对应不同的收益分布和最优策略。识别市场状态是量化交易中一个重要的前置步骤,其思想也常与“状态切换模型”相关联。 -
波动率爆发(Volatility Explosion)
波动率爆发是指价格波动幅度在短时间内显著放大,往往由突发消息、市场情绪变化或流动性冲击引发。在这种环境下,常规的趋势指标容易失真,止损也容易被瞬间打穿。策略中单独设置高波动状态,就是为了提示交易者此时应降低杠杆、扩大止损或暂停交易。
策略思路讲解
这个策略的设计思路可以拆解为三个步骤。
第一步,评估趋势强度。策略使用ADX作为趋势强度的过滤器。ADX计算过程中利用了正向方向运动和负向方向运动,通过平滑处理得到一个可以“无重绘”测量的数值。ADX之所以被选中,是因为它不像均线那样直接给出方向,而是评价趋势的“确定性”。如果ADX阈值设置得较高,比如30,那么只有在趋势非常明确时才会被标记为趋势状态;如果阈值设置得较低,比如20,则会有更多行情被纳入趋势范围,但误判概率也会上升。
第二步,判断趋势方向。一旦ADX确认市场处于趋势状态,策略转而看向50/200 EMA。这是一个非常经典的长期均线组合。50 EMA代表近五十个周期内的平均成本,200 EMA则代表近两百个周期的平均成本。当短期成本高于长期成本,说明近期买入者相比长期持仓者更积极,市场具有较强的牛市动力;反之则为熊市。这种判断方式的好处是不会频繁出现微小方向的反复切换,因为两条均线之间的交叉需要时间,过滤掉了大部分日内噪声。
第三步,独立监测波动率。策略没有把波动率作为趋势判断的辅助条件,而是把它提升为一种能够“一票否决”的独立维度。计算ATR%后,将其与自身的长周期平均值比较。如果ATR%是长期平均值的1.5倍、2倍或某个自定义倍数,就认为市场正在经历异常波动。此时,无论ADX是否显示趋势,也无论均线排列是多头还是空头,一律判定为高波动状态。这种设计的逻辑在于:在高波动环境下,趋势策略的持仓过程会非常痛苦,即使方向看对了,价格也可能以剧烈震荡的方式前进,普通止损很容易被触发。与其勉强判断多空,不如先承认这是一个特殊的制度状态。
最终,策略输出四种状态。交易者可以根据状态来决定具体行为:
- 在多头趋势状态下,可以执行顺势突破策略,或者加仓持有;
- 在空头趋势状态下,可以采用做空策略或增加对冲;
- 在高波动状态下,应降低仓位、扩大止损,或者暂停交易等待波动率收敛;
- 在盘整/低波动状态下,可以采用区间交易或均值回归策略,同时准备突破预案。
值得注意的是,这个状态定义并不是“要么趋势,要么盘整”的简单二分法,而是让波动率成为最高优先级。这样处理是非常务实的,因为当波动率爆发时,即使ADX极高,价格方向也常常不可靠。很多趋势跟踪系统在重大消息行情中亏损,就是因为在波动率放大的瞬间仍然追涨杀跌。该策略用波动率优先的规则规避了这一陷阱。
优点
第一,逻辑清晰,易于理解。ADX、EMA、ATR%都是广为接受的技术指标,组合规则明确,没有黑箱成分。交易者可以很快明白策略在做什么,并据此建立信任感。
第二,考虑了趋势与波动率两个独立维度,能够覆盖更全面的市场状态。单一的“趋势/震荡”分类无法应对高波动环境,而加入ATR%后,系统能主动识别波动率异常区间,有助于风险控制。
第三,ADX和ATR%均为无重绘指标。这意味着策略生成的市场状态标签在历史上是固定的,不会随新K线出现而改变。对于回测和实盘交易而言,信号一致性至关重要,无重绘特性也减少了策略被“事后美化”的可能。
第四,状态标签具有可操作性。四种状态对应着截然不同的风险偏好和策略倾向,交易者完全可以基于状态标签设计一个“状态驱动”的决策框架。例如,只在多头趋势状态中运行趋势策略,在高波动状态中强制降杠杆,在盘整状态中关闭突破信号。
第五,参数数量少且意义明确。整个策略主要需要设定三个参数:ADX阈值、50/200均线周期(通常固定),以及ATR%的倍数乘子。参数可解释性强,调整起来也方便。
缺点
第一,指标天然具有滞后性。ADX基于方向运动的平滑计算,ATR%基于长期平均值,EMA本身也对价格进行平滑。这些运算都会让状态识别产生一定的延迟,尤其在趋势转折初期,策略可能仍然维持旧状态,导致入场过晚或出场不及时。
第二,阈值设定存在主观性。ADX阈值究竟是20还是30,ATR%倍数究竟是1.5还是2.0,不同交易品种和市场环境可能会有很大差异。如果阈值设置不当,状态分类的准确率就会下降。尽管参数可调,但选择参数本身又可能引入过拟合问题。
第三,高波动状态的优先级过高。虽然将波动率爆发作为最高优先级有助于规避风险,但也可能造成“误杀”。某些健康的持续上涨行情,其波动率也会阶段性放大,如果一律标记为高波动并暂停趋势交易,可能会错失主升浪。波动率放大并不必然意味着危险,需要结合趋势的稳定性来判断。
第四,均线方向判断在震荡市场中可能失效。50/200 EMA关系在强趋势中表现良好,但在盘整区间内,两条均线可能反复交叉,产生虚假的方向信号。尽管ADX会先过滤掉一些震荡市场,但ADX本身也有一定滞后性,无法完全避免均线缠绕带来的模糊状态。
第五,状态分类的边界是硬的。策略将市场划分为离散状态,但现实中市场状态往往是连续变化的,且可以快速切换。比如从低波动盘整直接进入高波动下跌,中间可能没有清晰的过渡。这样的突变可能会让状态标签出现“跳变”,进而导致交易决策的突然转向,影响执行稳定性。
起源年份考证
需要说明的是,Kloom策略本身的精确发布时间无从考证,因为该策略只存在于公开交易社区中,没有提供历史发行信息。但作为一种“市场状态分类器”的方法,其技术渊源可以梳理出清晰的时间线。
-
20世纪60年代至70年代初:趋势跟踪与移动平均的早期应用。 移动平均线作为趋势判断工具已有近百年历史,但在系统化交易中广泛运用可追溯至20世纪60年代。例如,期货界先驱理查德·唐奇安在1960年代推广的通道突破策略中,就已经隐含了“只有趋势出现才交易”的理念。
-
1978年:ADX与ATR指标的诞生。 技术分析师威尔斯·怀尔德出版《技术交易系统的新概念》,书中提出了ATR、ADX、RSI等多个指标。这些指标后来成为构建市场状态分类器的基础组件。ADX专门用来量化趋势强度,ATR用来量化波动率。因此,该策略的核心数学工具源于1978年。
-
1980年代:波动率通道与市场状态概念的成熟。 约翰·布林格在1980年代提出布林带指标,将移动平均线与标准差结合,进一步推动了“波动率”在交易系统中的应用。同时,机构交易者开始使用多重指标组合来区分“趋势日”与“非趋势日”,这一思想逐渐演变为市场制度识别。
-
1989年:马尔可夫状态切换模型引入经济学界。 汉密尔顿提出了将时间序列划分为不同潜在状态的统计模型,即马尔可夫状态切换模型,这为“市场状态”提供了严谨的数学框架。虽然该模型在学术领域应用较多,但将市场状态分类应用于实际交易策略的尝试,也是在这个时期开始出现。
-
2000年代以后:公开交易社区中大量出现“市场制度检测器”类型的策略。 随着量化交易软件的普及,越来越多的独立开发者将ADX、EMA、ATR等经典指标组合成“状态识别模块”。这类策略通常不直接产生交易信号,而是为其他策略提供过滤条件。Kloom的策略正是这一类方法中的代表。
-
2010年代至今:市场状态检测成为量化交易的标准组件。 多资产、多时间框架的“制度过滤器”被广泛应用于趋势跟踪、对冲基金和算法交易系统中。
综上所述,虽然无法考证Kloom策略的确切发布日期,但其所代表的方法论可以追溯到1978年ADX和ATR的诞生,而“市场状态分类”这一思想在1980年代后期随着马尔可夫状态切换模型被引入而获得理论支撑,并在2010年代之后成为公开交易社区中的常见实践。
改进建议
第一,引入多时间框架确认。当前策略只在一个时间周期上判断状态。如果日线级别是空头趋势,但周线级别是多头趋势,那么市场状态便存在冲突。建议在多个时间框架上分别计算ADX和50/200 EMA,并采用“高周期定方向、低周期找入场”的策略层级,提高状态识别的稳健性。
第二,使用自适应ADX阈值。固定阈值可能不适合所有行情。可以考虑用ADX的历史百分位数来动态确定阈值,例如将ADX高于过去200个周期80%分位的值定义为“趋势状态”。这种做法能够根据市场自身波动特征调整灵敏度,有助于适应不同波动水平的品种。
第三,改进波动率爆发判定方式。ATR%相对于长期平均值的倍数是一个简单有效的方法,但也可以引入“布林带”或“统计分位数”的概念。例如,将ATR%的长期分布作为基准,当当前ATR%超过过去500个周期的95%分位数时触发高波动状态。这样比固定乘数更具统计意义,且能减少参数调整次数。
第四,增加成交量或市场宽度确认。价格技术指标无法完全反映市场内在结构。建议在状态检测中加入成交量变化率、涨跌家数比或成交量加权趋势指标,帮助确认趋势的真实性。例如,多头趋势状态要求ADX高、均线多头、且成交量温和放大,这样可以过滤掉缩量上涨的弱势趋势。
第五,为高波动状态设计细分策略。当前策略将高波动视为一种需要回避的状态,但高波动并非总是危险的。建议在高波动状态内部再细分:如果是顺势方向的高波动(例如多头趋势中ATR放大),可以视为加速上涨信号;如果是逆势方向的高波动(例如空头趋势中因反弹导致ATR放大),则需警惕反转。这种细分可以作为过滤规则使用,而不是简单一刀切。
第六,对参数进行带内稳健性检验。回测时不要只使用一组参数,而应测试一定范围内的参数组合,观察状态分类的变化幅度。如果参数微小变动导致状态结果剧烈变化,说明策略对参数敏感,需要谨慎使用。稳健性的参数区间比单一最优参数更有实际价值。
第七,考虑状态平滑机制。为了防止状态在短期内反复切换,可以加入“延迟确认”或“冷却期”规则。例如,状态从“多头趋势”变为“空头趋势”需要连续两根K线确认,高波动状态触发后至少维持几根K线。这样能够减少因价格瞬时扰动导致的信号抖动,提高交易执行的一致性。
总结
Kloom的市场制度检测器是一个简洁而实用的市场状态分类系统。它以ADX判断趋势强度,以50/200 EMA关系判断趋势方向,以ATR%的异常放大作为高波动状态的最高优先级,最终输出多头趋势、空头趋势、高波动与盘整等离散状态。这种设计让交易者能够在不同的市场环境中选择对应的策略,同时用波动率优先机制规避最危险的行情。尽管策略存在滞后性和阈值设定主观性等不足,但它的核心思想——先把市场分成不同类型再决定怎么应对——深刻反映了系统化交易的本质。在行情愈发复杂的今天,这样的“制度思维”不仅适用于人工交易,也是量化系统构建中不可或缺的一环。