同花顺常用公式函数大全.doc
《同花顺常用公式函数大全.doc》由会员分享,可在线阅读,更多相关《同花顺常用公式函数大全.doc(20页珍藏版)》请在三一文库上搜索。
1、 同花顺公式编写及函数周期:由于证券市场里的各项数据都与代码、时间密切相关,所以在这里的各项数据都只能用于特定的一类或几类代码及相应的一个或几个周期。注意:同一个数据项可能适用于多类代码及多个周期,其具体的数值也将不同。代码的分类:个股含债券。沪深指数仅1A0001统计A、B股基金、1A0002统计A股、1A0003统计B股、399001统计A、B股基金、399002统计A股、399003统计B股六个指数。期货。周期分类:实时记录当前传过来的数据、成交明细记录每一笔成交的数据、分时记录每分钟成交的数据、分钟K线以1分钟为单位的K线数据、日K线以1个交易日为单位的K线数据。注意: 根本数据项自身
2、并不带周期,也就是说编写公式的时候,如果所选用的周期不在此数据项的适用围,测试公式的时候系统是不会报错的,但这个数据项的数值将为“空,即取不到任何数据。注意: 所有的根本数据项都可以直接拖到表格里,它将依照表格的代码、周期而显示相应的数值。也都可以直接拖到窗口里作为一个曲线输出,但一般不推荐这样做,如果要画曲线最好新编写一个“曲线公式。其返回值为函数里面的return语句规定的返回值。假设无return语句,那么返回被调用函数里,以函数名命名的变量的值。假设无以函数名命名的变量,那么返回最后一个输出的值。假设无输出的值,那么返回最后一个被调用的语句的值。例如:调用KDJ指标。KDJ函数的名称为
3、kdj,其参数和容如下:参数名最小值 最大值 默认值N1 1 100 9M1 2 40 3M2 2 40 3函数容为: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)的时候,相当于计算N18,M16,M26时的J值,并把这个值赋给a。注意:1、当传递的参数数目不等于被调用函数设置的参数数目时。a、没有传递参数。那么采用原来设置的默认参数计算。b、传递参数少于被调用函数设置的参数数目。那么将参数传过去,依次改变前面同样
4、数目参数的值,后面其它的参数采用原来设置的默认参数计算。c、传递参数大于被调用函数设置的参数数目。那么将参数传过去,依次改变被调用函数的参数值,多余的参数不起作用。2、函数名称不区分大小写。3、新建的函数,其函数名可能与其它已存在的函数里面的部变量重名。这样在调用那个函数时,那个部变量将变成对这个新建函数的函数调用,从而产生错误。所以,在新建函数起名时要注意。返回值:自定义公式里面如果有多数据项输出,那么调用此函数的时候返回值默认为最后一个输出。如果希望确定某项输出那么可用return,或者将函数名指定为其中一项输出。循环语句:while循环的一般形式为:while(条件) 语句;while循
5、环表示当条件为真时, 便执行语句。直到条件为假才完毕循环。并继续执行循环程序外的后续语句。注意:1、可以有多层循环嵌套。2、语句可以是语句体, 此时必须用和括起来。break语句break语句通常用在循环语句中。当break语句用while循环语句中时,可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。即满足条件时便跳出循环。注意:1、break语句对if-else的条件语句不起作用。2、在多层循环中, 一个break语句只向外跳一层。continue 语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在whil
6、e循环体中, 常与if条件语句一起使用, 用来加速循环。关于“空:所谓“空即指没有数据。在某些情况下,一些数据项可能取不到数据,这时返回值为“空。例如,yearrep(&jlr,4),其含义为取该公司3年前年报的净利润。如果某家公司上市时间较短,而无三年前的年报数据,那么其值为“空。1、“空与任何数据作计算时,相应计算被取消。例如:7NULL即“空得到的结果为7。2、“空与任何数据比拟大小时,“空较小。例如:7NULL即“空得到的结果为1即条件满足。这样的结果可能与您原来希望得到的数值不符,如果您想防止这种情况可以用ISNULL函数来判断某个数据是否为“空相关说明见后面的系统函数说明局部。调用
7、函数的根本方式为:函数名参数,参数,同花顺系统公式编写教程及函数用法根底(一)在自定义公式里面的各种符号如,“; 只能用半角不能用全角。常数 浮点数、整数、字符串分隔符 “ ( ) ; 注释/* */标识符 由字母和数字组成,由字母开头,不分大小写运算符优先级从高到低排列,同级同行* / + - != = 赋值并输出图形。注意:“和“:=两个运算符的意义、用法完全一样。这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。同花顺公式函数注释常用局部逻辑函数:1、条件函数:根据条件求不同的值。用法:IF(X,A,B)假设X不为0那么返回A,否那么返回B。 例如:(CLOSEOPE
8、N,HIGH,LOW)表示该周期收阳那么返回最高值,否那么返回最低值。引用函数:1、满足条件的周期数:统计满足条件的周期数。用法:COUNT(X,N),统计N周期中满足X条件的周期数,假设N=0那么从第一个有效值开场。例如:COUNT(CLOSEOPEN,20)表示统计20周期收阳的周期数。2、第一个条件成立到当前的周期数:统计第一个条件成立到当前的周期数。用法:BARSSINCE(X):第一次X不为0到现在的天数。例如:BARSSINCE(HIGH10)表示股价超过10元时到当前的周期数。3、上一次条件成立到当前的周期数:上一次条件成立到当前的周期数。用法:BARSLAST(X),上一次X不
9、为0到现在的天数。例如:BARSLAST(CLOSE/REF(CLOSE,1)=1,1)表示上一个涨停板到当前的周期数。4、有效周期数:求总的周期数。用法:BARSCOUNT(X),第一个有效数据到当前的天数。5、向前赋值:将当前位置到假设干周期前的数据设为1。用法:BACKSET(X,N),假设X非0,那么将当前位置到N周期前的数值设为1。例如:BACKSET(CLOSEOPEN,2)假设收阳那么将该周期及前一周期数值设为1,否那么为0。6、求和:求总和。用法:SUM(X,N),统计N周期中X的总和,N=0那么从第一个有效值开场。例如:SUM(VOL,5)周期设为日线时,表示最近5个交易日的
10、成交量之和。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
11、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值。
12、例如: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
13、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,返回这个区间的周期数。例如:S
14、UMBARS(VOL,CAPITAL)求完全换手到现在的周期数。时间函数:1、总开盘分钟:求当前代码类型的开市交易时间。用法:TRADETIME。返回交易时间,单位为分钟。目前一般市场都返回242,与日期或具体的股票无关。2、距开盘分钟:求当前时刻距开盘有多长时间。用法:FROMOPEN。返回当前时刻距开盘有多长时间,单位为分钟。例如:当前时刻为早上十点,那么返回31。3、距午夜秒:求当前时刻距开盘有多长时间。用法:FROMNIGHT。返回当前时刻距午夜有多长时间,单位为秒。例如:当前时刻为早上十点,那么返回36000。4、时间格式:转换时间格式。用法:FORMATTIME(N)。目前只支持
15、N=1 把当前时间转换成距开盘分钟数返回。例如:分时中的量比曲线公式:(VOL*(TRADETIME+1)*5)/(FORMATTIME(1)*FIVEDAYVOL)。5、时间差:计算两个时间之间的差。用法:COUNTTIMEN,L,K。N、L为时间,其格式为YYYYMMDD。K为1、2或者3。当K为1时返回第二个之间比第一个时间晚多少年。当K为2时返回第二个之间比第一个时间晚多少月。当K为3时返回第二个之间比第一个时间晚多少日。例如:COUNTTIME20000808,19990606,2其返回值为-2。注意:这里返回值有正负号。算术函数:1、绝对值:求绝对值。用法:ABS(X)返回X的绝对
16、值。例如: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)返
17、回A对B求模。例如:MOD(26,10)返回6。6、求逻辑非:求逻辑非。用法:NOT(X)返回非X,即当X=0时返回1,否那么返回0。例如:NOT(53)返回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的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 同花顺 常用 公式 函数 大全
