同花顺常用公式函数大全.docx
- 文档编号:23514977
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:23.68KB
同花顺常用公式函数大全.docx
《同花顺常用公式函数大全.docx》由会员分享,可在线阅读,更多相关《同花顺常用公式函数大全.docx(19页珍藏版)》请在冰豆网上搜索。
同花顺常用公式函数大全
同花顺公式编写及函数
周期:
由于证券市场里的各项数据都与代码、时间密切相关,所以在这里的各项数据都只能用于特定的一类或几类代码及相应的一个或几个周期。
(注意:
同一个数据项可能适用于多类代码及多个周期,其具体的数值也将不同。
)
代码的分类:
个股(含债券)。
沪深指数(仅1A0001(统计上海A、B股基金)、1A0002(统计上海A股)、1A0003(统计上海B股)、399001(统计深圳A、B股基金)、399002(统计深圳A股)、399003(统计深圳B股)六个指数)。
期货。
周期分类:
实时(记录当前传过来的数据)、成交明细(记录每一笔成交的数据)、分时(记录每分钟成交的数据)、分钟K线(以1分钟为单位的K线数据)、日K线(以1个交易日为单位的K线数据)。
注意:
基本数据项自身并不带周期,也就是说编写公式的时候,如果所选用的周期不在此数据项的适用范围内,测试公式的时候系统是不会报错的,但这个数据项的数值将为“空”,即取不到任何数据。
注意:
所有的基本数据项都可以直接拖到表格里,它将依照表格的代码、周期而显示相应的数值。
也都可以直接拖到窗口里作为一个曲线输出,但一般不推荐这样做,如果要画曲线最好新编写一个“曲线公式”。
其返回值为函数里面的return语句规定的返回值。
若无return语句,则返回被调用函数里,以函数名命名的变量的值。
若无以函数名命名的变量,则返回最后一个输出的值。
若无输出的值,则返回最后一个被调用的语句的值。
例如:
调用KDJ指标。
KDJ函数的名称为kdj,其参数和内容如下:
参数名最小值最大值默认值
N111009
M12403
M22403
函数内容为:
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
则当您在其它函数里输入a=KDJ(8,6,6)的时候,相当于计算N1=8,M1=6,M2=6时的J值,并把这个值赋给a。
注意:
1、当传递的参数数目不等于被调用函数设置的参数数目时。
a、没有传递参数。
则采用原来设置的默认参数计算。
b、传递参数少于被调用函数设置的参数数目。
则将参数传过去,依次改变前面同样数目参数的值,后面其它的参数采用原来设置的默认参数计算。
c、传递参数大于被调用函数设置的参数数目。
则将参数传过去,依次改变被调用函数的参数值,多余的参数不起作用。
2、函数名称不区分大小写。
3、新建的函数,其函数名可能与其它已存在的函数里面的内部变量重名。
这样在调用那个函数时,那个内部变量将变成对这个新建函数的函数调用,从而产生错误。
所以,在新建函数起名时要注意。
返回值:
自定义公式里面如果有多数据项输出,则调用此函数的时候返回值默认为最后一个输出。
如果希望确定某项输出则可用return,或者将函数名指定为其中一项输出。
循环语句:
while循环的一般形式为:
while(条件)语句;
while循环表示当条件为真时,便执行语句。
直到条件为假才结束循环。
并继续执行循环程序外的后续语句。
注意:
1、可以有多层循环嵌套。
2、语句可以是语句体,此时必须用"{"和"}"括起来。
break语句
break语句通常用在循环语句中。
当break语句用while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。
即满足条件时便跳出循环。
注意:
1、break语句对if-else的条件语句不起作用。
2、在多层循环中,一个break语句只向外跳一层。
continue语句
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在while循环体中,常与if条件语句一起使用,用来加速循环。
关于“空”:
所谓“空”即指没有数据。
在某些情况下,一些数据项可能取不到数据,这时返回值为“空”。
例如,yearrep(&jlr,4),其含义为取该公司3年前年报的净利润。
如果某家公司上市时间较短,而无三年前的年报数据,则其值为“空”。
1、“空”与任何数据作计算时,相应计算被取消。
例如:
7×NULL(即“空”)得到的结果为7。
2、“空”与任何数据比较大小时,“空”较小。
例如:
-7>NULL(即“空”)得到的结果为1(即条件满足)。
这样的结果可能与您原来希望得到的数值不符,如果您想避免这种情况可以用ISNULL函数来判断某个数据是否为“空”(相关说明见后面的系统函数说明部分)。
调用函数的基本方式为:
函数名(参数,参数,…)
同花顺系统公式编写教程及函数用法基础
(一)
在自定义公式里面的各种符号(如,“;”)只能用半角不能用全角。
常数浮点数、整数、字符串
分隔符“”‘’();{}注释/**/
标识符由字母和数字组成,由字母开头,不分大小写
运算符(优先级从高到低排列,同级同行)
*/+-!
=><>=<=AndOr
语句赋值a=b
条件IF(a==b)c=d;
循环whilea==bc=d;
函数调用func(a,b)
赋值语句:
其一般形式为:
a=b;含义为将b的值付给a。
几个运算符“=”赋值、“:
=”赋值“:
”赋值并输出数值或字符串“:
>”赋值并输出图形。
注意:
“=”和“:
=”两个运算符的意义、用法完全相同。
这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。
同花顺公式函数注释(常用部分)
逻辑函数:
1、条件函数:
根据条件求不同的值。
用法:
IF(X,A,B)若X不为0则返回A,否则返回B。
例如:
(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。
引用函数:
1、满足条件的周期数:
统计满足条件的周期数。
用法:
COUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
例如:
COUNT(CLOSE>OPEN,20)表示统计20周期内收阳的周期数。
2、第一个条件成立到当前的周期数:
统计第一个条件成立到当前的周期数。
用法:
BARSSINCE(X):
第一次X不为0到现在的天数。
例如:
BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数。
3、上一次条件成立到当前的周期数:
上一次条件成立到当前的周期数。
用法:
BARSLAST(X),上一次X不为0到现在的天数。
例如:
BARSLAST(CLOSE/REF(CLOSE,1)>=1,1)表示上一个涨停板到当前的周期数。
4、有效周期数:
求总的周期数。
用法:
BARSCOUNT(X),第一个有效数据到当前的天数。
5、向前赋值:
将当前位置到若干周期前的数据设为1。
用法:
BACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1。
例如:
BACKSET(CLOSE>OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0。
6、求和:
求总和。
用法:
SUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始。
例如:
SUM(VOL,5)周期设为日线时,表示最近5个交易日的成交量之和。
SUM(VOL,0)表示从传数据过来第一天起的成交量总和,具体如在区间统计里统计“总手”SUM(VOL,0)即是指全区间的成交量之和。
7、移动平均:
求移动平均。
用法:
SMA(X,N,M),求X的N日移动平均,M为权重。
算法:
若Y=SMA(X,N,M)则Y=[M*X+(N-M)*Y']/N,其中Y'表示上一周期Y值,N必须大于M。
例如:
SMA(CLOSE,30,1)表示求30日移动平均价。
8、向前引用:
引用若干周期前的数据。
用法:
REF(X,A),引用A周期前的X值。
例如:
REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收。
9、简单移动平均:
求简单移动平均。
用法:
MA(X,N),求X的N日移动平均值。
算法:
(X1+X2+X3+,,,+Xn)/N。
例如:
MA(CLOSE,10)表示求10日均价。
10、最低值:
求最低值。
用法:
LLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始。
例如:
LLV(LOW,0)表示求历史最低价。
11、最高值:
求最高值。
用法:
HHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始。
例如:
HHV(HIGH,30)表示求30日最高价。
12、指数平滑移动平均:
求指数平滑移动平均。
用法:
EMA(X,N),求X的N日指数平滑移动平均。
算法:
若Y=EMA(X,N)则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。
例如:
EMA(CLOSE,30)表示求30日指数平滑均价。
13、动态移动平均:
求动态移动平均。
用法:
DMA(X,A),求X的动态移动平均。
算法:
若Y=DMA(X,A)则Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。
例如:
DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价。
14、最高值周期数:
求上一高点到当前的周期数。
用法:
HHVBARS(X,N):
求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。
例如:
HHVBARS(HIGH,0)求得历史新高到到当前的周期数。
15、最低值周期数:
求上一低点到当前的周期数。
用法:
LLVBARS(X,N):
求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。
例如:
LLVBARS(HIGH,10)求得10日最低点到当前的周期数。
16、加权移动平均:
求加权移动平均。
用法:
WMA(X,A),求X的加权移动平均。
算法:
若Y=WMA(X,A)则Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1)X0表示本周期值,X1表示上一周期值...。
例如:
WMA(CLOSE,20)表示求20日加权均价。
17、求和:
向前累加到指定值到现在的周期数。
用法:
SUMBARS(X,A):
将X向前累加直到大于等于A,返回这个区间的周期数。
例如:
SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数。
时间函数:
1、总开盘分钟:
求当前代码类型的开市交易时间。
用法:
TRADETIME。
返回交易时间,单位为分钟。
目前一般市场都返回242,与日期或具体的股票无关。
2、距开盘分钟:
求当前时刻距开盘有多长时间。
用法:
FROMOPEN。
返回当前时刻距开盘有多长时间,单位为分钟。
例如:
当前时刻为早上十点,则返回31。
3、距午夜秒:
求当前时刻距开盘有多长时间。
用法:
FROMNIGHT。
返回当前时刻距午夜有多长时间,单位为秒。
例如:
当前时刻为早上十点,则返回36000。
4、时间格式:
转换时间格式。
用法:
FORMATTIME(N)。
目前只支持N=1把当前时间转换成距开盘分钟数返回。
例如:
分时中的量比曲线公式:
(VOL*(TRADETIME+1)*5)/(FORMATTIME
(1)*FIVEDAYVOL)。
5、时间差:
计算两个时间之间的差。
用法:
COUNTTIME(N,L,K)。
N、L为时间,其格式为YYYYMMDD。
K为1、2或者3。
当K为1时返回第二个之间比第一个时间晚多少年。
当K为2时返回第二个之间比第一个时间晚多少月。
当K为3时返回第二个之间比第一个时间晚多少日。
例如:
COUNTTIME(20000808,19990606,2)其返回值为-2。
注意:
这里返回值有正负号。
算术函数:
1、绝对值:
求绝对值。
用法:
ABS(X)返回X的绝对值。
例如:
ABS(-34)返回34。
2、介于:
介于两个数之间。
用法:
BETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0
例如:
BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。
3、最大值:
求最大值。
用法:
MAX(A,B)返回A和B中的较大值。
例如:
MAX(CLOSE-OPEN,0)表示若收盘价大于开盘价返回它们的差值,否则返回0。
4、最小值:
求最小值。
用法:
MIN(A,B)返回A和B中的较小值。
例如:
MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值。
5、求模运算:
求模运算。
用法:
MOD(A,B)返回A对B求模。
例如:
MOD(26,10)返回6。
6、求逻辑非:
求逻辑非。
用法:
NOT(X)返回非X,即当X=0时返回1,否则返回0。
例如:
NOT(5>3)返回0。
7、范围:
介于某个范围之间。
用法:
RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。
例如:
RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。
8、求相反数:
求相反数。
用法:
REVERSE(X)返回-X。
例如REVERSE(CLOSE)返回-CLOSE。
9、余弦值:
求余弦值。
用法:
COS(X)返回X的余弦值。
10、正弦值:
求正弦值。
用法:
SIN(X)返回X的正弦值。
11、平方根:
开平方。
用法:
SQRT(X)为X的平方根。
例如:
SQRT(CLOSE)收盘价的平方根。
12、上穿:
两条线交叉。
用法:
CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0。
例如:
CROSS(MA(CLOSE,5),MA(CLOSE,10))表示5日均线与10日均线交金叉。
13、维持:
两条线维持一定周期后交叉。
用法:
LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。
例如:
LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉。
14、空:
判断是否为空。
用法:
ISNULL(A)表示如果A为空(即没有数据)则返回1,否则返回0。
15、幂:
求幂。
用法:
POW(X,Y)。
求X的Y次幂。
例如:
POW(2,3)为8。
绘图函数
位图
含义:
在图形上绘制位图。
用法:
DRAWBMP(COND,PRICE,BMPFILE),当COND条件满足时,在PRICE位置画BMPFILE文件名指定的BMP位图(缺省路径为软件安装目录登录用户名)。
例如:
DRAWBMP(CLOSE>OPEN,LOW,'SUN')表示当收阳时在最低价位置画软件安装目录登录用户名Sun.BMP位图。
BMPFILE参数指定的BMP文件默认路径为当前用户目录,如果不带后缀名即表示BMP文件,也可带后缀名使用JPG和GIF文件。
也可不用用户目录而使用全路径,路径中的''要写两个以下字符串作为参数都是合法的,如果文件存在的话:
"SUN","SUN.BMP","SUN.JPG","SUN.GIF","C:
\hexin\SUN.JPG"
填充背景
含义:
根据条件填充背景区域。
用法:
DRAWGBK(COND,COLOR),填充满足COND条件的背景区域。
COLOR可以为渐变颜色STRIP,也可以为BMP图形文件名(缺省路径为"软件安装目录登录用户名"),若省略COLOR则使用指标线颜色填充(可以使用COLORRED等描述符设定)。
例如:
DRAWGBK(CLOSE>OPEN),COLORRED;表示收阳时用红色填充背景。
DRAWGBK(CLOSE>OPEN,'MyBMP');表示收阳时用软件安装目录登录用户名MyBMP.BMP填充背景。
画图标
含义:
在图形上绘制小图标。
用法:
DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE图标,TYPE是曲线标志的名称。
例如:
DRAWICON(CLOSE>OPEN,LOW,"buy")表示当收阳时在最低价位置画买入图标。
显示文字
含义:
在图形上显示文字。
用法:
DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。
例如:
DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。
RGB颜色
含义:
指定颜色。
用法:
RGB(R,G,B),表示用三原色红(R)绿(G)蓝(B)混合组成指定颜色,每种颜色值可以设定为0-255。
例如RGB(255,0,0)表示红色,RGB(0,0,255)表示蓝色
画柱线
用法:
STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。
例如:
STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分。
提示文字
TIPTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置显示图标,若PRICE为0,则在图形底部显示图标。
例如:
TIPTEXT(CLOSE/OPEN>1.08,LOW,'大阳线,股价为:
'+close)表示当日涨幅大于8%时在最低价位置显示图标,鼠标移近时显示文字'大阳线,股价为:
15.88'字样。
显示为三角图
画垂直线
含义:
在图形上绘制垂直线。
用法:
VERTLINE(COND,TYPE),当COND条件满足时,沿垂直方向绘制TYPE类型的线段,TYPE=0表示实线,1表示虚线'---',2表示点线'...',3表示点划线'-.-.-',4表示点点划线'-..-..-'。
例如:
VERLINE(HIGH>=HHV(HIGH,20),1)表示在创20天新高画垂直虚线
画水平线
含义:
在图形上绘制水平线。
用法:
HORLINE(COND,PRICE,TYPE,EXTEND),当COND条件满足时,在PRICE位置沿水平方向绘制TYPE类型的线段,TYPE=0表示实线,1表示虚线'---',2表示点线'...',3表示点划线'-.-.-';4表示点点划线'-..-..-'。
EXTEND=1表示向左延长,=2表示向右延长,=3表示左右
由简单的公式编写开始:
这里举一些最简单的例子,有些只有一条语句且函数简单,较复杂的公式中函数复杂且语句较多。
收盘价线
CLOSE均线的画法 计算N日内收盘价的算术平均值,公式为:
MA(X,N)表示X的N日平均。
例如:
MA1:
MA(CLOSE,5),coloryellow;表示为:
参数名画一条5日收盘价的均线设置该线为黄色
MA2:
MA(C,20),color0000ff(20日收盘价均线,颜色为红色)
MA3:
MA(c,250),color00ff00(年线,绿色)
均线:
MA(c,N);(周期N可设置最大,最小,缺省)
换手率 换手率指当期的成交量占流通股本的比例。
公式:
hs:
VOL/CAPITAL;VOL为当期成交量,CAPITAL为流通股本。
乖离率当前股价与均线的偏差的程度
gl:
(c-ma(c,20))/ma(c,20)*100;
量比当期成交量与5日均量的比
lb:
vol/ma(vol,5);
涨幅 涨幅指今日收盘价相对于昨日收盘价的变动幅度,即(今日收盘价-昨日收盘价)/昨日收盘价*100%,
昨日收盘价的公式为:
REF(CLOSE,1),
涨幅的公式:
(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)
创新高 创新高指当日最高价是最近一段时间的最高价:
HIGH=HHV(HIGH,N) 其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。
因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。
横盘整理 横盘整理指最近一段时期价格在一定幅度之内摆动:
(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05 其中的LLV(X,N)是求N周期内X最低值。
因此该公式表示10日收盘价振幅振幅在5%以内。
放量、缩量(成交量函数为VOL)
A、放量
a.今天成交量较昨天增加了1倍,表示如下:
VOL/REF(VOL,1)>2b.今天成交量较10个交易日平均成交量放大了1倍,表示如下:
a:
=ma(vol,10);Vol/a>2或者直接用如下公式表示:
vol/ma(vol,10)>2;
c.今日的5日均量较10个交易日平均成交量放大了1倍,表示如下:
a:
=ma(vol,10);b:
=ma(vol,5);b/a>2;
d.今日的成交量超过了整个流通盘的5%,表示如下:
vol/capital>0.05;其中capital代表流通盘。
B、缩量
a.今日成交量较昨日减少了一半,表示如下:
vol/ref(vol,1)<0.5;
b.今日成交量较10个交易日平均成交量减少一倍,表示如下:
a:
=ma(vol,10);vol/a<2;或者直接用如下公式表示:
vol/ma(vol,10)<2;
c.今日的5日均量较10个交易日平均成交量减少1倍,表示如下:
a:
=ma(vol,10);b:
=ref(a,5);a/b<2;
d.今日的成交量低于了整个流通盘的5%,表示如下:
vol/capital<0.05;
上涨、下跌
上涨今天的涨幅达到5%以上,表示如下:
close>ref(close,1)>1.05;
5日均价连续上涨,表示如下:
a:
=ma(close,5);b:
=ref(a,1);
下跌今天的跌幅达到5%以上,表示如下:
close/ref(close,1)<0.95;
5日均价连续下跌,表示如下:
a:
=ma(close,5);b:
=ref(a,1);a
描述K线阳线close>open;阴线close 引用大盘数据 INDEXDATA(“N”,&X,K)INDEXDATA求某商品相关的数据 例: INDEXDATA("1a0001",&HIGH),n)沪指N周期最高值 个股于大盘的比较 CLOSE/INDEXDATA("1A0001",&CLOSE)*1000只于沪指比较 股价在N日线附近--这可是反映股价调整幅度的好公式(选股) a: =MA(C,N);选股时输入20,30,60可选不同均线附近的股, ABS(C-a)/C<=0.02;在某均线的2/100附近的股票。 也可根据需要改百分比。 只显示数值不显示曲线在曲线属性-输出线形的勾去掉,在公式语句使用输出符出“: ” 趋势【天】: BARSLAST(MA(C,250) 图函数妙用: 绘图函数的功能是在主图或副图上设定条件输出图标、直线、文字、数字、指标线、指标柱等。 运用恰当使编制出的主副图指标给以视觉上的美感。 1、函数: DRAWICON 用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同花顺 常用 公式 函数 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)