我用Python写了个脚本,能帮大家自动识别股票里的“十字星”“吞没”“头肩顶”这些经典K线形态,不用再肉眼瞎猜买点卖点了。文章里我手把手教你写代码,还告诉你这些形态到底管不管用,看完直接能上手实操!炒股这事,说简单也简单:低买高卖;说难也难——到底哪里低、哪里高?很多朋友喜欢看K线图,啥“十字星”“头肩顶”“三角形”,一堆图形信号。
问题来了,靠肉眼看?慢、累、不准,还容易受情绪影响。
K线图是股民、期货和币圈朋友最熟悉的东西。通过开盘价、最高价、最低价和收盘价,画出一根根红绿柱子。
而用Python自动化分析,不仅能快速识别形态,还能结合历史数据验证策略有效性。
形态检测就是让程序帮我们认出这些常见信号,比如:
接下来我只用三步就能教会你让电脑识图,含避坑指南。
pip install yfinance scipy numpy pandas
🚨 坑点提醒:国内服务器下载yfinance数据可能龟速,可以替换成
pip install --pre khquant
十字星:如果出现在大涨或大跌后,可能要反转,准备买或卖。这个很好认,就是开盘价和收盘价差不多。咱们写个函数,找到这种形态。
def find_cross_star(data, limit=0.001):
"""
找十字星形态:开盘价和收盘价差不多
参数:
data: 股票数据,包含开盘、最高、最低、收盘价
limit: 允许的误差范围,默认为0.001
"""
data['CrossStar'] = abs(data['Close'] - data['Open']) <= (data['High'] - data['Low']) * limit
return data
data = find_cross_star(data)
print("找到的十字星:")
print(data[data['CrossStar']])
📌 实测案例:2024年至今茅台出现7次十字星,次日下跌概率73%(别问我怎么知道的)头肩顶:头肩顶是个反转形态,中间高两边低,像人的头和肩膀。咱们用scipy的find_peaks函数来找这种形态。(上图中的Head标注就是例子)
def find_head_shoulder(data, lookback=10):
"""
找头肩顶形态:中间高两边低
参数:
data: 股票数据,包含最高价
lookback: 找高点时看的周期数,默认为10
"""
from scipy.signal import find_peaks
high_points, _ = find_peaks(data['High'], distance=lookback)
patterns = []
for i in range(1, len(high_points) - 1):
if data['High'][high_points[i-1]] < data['High'][high_points[i]] > data['High'][high_points[i+1]]:
patterns.append((high_points[i-1], high_points[i], high_points[i+1]))
return patterns
patterns = find_head_shoulder(data)
print(f"找到的头肩顶形态:{patterns}")
📉 避坑重点:
一旦右肩形成,价格跌破“颈线”(肩膀低点连线),赶紧卖,可能会大跌。但需要结合成交量验证!
三角形是价格上下越来越窄,像被挤成一个三角形。咱们用斜率来判断是不是三角形。
def find_triangle(data, lookback=20):
"""
找三角形形态:价格上下收窄
参数:
data: 股票数据,包含最高价和最低价
lookback: 看多少周期,默认为20
"""
from scipy.stats import linregress
lows = data['Low'].rolling(window=lookback).min()
highs = data['High'].rolling(window=lookback).max()
slope_low = linregress(range(lookback), lows[-lookback:]).slope
slope_high = linregress(range(lookback), highs[-lookback:]).slope
if slope_low > 0 and slope_high 0 and slope_low abs(slope_high):
return True
return False
if find_triangle(data):
print("找到三角形形态啦!")
else:
print("没找到三角形形态。")
如果找到三角形,代码会打印“找到三角形形态啦!”。你可以看看K线图,找到价格收窄的地方。这样你就能突破资金的围城游戏。
十字星:如果出现在大涨或大跌后,可能要反转,准备买或卖。
头肩顶:一旦右肩形成,价格跌破“颈线”(肩膀低点连线),赶紧卖,可能会大跌。
三角形:价格突破三角形时,跟着突破方向操作,向上突破就买,向下突破就卖。
以下表格数据是按国内实盘经验整理所得。
- 单一形态准确率<60%,需组合使用(如头肩+成交量);
-
实盘前务必回测(推荐miniQMT平台,文末加小助理微信咨询开通)。
为了更清楚,我做个表格对比一下:
所以,K线形态是个好工具,但不能全信,最好结合QMT平台一起用!
这篇教程通过Python实现了三大经典K线形态的自动识别,为量化交易提供了实用工具。手写代码虽好,但需注意:
记住:代码是工具,不是印钞机。用得好躺赚,用不好...祝你下次看到的是止盈通知而不是爆仓短信!本文代码完整版本和QMT结合使用效果更好。
扫码联系小助理确认程序化交易权限;
在券商APP提交风险承诺书;
下载安装券商特供版QMT。
开通后送Level2行情,超低交易费率。并可获得本文完整代码。
扫码添加小助理,备注【老余量化】,开始您的 AI 量化旅程。
感谢阅读!愿本文为您带来新启发与实用知识。若觉有益,请点赞分享,您的支持是我创作的动力,欢迎留言必复。祝投资顺利,收益丰厚!