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) |
调用函数计算指标 |
运行效果: