CCI 顺势指标

CCI 指标是美国股市技术分析家唐纳德·蓝伯特 (Donald Lambert) 于 20 世纪 80 年代提出的,专门测量股价、外汇或者贵金属交易是否已超出常态分布范围。波动于正无穷大和负无穷大之间,但是又不需要以 0 为中轴线。+100 以上为超买区,-100 以下为超卖区,+100 到 -100 之间为震荡区。和其他指标一样 CCI 也包括日 CCI 指标、周 CCI 指标、年 CCI 指标以及分钟 CCI 指标等很多种类型。

CCI 指标是根据统计学原理,引进价格与固定期间的股价平均区间的偏离程度的概念,强调股价平均绝对偏差在股市技术分析中的重要性。

以日 CCI 计算为例,其计算方法有两种。

第一种计算过程如下:
CCI(N 日)=(TP-MA)÷MD÷0.015
其中,TP=(最高价 + 最低价 + 收盘价)÷3
MA= 近 N 日收盘价的累计之和÷N
MD= 近 N 日(MA-收盘价)的绝对值的累计之和÷N
0.015 为计算系数,N 为计算周期

第二种计算方法表述为中价与中价的 N 日内移动平均的差除以 0.015*N 日内中价的平均绝对偏差
其中,中价即 TP 等于最高价、最低价和收盘价之和除以 3

指标参数:

y

CCI 输出列

n

数字,移动平均周期,如 14


函数代码:


A

B

1

func CCI(A,$y,n)

=A.derive@o(:cci_tmp,:cci_tmpma,cci_abserror)

2


=A.run(avg( 最高, 最低, 收盘):cci_tmp)

3


=A.run(avg(cci_tmp[1-n:0]):cci_tmpma,cci_tmp[1-n:0].avg(abs(~-cci_tmpma)):cci_abserror)

4


=A.run((cci_tmp-cci_tmpma)/cci_abserror/0.015:${y})

5


=A.alter(;cci_tmp,cci_tmpma,cci_abserror)

将函数保存在 indicator.splx 中。

举例:

调用脚本计算浦发银行 2024 年的 CCI 指标,n 取 14。


A

B


5

=call@f("indicator.splx")

登记脚本中的函数

6

计算出源数据

7

=A6.derive(:CCI)

增加要返回的指标字段

8

=CCI(A7,CCI,14)

调用函数计算指标

运行效果:

..