blackcat1402

我把波动指数给自适应了

SZSE:002354   天娱数科

**关于波动指数**
波动指数(Choppines Index)是由澳大利亚商品交易员 Bill Dreiss 开发的波动率指标,用于指示市场是趋势还是区间波动。 值介于 0 和 100 之间,低值表示趋势强劲,高值表示盘整。它旨在确定市场是震荡(盘整)还是趋势。 这个指标虽然非常简单,在TradingView里面只是一行代码,但是它确实所有技术指标里很罕见地能够区分盘整和趋势的技术指标。不过也值得注意,它只区分盘整和趋势,不区分向上和向下,所以只能作为交易系统里的“择时要素”。

人们经常使用斐波那契值作为趋势和范围市场的阈值:

- 波动指数值低于 38.2 表示趋势;
- 高于 61.8 的值表示盘整。
波动指数不预测未来方向,它只是衡量当前趋势状态的一个指标。波动指数使用 1 - 100 的等级,当值接近 100(超过 61.80)时,市场被认为是波动的,当值低于 38.20 时,市场被认为是趋势。

**噪声问题**
我长期以来一直在研究和使用波动指数类型指标。 然而,传统的方法存在几个问题。传统的波动指标的问题之一是噪声或纹波太明显。 众所周知,平滑滤波是个好方法。但是波动指数是极其简单的“单行”指标, 几乎没有魔改它的自由度。 经过思考后,我选择引入自适应算法,使“length”参数自适应,在一定程度上平滑波动指标指标。 同时,我也使用 ALMA 来对其输出进行二次平滑滤波。其中,我使用了我发布的 dc_ta 库,它收集了几个埃勒主控周期的算法,使许多指标自适应成为可能。


**自适应波动指数源代码**
这个技术指标我开源发布在TradingView社区,链接如下:


这个指标的源代码,我贴在如下:
```c
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org/MPL/2.0/
// © blackcat1402
//@version=5
indicator(title=" L1 Adaptive Choppiness Index", shorttitle="ACHOP", format=format.price, precision=2, timeframe="", timeframe_gaps=true)
import blackcat1402/dc_ta/2 as dc
CycPart = input.float(0.25, minval=0.00001, step=0.05)
length = math.ceil(dc.EhlersHoDyDC(close,CycPart))
ci = ta.alma(100 * math.log10(math.sum(ta.atr(1), length) / (ta.highest(length) - ta.lowest(length))) / math.log10(length),5,0.85,6)
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(ci, "CHOP", color=color.yellow, offset = offset)
band1 = hline(61.8, "Upper Band", color=#787B86, linestyle=hline.style_dashed)
hline(50, "Middle Band", color=color.new(#787B86, 50))
band0 = hline(38.2, "Lower Band", color=#787B86, linestyle=hline.style_dashed)
fill(band1, band0, color = color.rgb(33, 150, 243, 90), title = "Background")
```

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
免责声明

这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。