# 通达信指标公式算法释疑

# BOLL

通达信副图布林线BOLL

BOLL:MA(CLOSE,M);

UB:BOLL+2*STD(CLOSE,M);

LB:BOLL-2*STD(CLOSE,M);

假设有一组数值X?,X?,X?,......Xn(皆为实数),其平均值(算术平均值)为μ

标准差也被称为标准偏差,或者实验标准差,公式为

标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。

通达信主图布林线传统版BOLL-M

以日BOLL指标计算为例,其计算方法如下:

1、日BOLL指标的计算公式

中轨线=N日的移动平均线,上轨线=中轨线+两倍标准差,下轨线=中轨线-两倍标准差

2、日BOLL指标的计算过程

(1)计算MA,MA按SMA(CLOSE,N,1)来计算

SMA(X,N,M):X的N日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N

(2)计算标准差MD,MD=平方根N日的(C-MA)的两次方之和除以N

(3)计算MB、UP、DN线,MB=(N-1)日的MA,UP=MB+2×MD,DN=MB-2×MD

主图BOLL与副图BOLL不同的是:

1.主图BOLL的MA的算法不同

2.主图BOLL使用的平均值不是算术平均值,而是移动平均值。

# KDJ

KDJ普通版的公式为:

RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;

K:SMA(RSV,M1,1);

D:SMA(K,M2,1);

J:3*K-2*D;

KDJ传统版没有用公式表达,其计算方法如下:

# 示例:放量缩量

放量显示买入,直到最近的一次缩量后显示卖出:

EVERY(VOL>=REF(VOL,1),N) AND HHV(V,M)==V,COLORRED;
EVERY(VOL<REF(VOL,1),N) AND LLV(V,M)==V,COLORGREEN;

连续N天放量,且量为最近M天的最大成交量 
连续N天缩量,且量为最近M天的最小成交量

如果要过滤在卖点出现前有多个买点的话:

AA:=EVERY(VOL>=REF(VOL,1),N) AND HHV(V,M)==V;

BB:=EVERY(VOL<REF(VOL,1),N) AND LLV(V,M)==V;

AA AND BARSLAST(REF(AA,1))>BARSLAST(REF(BB,1)),COLORRED;

BB AND BARSLAST(REF(BB,1))>BARSLAST(REF(AA,1)),COLORGREEN;

# 示例:对应的板块的排名统计

N:=INSUM('MYFGBK','MACD',3,4);

DRAWTEXT_FIX(ISLASTBAR,0,0,0,GETNAMEOFCODE(1,FGBKZSCODE(N)));

CALCSTOCKINDEX(FGBKZSCODE(N),'MA',1);

INSORT('GNINSORT.2','KDJ',3,0);
当前股所属的第二个概念板块指数在所有概念中的KDJ指标第三个输出的排名

INSORT.横向统计

用法:INSORT(板块名称,指标名称,指标输出,升降序),

返回该股在板块成份股中某项指标输出数值的排序序号

例如:

INSORT('房地产','KDJ',3,0)表示该股的KDJ指标第三个输出即J之值在房地产板块中的排名,

最后一个参数为0表示降序排名.

第一个参数"板块名称"支持系统板块(上证A股,深证A股,沪深A股/全部A股,创业板,科创板,自选股,板块指数等),地区,行业(按系统设置的通达信二级或研究二级),概念,风格,指数,组合和自定义板块,且必须是板块名称字符串型数据。

第一个参数是常量字符串时,注意板块名称必须完全和保存在客户端的板块名称完全一致(支持HY.和GN.和MY.开头快速查找行业和概念和自定义板块,此函数计算有较大耗时,请慎用于画线指标),

如: INSORT('沪深A股','KDJ',3,0);
谨慎使用,运行相当耗时,可能引起电脑卡顿。

INSORT('HY.环境保护','KDJ',3,0);
快速查找到当前个股在环境保护行业中的kdj的第三个输出值的排名值。

第一个参数也可以是HYBLOCK等,某板块指数的STKNAME;

如:INSORT(HYBLOCK,'KDJ',3,0);获取当前个股在其所在行业板块成分股中的kdj的第三个输出值的排名值。

第一个参数为风格、概念板块这种一个股票对应有多种风格和概念板块的情况

如:
INSORT(GETNAMEOFCODE(1,FGBKZSCODE(1)),'KDJ',3,0);获取当前个股在其第一个风格板块成分股中的kdj的第三个输出值的排名值。

INSORT(GETNAMEOFCODE(1,GNBKZSCODE(1)),'KDJ',3,0);获取当前个股在其第一个概念板块成分股中的kdj的第三个输出值的排名值。

对于支持Level2行情的版本,若第一个参数为HYINSORT,则表示其所属行业板块指数在所有行业板块指数中的排名;

如:INSORT('HYINSORT','KDJ',3,0);
则表示其所属行业板块指数在所有行业板块指数中的kdj的第三个输出值的排名;

若为GNINSORT.?或FGINSORT.?,则表示其所属的第?个概念或风格板块指数在所有概念或风格指数中的排名

概念板块

如:如果在TCL科技个股界面就是ctrl+R里概念板块从上到下数,从1开始计数。

INSORT('GNINSORT.1','KDJ',3,0);
ctrl+R里看到的第一个TCL科技所属的概念板块在所有概念板块中的kdj的第三个输出值的排名

INSORT('GNINSORT.2','KDJ',3,0);
ctrl+R里看到的第二个TCL科技所属的概念板块在所有概念板块中的kdj的第三个输出值的排名

INSORT('GNINSORT.3','KDJ',3,0);
ctrl+R里看到的第三个TCL科技所属的概念板块在所有概念板块中的kdj的第三个输出值的排名

INSORT('GNINSORT.4','KDJ',3,0);
ctrl+R里看到的第四个TCL科技所属的概念板块在所有概念板块中的kdj的第三个输出值的排名

风格板块(同概念板块)

INSORT('FGINSORT.4','KDJ',3,0);
ctrl+R里看到的第四个TCL科技所属的风格板块在所有风格板块中的kdj的第三个输出值的排名

# 示例:筹码集中度选股

集中度70:=(COST(85)-COST(15))/(COST(100))*100;

集中度90:=(COST(95)-COST(5))/(COST(100))*100;集中度70<=11.00 OR
集中度90<=11.00

其他参考:

获利比例:WINNER(C)*100;

平均成本:COST(50);

集中度70:(COST(85)-COST(15))/(COST(100))*100;

M70成本上限:COST(85);

M70成本下限:COST(15);

集中度90:(COST(95)-COST(5))/(COST(100))*100;

M90成本上限:COST(95);

M90成本下限:COST(5);",

{获利盘选股}

A1:=COST(99);

EVERY(H>A1,N);

# 示例:对K线进行修饰



示例:如何实现双轴

使用STICKLINE柱图函数可以实现2种纵坐标系

例如同时显示持仓量和仓差柱(2种纵轴体系)

持仓量:VOLINSTK;

仓差:VOLINSTK-REF(VOLINSTK,1),NODRAW;

STICKLINE(仓差>0 AND C>REF(C,1),0,仓差,2,3),COLORRED;

STICKLINE(仓差>0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;

STICKLINE(仓差>0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;

STICKLINE(仓差<0 AND C>REF(C,1),0,仓差,2,3),COLORRED;

STICKLINE(仓差<0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;

STICKLINE(仓差<0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;

# 示例:取A股每天总股票数和平盘数

跌家数:"SH880005$OPEN"

涨家数:"SH880005$CLOSE"

平盘数:"SH880005$LOW"

总股票数:"SH880005$HIGH"

停牌的就是
"SH880005$HIGH"-"SH880005$OPEN"-"SH880005$CLOSE"-"SH880005$LOW"

# 关于叠加其它指标

叠加到主图的其它指标只是将副图中的线条画到主图上 由于座标系有可能完全不一样。比如你将MACD附加到主图上  MACD的纵坐标是-100到100左右 但主图K线是价格 所以只是将线条画上去 没有按纵坐标轴来对齐。我们叠加其它指标的这个功能 按的就是这种附加的模式。