一、震荡市的定义与识别
什么是震荡市?
先问大家一个问题——你打开行情软件,看到价格上上下下,但一个月下来,价格还在原地。这种行情,就是震荡市。
我个人习惯把震荡市叫做「磨人行情」。价格在一个区间里来回摆动,没有明确的方向。多头不敢追,空头不敢压,大家都在等一个突破信号。
震荡市的本质是什么?说白了,就是市场在「休息」。一波大涨或大跌之后,多空双方都需要喘口气。这时候,价格就在一个相对狭窄的区间里来回拉锯。
震荡市的三个核心特征:
- 低波动率——价格每天的涨跌幅明显收窄
- 价格区间震荡——有明确的上轨和下轨,价格反复触碰
- 均线粘合——短期、中期、长期均线纠缠在一起
我在项目中遇到过不少新手,一看到价格横盘就着急,觉得没行情。其实震荡市恰恰是低波动策略的「主场」。你想想看,如果市场天天单边上涨,谁还做低波动策略?
震荡市的典型特征详解
1. 低波动率
波动率是衡量价格变动幅度的指标。震荡市里,波动率会明显下降。怎么量化?看ATR(平均真实波幅)。
ATR值从高位回落到低位,通常意味着市场进入震荡。举个例子,某股票在趋势行情中ATR是2.5元,进入震荡后ATR可能降到0.8元。这个差距,就是信号。
我的经验:ATR低于20日均值的60%时,基本可以判定进入震荡模式。但这个阈值不是死的,不同品种要调。比如比特币的ATR阈值和茅台肯定不一样。
2. 价格区间震荡
价格在一个水平通道里来回走。上边界是阻力位,下边界是支撑位。每次碰到边界就反弹。
怎么识别?最简单的办法——画水平线。找到最近3-5个高点连成一条线,再找3-5个低点连成一条线。如果这两条线接近平行,那就是震荡区间。
3. 均线粘合
这是最直观的特征。MA5、MA10、MA20、MA60这几条均线,在趋势行情里是发散的——短期均线在上,长期均线在下,或者反过来。但在震荡市里,它们会像面条一样缠在一起。
为什么会这样?因为价格来回摆动,短期均线跟着上下,长期均线反应慢,结果就是大家挤在一起。嗯,这里要注意:均线粘合不一定马上出方向,但一旦粘合后发散,往往就是大行情的开始。
如何用技术指标识别震荡市?
光靠肉眼看图,容易出错。我们需要量化指标来辅助判断。下面介绍两个我最常用的工具。
方法一:ATR指标
ATR的计算公式不复杂,但我不建议你手算。直接用TA-Lib库就行。
import pandas as pd
import talib as ta
# 假设df是包含OHLC数据的DataFrame
df['atr'] = ta.ATR(df['high'], df['low'], df['close'], timeperiod=14)
# 计算ATR的20日均值
df['atr_ma20'] = df['atr'].rolling(20).mean()
# 判断震荡:ATR低于均值的60%
df['is_range'] = df['atr'] < df['atr_ma20'] * 0.6
这段代码的核心逻辑:当ATR萎缩到正常水平的60%以下,说明波动率已经很低了。我曾经用这个逻辑在2022年下半年的A股市场上做过回测,准确率大概在70%左右。
避坑指南:ATR是绝对值指标,不同品种的ATR数值差异很大。我曾经在商品期货上直接用固定阈值,结果被坑得很惨。一定要用相对值,比如ATR与均值的比值。
方法二:布林带宽度
布林带由中轨(MA)、上轨(MA+2σ)、下轨(MA-2σ)组成。带宽就是上下轨之间的距离。
带宽收窄,意味着波动率下降。带宽扩张,意味着波动率上升。震荡市里,带宽会持续收窄。
# 计算布林带
df['ma20'] = df['close'].rolling(20).mean()
df['std20'] = df['close'].rolling(20).std()
df['upper'] = df['ma20'] + 2 * df['std20']
df['lower'] = df['ma20'] - 2 * df['std20']
# 计算带宽
df['bandwidth'] = (df['upper'] - df['lower']) / df['ma20']
# 判断震荡:带宽低于历史20%分位数
threshold = df['bandwidth'].quantile(0.2)
df['is_range_bb'] = df['bandwidth'] < threshold
我个人习惯把ATR和布林带宽度结合起来用。两个指标同时发出信号,胜率会高很多。你想想看,单一指标可能有假信号,但两个独立指标共振,可信度就上来了。
震荡市识别框架图
下面这张图,是我自己总结的震荡市识别流程。从原始数据到最终判断,一共三步。
实战中的注意事项
识别震荡市,不是一锤子买卖。市场是动态的,今天震荡,明天可能就突破。我建议你这样做:
- 多周期验证——日线震荡,周线可能是趋势。先看大周期,再看小周期。
- 指标组合使用——ATR+布林带+均线粘合,三个指标至少两个确认,才下结论。
- 动态调整阈值——不同品种、不同市场环境,阈值要调。我一般每季度重新校准一次参数。
一个小技巧:把ATR和布林带宽度画在副图上,用颜色标记震荡区域。一眼就能看出市场在「休息」还是在「运动」。我自己的交易终端上,震荡区域用浅灰色背景标出来,方便快速定位。
识别震荡市,是低波动策略的第一步。这一步走对了,后面的策略设计才有意义。别小看这个环节,我见过太多人连震荡和趋势都分不清,就急着上策略,结果亏得一塌糊涂。
记住一句话:先识别环境,再选择策略。震荡市里做趋势策略,就像在游泳池里冲浪——不是不行,但大概率会翻船。
公众号:蓝海资料掘金营,微信deep3321