怎么找出不规则波形的下行低点呢?
昨天锋哥讲到了说投资者不要定投不要定投。那么遵循投资的基本第一原则:低买高卖。今天我们讨论一个数学或者说物理问题,如何找出不规则波形的下行低点呢?
大致有以下几种方法:
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) |
异常低点检测 |
依赖分布假设,需结合趋势分析。 |
技术指标(背离、趋势线) |
金融市场分析 |
综合性强,需多指标验证。 |
实践建议:对噪声较多的数据,可先滤波再结合移动窗口极值检测;对非周期波形,优先使用动态时间规整或算法库工具。