首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >新手量化指南:用 Python + QuantDash 自动计算股票均线并寻找「黄金交叉」点

新手量化指南:用 Python + QuantDash 自动计算股票均线并寻找「黄金交叉」点

原创
作者头像
用户9138916
发布2026-07-14 15:55:58
发布2026-07-14 15:55:58
1220
举报

在股票交易中,你一定听过“均线(Moving Average)”“黄金交叉(Golden Cross)”这两个词。

  • 均线:就是把过去 N 天的收盘价加起来求个平均值,用来平滑价格的波动。
  • 黄金交叉:当短期的均线(比如 5 日均线)自下而上穿过长期的均线(比如 20 日均线)时,技术分析上通常认为这是一个“买入信号”。

以前我们看盘,得用眼睛在 K 线图上一个一个去瞅。今天,我们教大家如何用几行 Python 代码,让计算机自动帮我们算出均线,并找出所有发生“黄金交叉”的历史日期。

1. 极简代码:计算均线并找出黄金交叉

我们用 QuantDash 获取最纯净的股票日 K 线数据,然后用 Pandas 提供的 rolling 函数来计算均线。

代码语言:python
复制
import pandas as pd
from quantdash import QuantDash

# 初始化数据通道
qd = QuantDash(api_key="your_api_key")

# 获取腾讯控股 (0700.HK) 历史数据
df = qd.klines.get(symbol="0700.HK", period="1d", start_time="2025-01-01", to_dataframe=True)

# 计算 5 日均线 (MA5) 和 20 日均线 (MA20)
df['MA5'] = df['close'].rolling(window=5).mean()
df['MA20'] = df['close'].rolling(window=20).mean()

# 找出黄金交叉的位置
# 逻辑:今天 MA5 > MA20,而昨天 MA5 <= MA20
df['prev_MA5'] = df['MA5'].shift(1)
df['prev_MA20'] = df['MA20'].shift(1)

# 筛选满足黄金交叉条件的行
golden_cross_days = df[(df['MA5'] > df['MA20']) & (df['prev_MA5'] <= df['prev_MA20'])]

print("=== 腾讯控股 (0700.HK) 黄金交叉日期列表 ===")
for index, row in golden_cross_days.iterrows():
    print(f"日期: {row['timestamp']} | 收盘价: {row['close']} 元")
2. 代码原理解析(大白话版)
  • df['close'].rolling(window=5).mean():这行代码的意思是,每次盯着最近的 5 行数据(window=5),算一个平均数。Pandas 自动帮我们把全年的数据都算好了,省去了我们自己写循环累加的麻烦。
  • shift(1):把数据整体往下平移一行。这样我们就能用今天的数据和昨天的数据做对比。
3. 写在最后:从 看盘 到 量化 的第一步

通过上面这段短小的代码,你其实已经完成了一个量化策略里最核心的“信号生成(Signal Generation)”。

在传统的看盘软件里,你只能被动地看当前图表;而在 Python 里,你可以把这个逻辑推广到成百上千只股票上,在一秒钟内筛选出今天全市场有哪些股票刚刚走出了“黄金交叉”。这就是量化交易的魅力——用计算机的计算力,代替人肉眼盯盘的精力。

参考文档:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 极简代码:计算均线并找出黄金交叉
  • 2. 代码原理解析(大白话版)
  • 3. 写在最后:从 看盘 到 量化 的第一步
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档