DSP 的本质是“价格减去其趋势”,从而剥离出纯周期波动 。它像一面滤镜,把长期趋势的光谱过滤掉,只留下市场节奏的“心跳”。
参数优化小技巧 在通达信“公式管理器”里把 N 设为可调参数: N:PARAM(1,100,14); 然后在 K 线图上右键→“调整指标参数”,即可实时滑动观察不同周期下的 DSP 形态,找到最适合当前品种的周期。 灵光一闪 把 DSP 当作“价格的呼吸频率”。当呼吸变浅(DSP 靠近 0),行情往往酝酿突破;当呼吸急促(DSP 远离 0),趋势可能随时反转。 DSP叠加布林带→ DSP与MACD共振→ python原代码 # -*- coding: utf-8 -*-# Detrended Synthetic Price (DSP)from pandas_ta_classic.overlap.ema import emafrom pandas_ta_classic.utils import get_offset, verify_seriesdef dsp(close, length=None, offset=None, **kwargs): """Indicator: Detrended Synthetic Price (DSP)""" # Validate arguments length = int(length) if length and length > 0 else 14 close = verify_series(close, length) offset = get_offset(offset) if close is None: return # Calculate Result # Calculate EMA ema_value = ema(close, length=length) # Detrend by subtracting EMA dsp = close - ema_value # Offset if offset != 0: dsp = dsp.shift(offset) # Handle fills if "fillna" in kwargs: dsp.fillna(kwargs["fillna"], inplace=True) if "fill_method" in kwargs: if kwargs["fill_method"] == "ffill": dsp.ffill(inplace=True) elif kwargs["fill_method"] == "bfill": dsp.bfill(inplace=True) # Name and Categorize it dsp.name = f"DSP_{length}" dsp.category = "cycles" return dspdsp.__doc__ = """Detrended Synthetic Price (DSP)Detrended Synthetic Price removes the trend component from price data to revealthe cyclical component. It's useful for cycle analysis and identifying periodicpatterns in price movement.Sources: https://www.mesasoftware.com/papers/TheInverseFisherTransform.pdf Cycle Analytics for Traders by John F. EhlersCalculation: Default Inputs: length=14 EMA = EMA(close, length) DSP = close - EMAArgs: close (pd.Series): Series of 'close's length (int): The EMA period. Default: 14 offset (int): How many periods to offset the result. Default: 0Kwargs: fillna (value, optional): pd.DataFrame.fillna(value) fill_method (value, optional): Type of fill methodReturns: pd.Series: New feature generated."""
01
核心原理:把价格拆成“趋势+周期” 任何价格序列都可以被拆解为:Price = Trend + Cycle + Noise DSP 用 EMA 作为趋势代理,直接做减法:DSP = Close − EMA(Close, N) 结果是一条围绕 0 轴震荡的曲线,正值代表价格高于趋势(潜在超买),负值代表价格低于趋势(潜在超卖)。02
设计要点 周期 N:常用 14 或 20,越大越平滑,越小越敏感。 0 轴:多空分水岭,DSP 上穿 0 轴视为多头信号,下穿为空头信号。 极值带:可叠加 ± 通道做超买超卖。03
通达信完整源码 通达信公式语言 { 参数 } N:=14; { 周期,可调 } M:=3; { 信号平滑 } { 计算 EMA } EMA1:=EMA(C,N); { 计算 DSP } DSP:=C - EMA1; { 信号线(可选) } DSP_MA:=MA(DSP,M); { 画线 } DSP, COLORWHITE; DSP_MA, COLORYELLOW; { 0 轴 } 0, COLORGRAY; { 超买超卖参考线(示例 ±2%) } UPPER: STD(DSP,100)*2, COLORRED; LOWER: -STD(DSP,100)*2, COLORGREEN; { 图标提示 } DRAWICON(CROSS(DSP,0),LOWER,1); { 金叉 } DRAWICON(CROSS(0,DSP),UPPER,2); { 死叉 }
04
实战用法速查表| 场景 | DSP 形态 | 交易提示 |
|---|---|---|
| 趋势启动 | DSP 上穿 0 轴 | 顺势做多 |
| 趋势衰竭 | DSP 下穿 0 轴 | 减仓或做空 |
| 震荡反转 | DSP 触及 ± 后折返 | 高抛低吸 |
| 背离确认 | 价格新高,DSP 不新高 | 警惕见顶 |
追加内容
本文作者可以追加内容哦 !