在自定义公式里面的各种符号(如,“;” )只能用半角不能用全角。
关键字 if else while break continue return (无大小写之分)
常数 浮点数、整数、字符串
分隔符 “ ” ‘ ’ ( ) ; { } 注释/* */
标识符 由字母和数字组成,由字母开头,不分大小写
运算符(优先级从高到低排列,同级同行)
* /
+ -
!= > < >= <=
And
Or
语句 赋值 a = b
条件 IF (a==b) c=d;
循环 while a==b c=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),第一个有效数据到当前的天数。
isnull的用法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。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论