作者:老余捞鱼
原创不易,转载请标明出处及原作者。

写在前面的话:最近研究了一套量化方法,用Python分析股价的追涨(趋势延续)和抄底(超跌反弹)信号。这篇文章会手把手教你用方差比和自相关分析方法来识别市场的“暴利阶段”和“死亡陷阱”。代码已打包,直接下载就能用!
引言:股市真能预测吗?
你有没有想过,股市的涨跌其实不是完全随机的?就像GameStop(GME)在2021年的暴涨暴跌,追涨的赚翻,抄底的被套。
为什么同样的股票,有时追高能赚,有时却要回调?答案藏在数据里!
今天,我将带你用Python和K线图,挖掘股市的“赚钱区间”,让你知道什么时候该追,什么时候该等。没编程基础的也别慌,文章超简单,都能看懂!
一、股市的“三种状态”:趋势、回调、随机
股市就像个任性的孩子,有时一根筋往上冲(趋势),有时又调头往下跑(回调),还有时候完全没方向(随机)。这三种状态,决定了你的交易策略:
- 趋势阶段(比如GME散户大战华尔街):GameStop先是趋势暴涨,追涨的人赚疯;后来回调,抄底的才有机会。这个阶段适合“追涨杀跌”,顺势而为。
- 反转阶段(比如暴涨后的阴跌回调):价格涨多必跌,适合“高抛低吸”。
- 随机阶段(比如震荡市):股价无规律,乱操作必亏,不如躺平。
那么问题来了:怎么知道当前是哪种状态?
答案是:用数据!我们可以用两个工具——方差比和自相关分析,来判断股价的“性格”。
二、方差比:股市的“性格探测器”
方差比听起来高大上,其实是个简单的“探测器”。它能告诉你,股价是按部就班(随机),还是有规律(趋势或回调)。
如下图:我用量化程序分析GME 2021年暴涨暴跌案例,标注关键买卖点。

- 看股价在200日均线上方(上图)+方差比>1(中图红区)+成交量放大(下图),就是”闭眼买”信号;
- 跌破均线+方差比<1(绿区)则是”高抛低吸”时机;
- 当指标都在1附近徘徊时,管住手别乱动!
记住口诀:“线上红柱跟趋势,线下绿柱等反转,量能不够别硬干”。
2.1 原理超简单
假设股价完全随机(像抛硬币),那么10天的波动应该是1天波动的10倍。方差比率就是拿实际波动和理论波动比一比:

这个方法来自1988年两位大神Lo和MacKinlay的研究,他们发现:股市并不总是随机的,总有些“赚钱区间”能被抓住!
2.2 核心代码示例
这个代码示例会算出方差比率,告诉你股价是趋势、回调还是随机。还能生成上面那张分析图。
# 拉取GameStop数据
ticker = 'GME'
data = yf.download(ticker, start='2020-01-01', end='2025-04-01', interval='1d')
data['Returns'] = data['Close'].pct_change().dropna() # 计算日收益
# 参数设置
holding_periods = [2, 5, 10, 20, 60] # 不同时间周期
window_size = 252 # 滑动窗口(一年交易天数)
# 计算方差比率
def rolling_variance_ratio(returns, q, window):
vr_series = pd.Series(index=returns.index, dtype=float)
pval_series = pd.Series(index=returns.index, dtype=float)
# 文章容量有限,请到文末下载完整代码
# 计算不同周期的方差比率
df_vr = pd.DataFrame(index=data.index)
df_pval = pd.DataFrame(index=data.index)
for q in holding_periods:
vr, pval = rolling_variance_ratio(data['Returns'], q, window_size)
df_vr[f'VR_{q}'] = vr
df_pval[f'PVal_{q}'] = pval
ax2.tick_params(axis='both', which='major', labelsize=10)
plt.xlabel('Date', fontsize=8)
plt.tight_layout()
plt.show()
代码说明:
- 数据:拉取2020-2025年的GME日K线数据,计算日收益率。
- 方差比率:用252天(一年)的滑动窗口,算不同周期(2、5、10、20、60天)的方差比率。
- p值:如果p值<0.05,说明方差比率显著,股价有规律可循。
运行结果:2021年初,GME的方差比率>1,p值<0.05,说明是强趋势,适合追涨;2021年后,方差比率<1,进入回调,适合抄底。
三、自相关分析:股价的“记忆力”
除了方差比率,还有个更直观的工具——自相关系数。它就像是检查股价的“记忆力”:今天涨了,明天还涨吗?

这张图解释了多个频率下收益的滚动自相关性。上图:采用移动平均线的价格。中图:滞后 1 阶自相关性。下图:滞后 1-3 阶的平均自相关性。虚线表示显著性阈值。
3.1 简单解释
自相关系数看的是股价的“前后关系”:

我们用一个滑动窗口(比如60天),算出自相关系数,再看看它是否“显著”(超过某个阈值)。如果显著,就说明股价有规律可循!
3.2 核心代码示例
再来看自相关系数的代码,帮你确认股价的“记忆力”。
# 拉取数据
ticker = 'GME'
data = yf.download(ticker, start='2020-01-01', end='2025-04-01', interval='1d')
data['Returns'] = data['Close'].pct_change().dropna()
# 参数
window = 60 # 滑动窗口
lag = 1 # 滞后1天
# 计算自相关系数
def rolling_acorr(series, window, lag):
return series.rolling(window).apply(lambda x: pd.Series(x).autocorr(lag=lag), raw=False)
acorr = rolling_acorr(data['Returns'], window, lag)
threshold = 2 / np.sqrt(window) # 显著性阈值
# 文章容量有限,请到文末下载完整代码
代码说明:
- 自相关:用60天的滑动窗口,算滞后1天的自相关系数。
- 阈值:如果系数超过±2/√60,说明显著(趋势或回调)。
- 画图:股价在上,自相关在下,帮你直观看到规律。
运行结果:2021年初,自相关系数为正且显著,说明趋势强;2021年后,系数变负,进入回调。
四、案例分析:GameStop的“过山车”
用上文方差比和自相关分析章节介绍的理论和代码分析GameStop,结果一目了然:
- 2021年初:方差比率>1,自相关系数为正,p值<0.05,股价暴涨,追涨赚翻。
- 2021年后:方差比率<1,自相关系数为负,股价回调,抄底有机会。
- 其他时间:方差比率≈1,自相关系数≈0,股价随机,观望最好。
时间 | 方差比率 | 自相关系数 | 状态 | 策略 |
---|---|---|---|---|
2021年初 | >1 | 正 | 趋势 | 追涨 |
2021年后 | <1 | 负 | 回调 | 抄底 |
其他 | ≈1 | ≈0 | 随机 | 观望 |
五、注意事项:别把工具当万能钥匙
方差比率和自相关分析很强大,但不是万能的:

- 市场变化快:今天是趋势,明天可能回调,随时更新分析。
- 风险别忘:量化分析只是工具,交易还得看资金管理和心态。
- 结合其他指标:比如成交量、RSI,综合判断更靠谱。
六、观点总结
通过方差比率和自相关系数,我们能找到股市的“赚钱区间”,知道什么时候追涨,什么时候抄底。GameStop的案例告诉我们:股市不是完全随机的,数据能帮你占先机!快用Python试试,跑出属于你的“赚钱图”!
- 股市有三种状态:趋势、回调、随机,用对策略能赚钱。
- 方差比率>1是趋势,<1是回调,≈1是随机。
- 自相关系数正值是趋势,负值是回调,接近0是随机。
- 用Python的yfinance和matplotlib,小白也能分析K线图。
- 量化分析不是万能,结合风险管理和心态才靠谱。

如需源代码,请留言索取。

阅读到最后,希望这篇文章为您带来了新的启发和实用的知识!如果觉得有帮助,请不吝点赞和分享,您的支持是我持续创作的动力。祝您投资顺利,收益长虹!如果对文中内容有任何疑问,欢迎留言,我会尽快回复!
本文内容仅限技术探讨和学习,不构成任何投资建议。
Be First to Comment