社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

追涨还是抄底Python一眼看穿,教你用量化方法框出“赚钱区间”

老余捞鱼 • 6 天前 • 15 次点击  
图片
 点击上方蓝字 | 关注更多好文
写在前面的话


最近研究了一套量化方法,用Python分析股价的追涨(趋势延续)和抄底(超跌反弹)信号。这篇文章会手把手教你用方差比自相关分析方法来识别市场的“暴利阶段”和“死亡陷阱”。代码已打包,直接下载就能用!

你有没有想过,股市的涨跌其实不是完全随机的?

为啥同样的股票,有时追高能赚,有时要回调?

今天我带你用Python和K线图,挖掘股市的赚钱区间,让你知道什么时候该追,什么时候该等。

无编程基础的也没关系,文章超简单,都能看懂!

股市的三种状态:趋势、回调、振荡


 The "Three States" of the Stock Market
01

股市就像个任性的孩子,有时一根筋往上冲(趋势),有时又调头往下跑(回调),还有时候完全没方向(随机)。

这三种状态,决定了你的交易策略:

  • 趋势阶段(比如GME散户大战华尔街):GameStop先是趋势暴涨,追涨的人赚疯;后来回调,抄底的才有机会。这个阶段适合“追涨杀跌”,顺势而为。

  • 反转阶段(比如暴涨后的阴跌回调):价格涨多必跌,适合“高抛低吸”。

  • 随机阶段(比如振荡市):股价无规律,乱操作必亏,不如躺平。

那么问题来了:怎么知道当前是哪种状态?

答案是:用数据!我们可以用两个工具——方差比自相关分析,来判断股价的“性格”。

方差比:股市的“性格探测器”


Variance Ratio
02

方差比听起来高大上,其实是个简单的“探测器”。它能告诉你,股价是按部就班(随机),还是有规律(趋势或回调)。

如下图:我用量化程序分析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 = [25102060]  # 不同时间周期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}'] = pvalax2.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,进入回调,适合抄底。

自相关分析:股价的“记忆力”


 Autocorrelation Coefficient
03

除了方差比,还有个更直观的工具——自相关分析。它就像是检查股价的“记忆力”:今天涨了,明天还涨吗?

这套图解释了多个频率下收益的滚动自相关性。

  • 上图:采用移动平均线的价格;

  • 中图:滞后 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的“过山车”


 Case Analysis
04

用上文方差比和自相关分析章节介绍的理论和代码分析GameStop,结果一目了然:

  • 2021年初:方差比率>1,自相关系数为正,p值<0.05,股价暴涨,追涨赚翻。

  • 2021年后:方差比率<1,自相关系数为负,股价回调,抄底有机会。

  • 其他时间:方差比率≈1,自相关系数≈0,股价随机,观望最好。

注意事项:别把工具当万能钥匙


 Precautions
05

方差比和自相关分析很强大,但不是万能的:

  • 市场变化快:今天是趋势,明天可能回调,随时更新分析。

  • 风险别忘:量化分析只是工具,交易还得看资金管理和心态。

  • 结合其他指标:比如成交量、RSI,综合判断更靠谱。

⑥观点总结


 Summary of Views
06

通过方差比率和自相关系数,我们能找到股市的“赚钱区间”,知道什么时候追涨,什么时候抄底。GameStop的案例告诉我们:股市不是完全随机的,数据能帮你占先机!快用Python试试,跑出属于你的“赚钱图”!

  • 股市有三种状态:趋势、回调、随机,用对策略能赚钱。
  • 方差比率>1是趋势,<1是回调,≈1是随机。
  • 自相关系数正值是趋势,负值是回调,接近0是随机。
  • 用Python的yfinance和matplotlib,小白也能分析K线图。
  • 量化分析不是万能,结合风险管理和心态才靠谱。
⑦源码下载


Code Download
07

以上的代码可直接下载完整源文件,或在我的Google Colab中查看,内附中文构建说明。

如觉得对您有所帮助,请我喝杯咖啡。
下载地址如下:

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181462
 
15 次点击