怎么找出不规则波形的下行低点呢?

昨天锋哥讲到了说投资者不要定投不要定投。那么遵循投资的基本第一原则:低买高卖。今天我们讨论一个数学或者说物理问题,如何找出不规则波形的下行低点呢?

大致有以下几种方法: 

1. 导数法:极值点分析

  • 一阶导数与二阶导数结合 通过计算波形函数的一阶导数 $f'(x)$ 和二阶导数 $f''(x)$,判断波谷位置:
  • $f'(x) = 0$$f''(x) > 0$ 时,该点为局部极小值(波谷)。
  • 适用场景:连续可导的波形,需注意离散数据需通过差分近似导数。
  • 离散数据的导数处理 对离散时间序列数据,可通过差分法计算一阶导数(例如 $y_i' = y_i - y_{i-1}$),并结合二阶差分确认波谷。

2. 移动窗口极值检测

  • LLV(最低值函数) 在股票分析中常用函数如 LLV(LOW, N),表示在最近 N 个周期内寻找最低价的最低值。例如,设定时间窗口(如 10 日),动态捕捉波谷。
  • 公式示例谷底值 = LLV(最低价, 10),直接输出窗口内的最低点。
  • 滑动窗口统计法 通过滑动窗口计算局部最小值,例如每 5 个数据点为一个窗口,取其中最小值作为候选波谷,再结合相邻窗口验证连续性。

3. 算法库与工具应用

  • SciPy 的 find_peaks 函数 通过调整参数(如 height 高度阈值、distance 波谷间最小距离)检测波谷。需将数据取反后检测波峰,间接得到波谷位置。 代码示例
from scipy.signal import find_peaks
valleys, _ = find_peaks(-data, height=-threshold)  # 数据取反检测波峰即为原数据波谷
  • 动态时间规整(DTW) 适用于非周期性波形,通过匹配波形与参考模板的形态差异,定位低点。常用于语音识别和生物信号处理。

4. 统计模型与滤波技术

  • Z-Score 异常值检测 计算数据点的 Z-Score(标准化得分),当值低于设定阈值(如 -2)时,视为异常低点。需结合移动平均和标准差计算。
  • 卡尔曼滤波或低通滤波 通过滤波算法(如 Savitzky-Golay 滤波器)平滑噪声,凸显波形趋势,再结合极值检测方法定位波谷。

5. 技术指标与模式识别

  • 支撑位与趋势线分析 在股票分析中,通过连接历史低点绘制趋势线,当价格触及趋势线且伴随成交量萎缩时,可能形成下行低点。
  • 指标背离策略 例如价格创新低而 MACD 或 RSI 未同步创新低,形成底背离,提示潜在波谷。 公式示例(MACD 背离):
背离信号 = (股价新低 - LLV(收盘价, N)) - (MACD新低 - LLV(MACD, N))

6. 动态优化参数与验证

  • 参数自适应调整 窗口大小(如 N 值)需根据波形周期动态调整。例如,高频波动数据需较小的窗口,长周期趋势则用较大窗口。
  • 多条件验证 结合成交量、市场情绪(如恐慌指数)或其他指标交叉验证波谷有效性,减少误判。

 

方法

适用场景

优缺点

导数法

连续可导的平滑波形

精确但需处理噪声,对离散数据需差分近似。

移动窗口极值(LLV)

股票、周期性数据

简单高效,依赖窗口参数选择。

算法库(如 SciPy)

不规则波形、编程环境

灵活可调参数,需代码实现。

统计模型(Z-Score)

异常低点检测

依赖分布假设,需结合趋势分析。

技术指标(背离、趋势线)

金融市场分析

综合性强,需多指标验证。

 

实践建议:对噪声较多的数据,可先滤波再结合移动窗口极值检测;对非周期波形,优先使用动态时间规整或算法库工具。