本猫和物理学科的故事可谓是跌宕起伏,令人捧腹大笑。大学本科时,本猫居然在两个学期的大学物理中取得了满分100分,让我的光芒灿烂得仿佛猫界的太阳!几年后,在本校继续读研究生的时候,我偶遇了当年教授物理的年轻女教师。啊,岁月如刀,她已经不再是曾经的青春美艳了。我们互相寒暄之后,她感叹地说:“自从你之后,这几年已经没人能在大学物理两个学期上都拿到满分了。”我心中顿时油然而生一股傲气,嗯嗯,我果然把物理学变成了绝学,有种盖世无敌的感觉!

同样的,大学时我对数字信号处理(DSP)也是兴致勃勃。本科考试得了98分,让我豪情万丈,觉得DSP的世界就是我猫儿的后花园。可惜几年后读研究生,竟然发现还需要再考这科目,我顿时一头黑线。但是,机智的我立刻找到了解决办法——找本科学弟学妹借DSP复习资料。

那本复印了N多次、已经有些断续字迹的纸上,我看到了似曾相识的手写字体。令人欣喜若狂的是,原来这就是我本科时帮着班里兄弟们押题过的复习资料!几年过去了,这份宝贝居然没有失传,而是被学弟学妹们手手相传!当时的感慨真是万千啊,仿佛本猫是那个自动化系的传奇。哈哈,看来本猫的学术火炬燃烧久矣,不知不觉间已经影响了一批又一批的学子们。总结一下,我的学业就像是恐龙一样,已经完全绝种,但是我的能力却像火把一样,照亮了别人的道路。本猫的学霸光环,恐怕是不可抗拒的了!

在交易当中重度接触到物理学还是从约翰 艾勒斯的4本英文教科书开始,当我面对复杂的而市场环境时候,我理科生的背景要求我对一些有坚实理论基础得出来的结论更容易信任,而不是那些基于经验或者口口相传的“圣杯”。 艾勒斯的理论虽然艰深,但是上学时积累物理知识帮了我大忙,很多东西不仅知道还可快速写成代码。所以,各位如果想找全网最全的艾勒斯技术指标,可以到本猫的TradingView页面搜索“Ehlers”,就会出来一堆。那些都是我将艾勒斯书中的技术指标一个一个翻译成TradingView的脚本,即使是现在,本猫都佩服自己的执着和毅力。

在交易中,我深入接触物理学可不是一件容易的事。从约翰·艾勒斯(John F. Ehlers,简称JFE)的四本英文教科书开始,我就沉浸在物理学的海洋中。面对复杂的市场环境,作为一个理科生,我更倾向于相信那些基于坚实理论基础得出的结论,而不是那些基于经验或者口口相传的所谓“圣杯”。

艾勒斯的理论确实很艰深,但是幸好在学校时,我积累了大量物理知识,对我在交易中起到了很大的帮助。很多东西我不仅懂得原理,还能快速将其转化为可执行的代码。所以,各位如果有兴趣找到全网最全的艾勒斯技术指标,可以去我的TradingView页面搜索“Ehlers”,你会看到一堆相关结果。那些都是我将艾勒斯书中的技术指标一个一个翻译成了TradingView的脚本。哎呀,即使是现在,本猫都要佩服自己的执着和毅力!嘿嘿,是不是很惊讶?本猫不仅仅是个物理学牛人,还是个懂得把理论转化成实际应用的大神!在国内本猫算是将其理论研究到极致的猫界代表!但无论如何,本猫都会时刻珍惜这份特殊的能力,继续探索和利用物理学在交易中的妙用。谁知道呢?

前面都是铺垫,现在回到主题来说说,本猫在学习了艾勒斯理论之后,看到的市场和技术指标是什么样子的吧?首先艾勒斯是数字信号处理(DSP)领域的专家,他将这种方法引入到技术分析中。以下是他采用这种方法的主要理由和观点:

1. **市场价格作为时间序列数据**:JFE认为金融市场的价格数据可以视为一个离散的时间序列系统。这意味着市场价格类似于数字信号(如音频信号),由一系列随时间变化的数据点组成。
2. **市场的周期性**:JFE观察到金融市场往往呈现周期性,而数字信号处理用于分析信号中的周期性和其他成分。通过适当应用DSP技术,我们可以更准确地确定市场的周期并预测未来的价格变动。
3. **过滤噪声**:数字信号处理技术可帮助分析师过滤掉价格数据中的随机噪声,从而更清晰地观察到真正的市场趋势和模式。
4. **对周期的自适应**:与传统的固定周期指标不同,利用DSP技术开发的指标可以自适应地调整到当前的市场周期,提供更准确和及时的交易信号。
5. **滤波器和变换**:他设计了一系列的滤波器和变换,如MESA、Fisher变换等,来帮助识别和利用市场中的周期性。
6. **非线性系统**:他还认为,由于市场是一个非线性系统,传统的线性方法可能不总是有效。因此,他的技术往往考虑到市场的这种非线性特性。

关于这种方法论是否正确的问题,像所有技术分析方法一样,没有一个方法是绝对正确的。然而,JFE的方法和指标已被许多交易者和分析师所接受,并被认为是在某些市场条件下非常有效的工具。但与所有交易工具一样,应结合其他分析方法和策略使用,并始终考虑风险管理。

JFE将市场价格视为离散的时间序列系统的原因是,价格数据通常以固定的时间间隔(如每日、每小时或每分钟)报告,每个时间点都有一个具体的值。这与数字信号处理中的离散信号非常相似,其中信号也由一系列数据点组成,每个数据点在时间上都有一个固定的间隔。

如果觉得上面的太艰深,我们可以说个简单的概念来理解艾勒斯的市场物理学:你认为技术指标中的移动平均线和振荡器的本质是否一样呢?

根据艾勒斯的观点,移动平均线和震荡器在本质上是相似的。他的观点是,所有的技术指标,无论是移动平均线还是震荡器,都是从市场数据中提取某种信息的滤波器。
在他的一些工作中,JFE 指出震荡器可以看作是移动平均线的一种变体,或者更具体地说,它们都是不同类型的滤波器。例如,简单移动平均线 (SMA) 是一个低通滤波器,它允许低频的价格变动通过,而过滤掉高频的噪声。而震荡器,如RSI或MACD,可以被视为带通滤波器,它们提取特定频率范围的信号。因此,JFE 的观点是,不同的技术指标只是应用了不同的数学方法来处理和解释市场数据,但它们在本质上都是滤波器。这也是为什么他在设计指标时会采用先进的信号处理技术,如希尔伯特变换,因为这些方法可以更准确地提取市场数据中的有意义的信号。

因此,根据John F. Ehlers (JFE) 的观点,滤波器可以进行分类。他认为市场中的所有技术指标都是某种形式的滤波器。根据他的分类方法,滤波器可以分为以下几种:

1. **低通滤波器 (LPF)**:这种滤波器允许低频组件通过,而过滤掉高频组件。简单移动平均线 (SMA) 就是一个低通滤波器的例子。
2. **高通滤波器 (HPF)**:与低通滤波器相反,它允许高频组件通过,而过滤掉低频组件。
3. **带通滤波器 (BPF)**:这种滤波器只允许特定频率范围的组件通过。很多震荡器,如RSI或MACD,都可以视为某种形式的带通滤波器,因为它们通常关注价格在一个特定范围内的变动。
4. **带阻滤波器 (BRF)**:这种滤波器阻止特定频率范围的组件,而允许其他频率的信号通过。

以下是一些常见的低通滤波器技术指标:

**简单移动平均线 (SMA)**

```c
//version=4
study(title="Simple Moving Average", shorttitle="SMA", overlay=true)

length = input(20, minval=1, title="Length")
src = close

sma_value = sma(src, length)

plot(sma_value, color=color.blue, title="SMA")
```

**指数移动平均线 (EMA)**

```c
//version=4
study(title="Exponential Moving Average", shorttitle="EMA", overlay=true)

length = input(20, minval=1, title="Length")
src = close

ema_value = ema(src, length)

plot(ema_value, color=color.blue, title="EMA")
```

**加权移动平均线 (WMA)**

```c
//version=4
study(title="Weighted Moving Average", shorttitle="WMA", overlay=true)

length = input(20, minval=1, title="Length")
src = close

wma_value = wma(src, length)

plot(wma_value, color=color.blue, title="WMA")
```

**三重指数移动平均线 (TEMA)**

```c
//version=4
study(title="Triple Exponential Moving Average", shorttitle="TEMA", overlay=true)

length = input(20, minval=1, title="Length")
src = close

ema1 = ema(src, length)
ema2 = ema(ema1, length)
ema3 = ema(ema2, length)

tema_value = 3 * ema1 - 3 * ema2 + ema3

plot(tema_value, color=color.blue, title="TEMA")
```

**双重指数移动平均线 (DEMA)**

```c
//version=4
study(title="Double Exponential Moving Average", shorttitle="DEMA", overlay=true)

length = input(20, minval=1, title="Length")
src = close

ema1 = ema(src, length)
ema2 = ema(ema1, length)

dema_value = 2 * ema1 - ema2

plot(dema_value, color=color.blue, title="DEMA")
```

**Hull移动平均线 (HMA)**

```c
//version=4
study(title="Hull Moving Average", shorttitle="HMA", overlay=true)

length = input(20, minval=1, title="Length")
src = close

wma1 = wma(src, length / 2)
wma2 = wma(src, length)

hma_sqrt_length = round(sqrt(length))
hma_value = wma(wma1 - wma2, hma_sqrt_length)

plot(hma_value, color=color.blue, title="HMA")
```

这些指标都是通过对价格或其他指标的历史数据进行某种形式的平均或加权平均来工作的,因此它们都被称为低通滤波器。低通滤波器的目标是允许低频(长期)的价格趋势通过,同时过滤掉高频(短期)的噪声或波动。

而高通滤波器 (HPF) 在技术分析中不如低通滤波器 (如移动平均线) 那么常见,因为它们主要关注的是价格的快速、短暂的变化,而这种变化常常被视为市场的"噪声"。然而,在某些应用中,这种"噪声"或短期变化可能是有价值的。以下是可能被视为高通滤波器或至少具有高通滤波器特性的指标:

**Rate of Change (ROC)**:ROC 是一个测量价格变化速率的指标,它关注的是价格的快速变化。

```c
//version=4
study(title="Rate of Change", shorttitle="ROC", overlay=false)

length = input(14, minval=1, title="Length")
src = close

roc_value = (src - src[length]) / src[length] * 100

plot(roc_value, color=color.blue, title="ROC")
```

**Momentum**:与ROC相似,动量指标测量价格相对于一个过去时期的变化。

```c
//version=4
study(title="Momentum", shorttitle="Momentum", overlay=false)

length = input(14, minval=1, title="Length")
src = close

momentum_value = src - src[length]

plot(momentum_value, color=color.blue, title="Momentum")
```

**首次导数**:尽管不是一个常见的指标,但计算价格或其他指标的首次导数可以视为一个高通滤波器。这个很有意思,是数学和物理的融合,本猫计划单独写一篇文章介绍。学学交易,完全可以把数学物理知识的应用不齐全了,哈哈。

需要注意的是,上述指标可能不是真正的高通滤波器,但它们关注的是价格的快速、短暂变化,因此在某种程度上具有高通滤波器的特性。

然后,带通滤波器在技术分析中的应用不如低通和高通滤波器那么明显,但它们确实存在。带通滤波器只允许某个特定的频率范围的信号通过,同时过滤掉其他的频率。这可以帮助分析者更加集中地关注特定的市场周期。许多技术指标尽管不完全是带通滤波器(并不是100%符合物理学对于带通滤波器的定义),但它们具有类似的特性,因为它们关注特定的价格变化周期或范围。以下是一些可能具有带通滤波器特性的技术指标:

**Stochastic Oscillator**:这个指标测量当前的价格与其过去范围内的相对位置。虽然它不是一个纯粹的带通滤波器,但它确实关注一个特定的价格变化范围。

```c
//version=4
study(title="Stochastic Oscillator", shorttitle="Stoch", overlay=false)

length = input(14, minval=1, title="Length")
smoothK = input(3, minval=1, title="K Smoothing")
smoothD = input(3, minval=1, title="D Smoothing")

// 高点价格
highLine = highest(high, length)
// 低点价格
lowLine = lowest(low, length)
// 当前收盘价
closeLine = close

// 随机指标公式
k = sma(100 * (closeLine - lowLine) / (highLine - lowLine), smoothK)
d = sma(k, smoothD)

plot(k, color=color.blue, title="K")
plot(d, color=color.red, title="D")
```

**Relative Strength Index (RSI)**:RSI测量价格的上升和下降的相对强度,并通常在0到100的范围内变化。

```c
//version=4
study(title="Relative Strength Index", shorttitle="RSI", overlay=false)

length = input(14, minval=1, title="Length")
overboughtLevel = input(70, title="Overbought Level")
oversoldLevel = input(30, title="Oversold Level")

// 查找价格的变化
priceChange = close - close[1]

// 计算上涨和下跌价差
upPrice = rma(max(priceChange, 0), length)
downPrice = rma(-min(priceChange, 0), length)

// 计算相对强弱指数
rsi = 100 - (100 / (1 + upPrice / downPrice))

// 标记超买和超卖区域
overboughtArea = plot(overboughtLevel, color=color.red, title="Overbought Area")
oversoldArea = plot(oversoldLevel, color=color.green, title="Oversold Area")

// 标记超买和超卖信号
rsiLine = plot(rsi, color=color.blue, title="RSI")
hline(overboughtLevel, linestyle=hline.style_dotted, color=color.red, title="Overbought Level Line")
hline(oversoldLevel, linestyle=hline.style_dotted, color=color.green, title="Oversold Level Line")

// 标记超买和超卖信号的背景
bgcolor(rsi >= overboughtLevel ? color.red : na, transp=90, title="Overbought Signal Background")
bgcolor(rsi <= oversoldLevel ? color.green : na, transp=90, title="Oversold Signal Background")
```

**MACD (Moving Average Convergence Divergence)**:MACD虽然基于两个移动平均值的差值,但其关注的是这两个平均值之间的特定关系,从而具有某种带通特性。

```c
//version=4
study(title="MACD", shorttitle="MACD", overlay=false)

// 定义MACD指标的参数
shortLength = input(12, minval=1, title="Short Length")
longLength = input(26, minval=1, title="Long Length")
signalSmoothing = input(9, minval=1, title="Signal Smoothing")

// 计算快线指标
shortMA = ema(close, shortLength)
// 计算慢线指标
longMA = ema(close, longLength)

// 计算MACD线
macdLine = shortMA - longMA
// 计算信号线
signalLine = ema(macdLine, signalSmoothing)

// 计算差离率(Divergence)
divergence = macdLine - signalLine

// 绘制MACD线、信号线和差离率
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(divergence, color=color.green, title="Divergence")
```

**Commodity Channel Index (CCI)**:CCI测量商品或股票价格与其平均价格的偏差。

```c
//version=4
study(title="Commodity Channel Index", shorttitle="CCI", overlay=false)

length = input(20, minval=1, title="Length")
overboughtLevel = input(100, title="Overbought Level")
oversoldLevel = input(-100, title="Oversold Level")

// 计算典型价格
typicalPrice = (high + low + close) / 3

// 计算平均偏差
meanDeviation = sma(abs(typicalPrice - sma(typicalPrice, length)), length)

// 计算商品通道指数
cci = (typicalPrice - sma(typicalPrice, length)) / (0.015 * meanDeviation)

// 标记超买和超卖区域
overboughtArea = plot(overboughtLevel, color=color.red, title="Overbought Area")
oversoldArea = plot(oversoldLevel, color=color.green, title="Oversold Area")

// 标记超买和超卖信号
cciLine = plot(cci, color=color.blue, title="CCI")
hline(overboughtLevel, linestyle=hline.style_dotted, color=color.red, title="Overbought Level Line")
hline(oversoldLevel, linestyle=hline.style_dotted, color=color.green, title="Oversold Level Line")

// 标记超买和超卖信号的背景
bgcolor(cci >= overboughtLevel ? color.red : na, transp=90, title="Overbought Signal Background")
bgcolor(cci <= oversoldLevel ? color.green : na, transp=90, title="Oversold Signal Background")
```

以上列出的一些指标可能并不是纯粹的带通滤波器,但它们在某种程度上都关注了价格数据的一个特定范围或周期。这些带通滤波器指标经常用于确定市场的超买或超卖状态,或者识别潜在的市场转折点。超买和超卖信号常常是识别它们的标志。

带阻滤波器(或称为陷波滤波器)在技术分析中的直接应用并不常见。这种滤波器的目的是抑制或过滤掉一个特定频率范围内的信号,同时允许其他频率的信号通过。99%的指标都不具备纯粹的带阻滤波器特性。但考虑到带阻滤波器的工作原理,也确实有类似的,例如:
**高低差**:某些策略和指标可能会使用高价和低价的差异来衡量日内的价格变化。这种方法可以在一定程度上过滤掉日内的噪声,特别是当市场交易范围较窄时。
然而,上述的这些指标并不是真正设计为带阻滤波器的。在实际的金融市场分析中,纯粹的带阻滤波器应用较少,更多的是低通、高通或带通滤波器的应用。如果你有特定的需求或目的,可能需要定制的策略或指标来实现类似于带阻滤波器的效果。

本猫之所以将高低差在某种程度上认为它是一个带阻滤波器,因为它去除了日内的具体价格变动,并保留了更广泛的波动范围。然而,这种类比是相对的,因为在传统的信号处理中,带阻滤波器通常是基于频率的,而不是基于时间的,如高低差所做的那样。总之,虽然高低差不是传统意义上的带阻滤波器,但从功能的角度来看,它确实在某种程度上提供了类似的效果,即过滤掉日内的具体价格动态,只保留其波动范围。

根据我们之前的讨论以及技术指标的通常特性,在本猫眼中看到的技术指标按如下方式进行分类:

**低通滤波器**: 这些滤波器允许长期(低频)趋势通过,同时抑制短期(高频)的噪声。

- 移动平均线(如:SMA, EMA, WMA等)
- Bollinger Bands

**高通滤波器**: 这些滤波器允许短期(高频)的波动通过,同时减少长期(低频)的趋势。

- 一些差异或变化率指标,例如Momentum或Rate of Change(这些指标可以视为强调价格的短期变化)

**带通滤波器**: 这些滤波器强调某一特定的时间范围或周期的价格变化,同时抑制太长或太短的时间范围的变化。

- Stochastic Oscillator(关注特定的价格变化范围)
- RSI(考虑了一个特定的时间窗口内的价格动态)
- MACD(虽然它的核心是基于两个EMA之间的差值,但它在某种程度上强调了特定的时间范围内的价格动态)

**带阻滤波器**: 在常用的技术指标中,真正的带阻滤波器并不常见。但高低差可以近似视为具有带阻特性,因为它旨在去除长期趋势以更好地分析价格的短期或周期性波动。

需要指出的是,这些分类是基于滤波器概念的广义解释,并结合技术指标的常见用途和特性。许多技术指标在设计时并不是以滤波为主要目的,因此,将它们严格分类为某种滤波器类型可能会有一些模糊的地方。但是,无论如何,看了今天的文章是否给你提供了一个不一样的视角呢? 如果是的话,点赞给本猫哦。
blackcat1402Technical Indicators

Avoid losing contact!Don't miss out! The first and most important thing to do is to join my Discord chat now! Click here to start your adventure: discord.com/invite/ZTGpQJq 防止失联,请立即行动,加入本猫聊天群: discord.com/invite/ZTGpQJq
Also on:

Related publications

Disclaimer