这个python案例如何看这次三线距离保持?

wen python案例 3

本文目录导读:

这个python案例如何看这次三线距离保持?

  1. 先明确“三线距离保持”指什么
  2. Python里怎么看结果
  3. 判断“保持得好不好”的要点
  4. 如果你能贴出代码

你提到的“三线距离保持”通常出现在通达信/同花顺等股票软件的公式指标里,而Python案例一般是用 pandas 复现这类逻辑,由于你没有贴出具体代码,我按最常见的几种理解来说明如何“看”这个结果。

先明确“三线距离保持”指什么

常见有两种定义:

定义A(均线粘合/距离保持) 三条均线(如 MA5、MA10、MA20)之间的相对距离保持在一个小区间内,即:

  • abs(MA5 - MA10) / MA10 < 阈值
  • abs(MA10 - MA20) / MA20 < 阈值
  • 且这种状态连续N天成立 → “保持”

定义B(三线距离变化率) 三条线两两距离的变化幅度很小,即距离“稳定”,不是粘合而是平行。

Python里怎么看结果

假设你的代码大致是:

df['ma5'] = df['close'].rolling(5).mean()
df['ma10'] = df['close'].rolling(10).mean()
df['ma20'] = df['close'].rolling(20).mean()
df['d1'] = (df['ma5'] - df['ma10']).abs() / df['ma10']
df['d2'] = (df['ma10'] - df['ma20']).abs() / df['ma20']
df['keep'] = (df['d1'] < 0.01) & (df['d2'] < 0.01)

看“保持”的连续性

单纯 keep==True 只说明当天满足,“保持”要看连续天数:

# 连续满足天数
df['keep_days'] = df['keep'].groupby((~df['keep']).cumsum()).cumsum()

然后看:

df[df['keep_days'] >= 3]   # 连续3天以上保持

看距离是否真的“稳定”

只看是否小于阈值不够,要看距离序列的波动:

# 最近20天距离的稳定性
df['d1_std'] = df['d1'].rolling(20).std()
df['d2_std'] = df['d2'].rolling(20).std()

std 小 → 距离保持得好;std 大 → 距离在扩张/收缩。

看方向:是粘合还是发散

df['d1_slope'] = df['d1'].diff()   # 正=发散,负=收敛
  • d1、d2 都小且 slope≈0 → 三线平行保持
  • d1、d2 都小且 slope<0 → 正在粘合(可能是变盘前)
  • d1、d2 变大 → 距离被打破

可视化最直观

import matplotlib.pyplot as plt
fig, ax = plt.subplots(2,1, figsize=(12,8), sharex=True)
ax[0].plot(df['ma5'], label='MA5')
ax[0].plot(df['ma10'], label='MA10')
ax[0].plot(df['ma20'], label='MA20')
ax[0].legend()
ax[1].plot(df['d1'], label='|MA5-MA10|/MA10')
ax[1].plot(df['d2'], label='|MA10-MA20|/MA20')
ax[1].axhline(0.01, color='r', ls='--')  # 阈值线
ax[1].legend()
plt.show()

看图上:

  • 上图三线是否平行/贴近
  • 下图两条距离曲线是否长期在阈值线下方且平稳

判断“保持得好不好”的要点

观察项 保持好 保持差/将破坏
距离值 长期 < 阈值 频繁穿越阈值
距离std 小 大
距离斜率 ≈0 明显上升(发散)
连续天数 长 短、断续
三线方向 同向 交叉、缠绕

如果你能贴出代码

我可以直接帮你:

  1. 指出代码里“保持”的判断逻辑是否正确
  2. 加一个“连续保持天数 + 稳定性评分”的列
  3. 给出可视化模板,直接跑出图来看

你把那段 Python 代码(或它对应的公式描述)发上来,我按你的实际字段名改。

抱歉,评论功能暂时关闭!