最新最全通达信指标公式编写教程.docx
《最新最全通达信指标公式编写教程.docx》由会员分享,可在线阅读,更多相关《最新最全通达信指标公式编写教程.docx(37页珍藏版)》请在冰豆网上搜索。
最新最全通达信指标公式编写教程
公式系统(初级)
1.公式类型说明
调出公式管理器:
功能→专家系统→公式管理器
公式类型分为四大类:
技术指标公式、条件选股公式、交易系统公式、五彩K线公式。
1.1技术指标公式
我们在技术分析界面中见到的指标为技术指标公式,比如MA,KDJ,MACD等;可以通过公式管理器编写技术指标公式,在公式管理器界面选择技术指标公式,点击右边的“新建”就可进入技术指标公式编辑区。
如下图:
在指标公式编辑区,可以通过“引入指标公式”,在已有指标的基础上修改指标公式,也可以通过插入函数来实现指标公式的编写;编写完后测试公式,测试通过后退出,输入公式名称就可调出指标公式使用。
1.2条件选股公式
利用条件选股公式可以把符合一定技术形态的个股选出来,首先在公式管理器中建立条件选股公式,再通过“条件选股”调用条件选股公式。
条件选股调出:
功能→选股器→条件选股
1.3交易系统公式
编写好交易系统公式后,可以叠加到K线上,交易系统自动列出买卖操作信号。
交易系统公式调出操作如下:
在K线界面点击鼠标右键,选择交易系统指标,如下图:
选择一交易系统,点击“确定”,交易系统就会叠加在K线上面了。
如下图:
1.4.五彩K线公式
编写好五彩公式后,可以叠加到K线上,会把特殊的K线形态用不同的颜色标识出来。
五彩K线公式调出操作如下:
在K线界面点击鼠标右键,选择五彩K线指示,如下图:
选择一五彩K线,点击“确定”,五彩K线就会叠加在K线上面了。
如下图:
2.公式函数的使用
函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。
我们在公式编辑器中选择插入函数,就可以看到里面有许多的函数,我们在附录中有一个简表,大家可以到那里去检索。
如下图:
例一:
一根K线有四个价格组成:
最高价:
HIGH
收盘价:
CLOSE
最低价:
LOW
开盘价:
OPEN
成交量:
VOL
成交额:
AMO
例二:
两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉:
CROSS(X,Y)
假如下图中的两条均线一条名叫X,另外一条叫Y
CROSS(X,Y)表示X向上穿过了Y
CROSS(Y,X)表示Y向上穿过了X
例三:
前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?
REF(X,M)
例如:
REF(Close,5)表示5天前的收盘;
REF(Vol,10)表示10天前的成交量;
这里的M就是参数。
什么是参数?
比如讲:
10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。
参数需要名字,例如M就不错。
还要规定参数的范围,例如1日至260日。
这样我们就可以在1到260之间任意调节M的值了,M最常用的数填在“缺省”一栏,例如你最喜欢用10日均线,那就填10吧。
例四:
如果我想把两个条件并列在一起怎么办?
AND
XANDY就表示条件X和条件Y
3.公式编写举例
3.1均线指标编写
进入公式管理器,新建一技术指标公式
依次点击菜单“功能→专家系统→公式管理器”,进入公式管理器界面。
如下图:
左边的树型列表中选择技术指标公式下面的“均线型”,点击右边的“新建”,就会进入公式编辑界面,如下图:
填写完公式名称,公式描述,点击“插入函数”,选择“简单移动平均”,简单移动平均函数的用法会在对话框下边列出来,点击“确定”按钮,对应的函数会在公式编辑框内显示出来。
如下图所示:
填写完MA函数的两个参数,第一个参数填写收盘价,收盘价在公式函数中用C表示,第二个参数填写均线日期,可以直接录入一数字,最后用分号结尾(注:
公式编写涉及到符号时用英文字符)。
如下图所示:
录入后,下面的动态翻译区会自动翻译公式的意义,“收盘价的10日简单移动平均”,这样一条10日均线的指标就形成了。
编辑器区的相关说明如下:
公式类型:
对应的公式可选择加入不同的类型,设定后查看公式时将会在对应的分类项下列出来;
画线方法:
选择副图,指标将会在副图区显示,选择主图叠加,指标将会在主图区显示(如常用指标MA就是主图指标),也可选择在副图上叠加K线,美国线,收盘站线。
坐标线位置:
默认的是自动,系统自动根据指标值的范围设定的区间,如上图的0.60,0.40,0.2,0,-0.2,0.00,-0.2;可以手动的设置坐标间隔,用分号分开,手动设置后,默认的将会没有。
额外Y轴分界:
在指标上加上一些白色的横线,如上图所示。
点击“测试公式”,若显示测试通过,点击“确定”按钮保存公式。
调出公式时,键盘输入公式名字JX1回车,如下图所示:
3.2简单条件选股公式编写
下面编写一选股公式,要求选出“股价小于每股净资产”的个股。
进入公式管理器,新建一条件选股公式
依次点击菜单“功能→专家系统→公式管理器”,进入公式管理器界面。
如下图:
选择左边树型列表中条件选股公式下面的其它类型,点击“新建”,如下图:
输入公式名称,公式描述,如下图所示:
点“插入函数”,选择“收盘价”,点击“确定”,对应的函数就到了编辑区,如下图所示:
录入空格,输入小于号, 再点“插入函数”,在财务函数中找到每股净资产放到后面,以分号结尾,如下图所示:
点击“测试公式”,若显示测试通过,点击“确定”按钮保存公式。
4.附公式函数列表
4.1行情函数
HIGH最高价
返回该周期最高价。
用法:
HIGH
H最高价
返回该周期最高价。
用法:
H
LOW最低价
返回该周期最低价。
用法:
LOW
L最低价
返回该周期最低价。
用法:
L
CLOSE收盘价
返回该周期收盘价。
用法:
CLOSE
C收盘价
返回该周期收盘价。
用法:
C
VOL成交量
返回该周期成交量。
用法:
VOL
V成交量
返回该周期成交量。
用法:
V
OPEN开盘价
返回该周期开盘价。
用法:
OPEN
O:
开盘价
返回该周期开盘价。
用法:
O
ADVANCE上涨家数
返回该周期上涨家数。
用法:
ADVANCE (本函数仅对大盘有效)
DECLINE下跌家数
返回该周期下跌家数。
用法:
DECLINE (本函数仅对大盘有效)
AMOUNT成交额
返回该周期成交额。
用法:
AMOUNT
ASKPRICE委卖价
返回委卖1--委卖3价格。
用法:
ASKPRICE(N) N取1—3。
(本函数仅个股在分笔成交分析周期有效)
ASKVOL委卖量
返回委卖1--委卖3量。
用法:
ASKVOL(N) N取1—3。
(本函数仅个股在分笔成交分析周期有效)
BIDPRICE委买价
返回委买1--委买3价格。
用法:
BIDPRICE(N) N取1—3。
(本函数仅个股在分笔成交分析周期有效)
BIDVOL委买量
返回委买1--委买3量。
用法:
BIDVOL(N) N取1—3。
(本函数仅个股在分笔成交分析周期有效)
BUYVOL主动性买盘
返回主动性买单量。
用法:
BUYVOL 当本笔成交为主动性买盘时,其数值等于成交量,否则为0。
(本函数仅个股在分笔成交分析周期有效)
SELLVOL主动性卖盘
返回主动性卖单量。
用法:
SELLVOL 当本笔成交为主动性卖盘时,其数值等于成交量,否则为0。
(本函数仅个股在分笔成交分析周期有效)
ISBUYORDER主动性买单
返回该成交是否为主动性买单。
用法:
ISBUYORDER 当本笔成交为主动性买盘时,返回1,否则为0。
(本函数仅个股在分笔成交分析周期有效)
ISSELLORDER主动性卖单
返回该成交是否为主动性卖单。
用法:
ISSELLORDER 当本笔成交为主动性卖盘时,返回1,否则为0。
(本函数仅个股在分笔成交分析周期有效)]
4.2时间函数
DATE日期
取得该周期从1900以来的年月日。
用法:
DATE 例如函数返回1000101,表示2000年1月1日。
TIME时间
取得该周期的时分秒。
用法:
TIME 函数返回有效值范围为(000000-235959)。
YEAR年份
取得该周期的年份。
用法:
YEAR
MONTH月份
取得该周期的月份。
用法:
MONTH 函数返回有效值范围为(1-12)。
WEEK星期
取得该周期的星期数。
用法:
WEEK 函数返回有效值范围为(0-6),0表示星期天。
DAY日期
取得该周期的日期。
用法:
DAY 函数返回有效值范围为(1-31)。
HOUR小时
取得该周期的小时数。
用法:
HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0。
MINUTE分钟
取得该周期的分钟数。
用法:
MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0。
FROMOPEN分钟
求当前时刻距开盘有多长时间。
用法:
FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。
例如:
FROMOPEN 当前时刻为早上十点,则返回31。
4.3引用函数
DRAWNULL无效数
返回无效数。
用法:
DRAWNULL
例如:
IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL) 表示下跌时分析图上不画线。
BACKSET向前赋值
将当前位置到若干周期前的数据设为1。
用法:
BACKSET(X,N) 若X非0,则将当前位置到N周期前的数值设为1。
例如:
BACKSET(CLOSE>OPEN,2) 若收阳则将该周期及前一周期数值设为1,否则为0。
BARSCOUNT有效数据周期数
求总的周期数。
用法:
BARSCOUNT(X) 第一个有效数据到当前的天数。
例如:
BARSCOUNT(CLOSE) 对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。
CURRBARSCOUNT到最后交易日的周期数
求到最后交易日的周期数.
用法:
CURRBARSCOUNT求到最后交易日的周期数
TOTALBARSCOUNT总的周期数
求总的周期数.
用法:
TOTALBARSCOUNT求总的周期数
BARSLAST上一次条件成立位置
上一次条件成立到当前的周期数。
用法:
BARSLAST(X) 上一次X不为0到现在的天数。
例如:
BARSLAST(CLOSE/REF(CLOSE,1)>=1.1) 表示上一个涨停板到当前的周期数。
BARSSINCE第一个条件成立位置
第一个条件成立到当前的周期数。
用法:
BARSSINCE(X) 第一次X不为0到现在的天数。
例如:
BARSSINCE(HIGH>10) 表示股价超过10元时到当前的周期数。
COUNT统计
统计满足条件的周期数。
用法:
COUNT(X,N) 统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
例如:
COUNT(CLOSE>OPEN,20) 表示统计20周期内收阳的周期数。
HHV最高值
求最高值。
用法:
HHV(X,N) 求N周期内X最高值,N=0则从第一个有效值开始。
例如:
HHV(HIGH,30) 表示求30日最高价。
HHVBARS上一高点位置
求上一高点到当前的周期数。
用法:
HHVBARS(X,N) 求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。
例如:
HHVBARS(HIGH,0) 求得历史新高到到当前的周期数。
LLV最低值
求最低值。
用法:
LLV(X,N) 求N周期内X最低值,N=0则从第一个有效值开始。
例如:
LLV(LOW,0) 表示求历史最低价。
LLVBARS上一低点位置
求上一低点到当前的周期数。
用法:
LLVBARS(X,N) 求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。
例如:
LLVBARS(HIGH,20) 求得20日最低点到当前的周期数。
REVERSE求相反数
求相反数。
用法:
REVERSE(X) 返回-X。
例如:
REVERSE(CLOSE) 返回-CLOSE。
REF向前引用
引用若干周期前的数据。
用法:
REF(X,A) 引用A周期前的X值。
例如:
REF(CLOSE,1) 表示上一周期的收盘价,在日线上就是昨收。
REFDATE指定引用
引用指定日期的数据。
用法:
REFDATE(X,A) 引用A日期的X值。
例如:
REF(CLOSE,20011208) 表示2001年12月08日的收盘价。
SUM总和
求总和。
用法:
SUM(X,N) 统计N周期中X的总和,N=0则从第一个有效值开始。
例如:
SUM(VOL,0) 表示统计从上市第一天以来的成交量总和。
FILTER过滤
过滤连续出现的信号。
用法:
FILTER(X,N) X满足条件后,删除其后N周期内的数据置为0。
例如:
FILTER(CLOSE>OPEN,5) 查找阳线,5天内再次出现的阳线不被记录在内。
SUMBARS累加到指定值的周期数
向前累加到指定值到现在的周期数。
用法:
SUMBARS(X,A) 将X向前累加直到大于等于A,返回这个区间的周期数。
例如:
SUMBARS(VOL,CAPITAL) 求完全换手到现在的周期数。
SMA移动平均
返回移动平均。
用法:
SMA(X,N,M) X的M日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N
MA简单移动平均
返回简单移动平均。
用法:
MA(X,M) X的M日简单移动平均。
DMA动态移动平均
求动态移动平均。
用法:
DMA(X,A) 求X的动态移动平均。
算法:
若Y=DMA(X,A)则Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。
例如:
DMA(CLOSE,VOL/CAPITAL) 表示求以换手率作平滑因子的平均价。
EMA(或EXPMA)指数移动平均
返回指数移动平均。
用法:
EMA(X,M) X的M日指数移动平均。
MEMA平滑移动平均
返回平滑移动平均
用法:
MEMA(X,M) X的M日平滑移动平均。
MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值
EXPMEMA指数平滑移动平均
返回指数平滑移动平均。
用法:
EXPMEMA(X,M) X的M日指数平滑移动平均。
EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值
RANGE介于某个范围之间
用法:
RANGE(A,B,C) A在B和C。
例如:
RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。
CONST取值设为常数
用法:
CONST(A) 取A最后的值为常量.
例如:
CONST(INDEXC)表示取大盘现价。
4.4逻辑函数
CROSS上穿
两条线交叉。
用法:
CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0。
例如:
CROSS(MA(CLOSE,5),MA(CLOSE,10)) 表示5日均线与10日均线交金叉。
LONGCROSS维持一定周期后上穿
两条线维持一定周期后交叉。
用法:
LONGCROSS(A,B,N) 表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。
UPNDAY连涨
返回是否连涨周期数。
用法:
UPNDAY(CLOSE,M) 表示连涨M个周期。
DOWNNDAY连跌
返回是否连跌周期。
用法:
DOWNNDAY(CLOSE,M) 表示连跌M个周期。
NDAY连大
返回是否持续存在X>Y。
用法:
NDAY(CLOSE,OPEN,3) 表示连续3日收阳线。
EXIST存在
是否存在。
用法:
EXIST(CLOSE>OPEN,10) 表示前10日内存在着阳线。
EVERY一直存在
一直存在。
用法:
EVERY(CLOSE>OPEN,10) 表示前10日内一直阳线。
LAST持续存在
用法:
LAST(X,A,B) A>B,表示从前A日到前B日一直满足X条件。
若A为0,表示从第一天开始,B为0,表示到最后日止。
例如:
LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日内一直阳线。
4.5算术函数
NOT取反
求逻辑非。
用法:
NOT(X) 返回非X,即当X=0时返回1,否则返回0。
例如:
NOT(ISUP) 表示平盘或收阴。
IF逻辑判断
根据条件求不同的值。
用法:
IF(X,A,B) 若X不为0则返回A,否则返回B。
例如:
IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。
IFF逻辑判断
根据条件求不同的值。
用法:
IFF(X,A,B) 若X不为0则返回A,否则返回B。
例如:
IFF(CLOSE>OPEN,HIGH,LOW) 表示该周期收阳则返回最高值,否则返回最低值。
IFN逻辑判断
根据条件求不同的值。
用法:
IFN(X,A,B) 若X不为0则返回B,否则返回A。
例如:
IFN(CLOSE>OPEN,HIGH,LOW) 表示该周期收阴则返回最高值,否则返回最低值。
MAX较大值
求最大值。
用法:
MAX(A,B) 返回A和B中的较大值。
例如:
MAX(CLOSE-OPEN,0) 表示若收盘价大于开盘价返回它们的差值,否则返回0。
MIN较小值
求最小值。
用法:
MIN(A,B) 返回A和B中的较小值。
例如:
MIN(CLOSE,OPEN) 返回开盘价和收盘价中的较小值。
4.6数学函数
ACOS反余弦
反余弦值。
用法:
ACOS(X) 返回X的反余弦值。
ASIN反正弦
反正弦值。
用法:
ASIN(X) 返回X的反正弦值。
ATAN反正切
反正切值。
用法:
ATAN(X) 返回X的反正切值。
COS余弦
余弦值。
用法:
COS(X) 返回X的余弦值。
SIN正弦
正弦值。
用法:
SIN(X) 返回X的正弦值。
TAN正切
正切值。
用法:
TAN(X) 返回X的正切值。
EXP指数
指数。
用法:
EXP(X) e的X次幂。
例如:
EXP(CLOSE) 返回e的CLOSE次幂。
LN自然对数
求自然对数。
用法:
LN(X) 以e为底的对数。
例如:
LN(CLOSE) 求收盘价的对数。
LOG对数
求10为底的对数。
用法:
LOG(X) 取得X的对数。
例如:
LOG(100) 等于2。
SQRT开方
开平方。
用法:
SQRT(X) 求X的平方根。
例如:
SQRT(CLOSE) 收盘价的平方根。
ABS绝对值
求绝对值。
用法:
ABS(X) 返回X的绝对值。
例如:
ABS(-34) 返回34。
POW乘幂
乘幂。
用法:
POW(A,B) 返回A的B次幂。
例如:
POW(CLOSE,3) 求得收盘价的3次方。
CEILING向上舍入
向上舍入。
用法:
CEILING(A) 返回沿A数值增大方向最接近的整数。
例如:
CEILING(12.3) 求得13,CEILING(-3.5)求得-3。
FLOOR向下舍入
向下舍入。
用法:
FLOOR(A) 返回沿A数值减小方向最接近的整数。
例如:
FLOOR(12.3) 求得12,FLOOR(-3.5)求得-4。
INTPART取整
用法:
INTPART(A) 返回沿A绝对值减小方向最接近的整数。
例如:
INTPART(12.3) 求得12,INTPART(-3.5)求得-3。
BETWEEN:
介于
介于。
用法:
BETWEEN(A,B,C) 表示A处于B和C之间时返回1,否则返回0。
例如:
BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。
4.7统计函数
AVEDEV平均绝对方差
AVEDEV(X,N) 返回平均绝对方差。
DEVSQ数据偏差平方和
DEVSQ(X,N) 返回数据偏差平方和。
FORCAST线性回归预测值
FORCAST(X,N) 返回线性回归预测值。
SLOPE线性回归斜率
SLOPE(X,N) 返回线性回归斜率。
STD估算标准差
STD(X,N) 返回估算标准差。
STDP总体标准差
STDP(X,N) 返回总体标准差。
VAR估算样本方差
VAR(X,N) 返回估算样本方差。
VARP总体样本方差
VARP(X,N) 返回总体样本方差。
4.8横向统计
BLOCKSETNUM板块股票个数
用法:
BLOCKSETNUM(板块名称) 返回该板块股票个数。
HORCALC多股统计
用法:
HORCALC(板块名称,数据项,计算方式,权重)
数据项:
100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅
计算方式:
0-累加,1-排名次
权重:
0-总股本,1-流通股本,2-等同权重,3-流通市值
4.9形态函数
COST成本分布
成本分布情况。
用法:
COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘。
该函数仅对日线分析周期有效。
PEAK波峰值
前M个ZIG转向波峰值。
用法:
PEAK(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1。
例如:
PEAK(1,5,1) 表示%5最高价ZIG转向的上一个波峰的数值。
PEAKBARS波峰位置
前M个ZIG转向波峰到当前距离。
用法:
PEAKBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰到当前的周期数,M必须大于等于1。
例如:
PEAKBARS(0,5,1) 表示%5开盘价ZIG转向的上一个波峰到当前的周期数。
SAR抛物转向
抛物转向。
用法:
SAR(N,S,M),N为计算周期,S为步长,M为极值。
例如:
SAR(10,2,20) 表示计算10日抛物转向,步长为2%,极限值为20%。
SARTURN抛物转向点
抛物转向点。
用法:
SARTURN(N,S,M) N为计算周期,S为步长,M为极值,若发生向上转向则返回1,若发生向下转向则返回-1,否则为0。
其用法与SAR函数相同。
TROUGH波谷值
前M个ZIG转向波谷值。
用法:
TROUGH(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1。
例如:
TROUGH(2,5,2) 表示%5最低价ZIG转向的前2个波谷的数值。
TROUGHBARS波谷位置
前M个ZIG转向波谷到当前距离。
用法:
TROUGHBARS(K,N,M