大智慧新一代公式编辑语法大全VARIABLE变量定义 定义并初始化变量 语法:VARIABLE: name=initvalue,name表示变量名,initvalue表示变量类型及初始值 例如:VARIABLE: T=0; 表示定义浮点数变量T并初始化为0INPUT定义参数定义并设置参数 语法:INPUT: name(default,min,max,step),name表示参数名,default表示缺省值,min表示最小值,max表示最大值,step表示优化步长, 除default外都可以省略 例如:INPUT: T(10);表示定义参数T,缺省值为10IF分支语句 分支语句 IF expr THEN expr ELSE exprTHEN分支语句 分支语句 IF expr THEN expr ELSE exprELSE分支语句 分支语句 IF expr THEN expr ELSE expr FORFOR循环 循环语句 FOR expr=n1 TO n2 DOTOFOR循环 循环语句 FOR expr=n1 TO n2 DODOWNTOFOR循环 循环语句 FOR expr=n1 DOWNTO n2 DODO循环开始FOR循环和WHILE循环语句开始WHILEWHILE循环 循环语句 WHILE expr DOBREAK终止循环 循环终止语句: 终止IF WHILE循环的继续执行BEGIN组合语句 将 BEGIN 和 END 之间的语句合成一个复合语句END组合语句 将 BEGIN 和 END 之间的语句合成一个组合语句DATA2数据2 引用本股票之外的数据REFLINE参考线 使用参考线作为横坐标线 语法:REFLINE:l1,l2,l3...,l1,l2表示需要画水平坐标线的位置BREAK终止循环 终止WHILE或FOR循环DEFINE宏定义 宏定义 DEFINE Name SomethingDEFFUNC函数宏定义 函数宏定义 DEFFUNC Name(x) SomethingJP跳转 BREAKBREAK LOOP单步循环 JTTRUE跳转 JNTFALSE跳转 JNE不等于跳转 JEQ等于跳转 JLE小于等于跳转 JLT小于跳转 JGE大于等于跳转 JGT大于跳转 INC加1 DEC减1 PERCENT百分比 REFINDI指标引用 REFEXPLORER条件选股引用 REFSYSTEM交易系统引用 REFSTK股票引用 REFDLL动态库引用 ARYREF数组引用 ARYASGN数组赋值 STRADD字符串加 STRADDNUM字符串加数字 DATA2数据2引用本股票之外的数据 :赋值 :=赋值 =相等 <>不等 >大于 >=大于或等于 <小于 <=小于或等于 And逻辑与运算 Or逻辑或运算 +加法 -减法 *乘法 / 除法 O开盘价 H最高价 L最低价 C收盘价 V成交量 OPEN取得该周期开盘价 HIGH取得该周期最高价 LOW取得该周期最低价 CLOSE收盘价 VOL成交量 AMOUNT成交额 ADVANCE取得该周期上涨家数 DECLINE取得该周期下跌家数 TICKCOUNT取得该周期成交笔数 BUYVOL取得主动性买单量 SELLVOL取得主动性卖单量 ISBUYORDER取得该成交是否为主动性买单 BIDPRICE取得委买1--委买3价格 BIDVOL取得委买1--委买3量 ASKPRICE取得委卖1--委卖3价格 ASKVOL取得委卖1--委卖3量 DIVIDEND每股派息数量 DIVIDBARS派息到现在的周期数 SPLIT除权比例 SPLIT(N),取得之前第N次除权(送股或配股)的除权比例 SPLITBARS除权到现在的周期数 SPLITBARS(N),取得之前第N次除权到当前的周期数 BARSTATUS数据位置状态 返回1表示第一根K线,2表示最后一个数据,0表示中间位置 DISPSTATUS数据显示状态 返回1表示显示区域的第一根K线,2表示表示显示区域的最 后一根K线,0表示其它位置。
EXTDATA扩展数据取得日线扩展数据(1-11) SELFDATA自定义数据SELFDATA(S),取得名为S的自定义数据 SELFSTRING取得自定义字符串数据 ISUP该周期是否收阳 当收盘>开盘时,返回值为1,否则为0ISEQUAL该周期是否平盘 当收盘=开盘时,返回值为1,否则为0ISDOWN该周期是否收阴 当收盘<开盘时,返回值为1,否则为0DAY取得该周期的日期 WEEKDAY取得该周期的星期数 函数返回有效值范围为(0-6),0表示星期天 MONTH取得该周期的月份 YEAR取得该周期的年份函数返回有效值范围为(1970-2038) MINUTE取得该周期的分钟数 函数返回有效值范围为(0-59) HOUR取得该周期的小时数 函数返回有效值范围为(0-23) DATE取得该周期从1900以来的年月 函数返回有效值范围为(700101-1341231) TIME取得该周期的时分秒 函数返回有效值范围为(000000-235959) DAYS1970 取得该周期从1970以来的天数 TIME0取得该周期从当日0点以来的秒数 函数返回自从当日0点以来的秒数,对于日线以上的分析周期,返回0DATETOD1970日期转换为1970日DATETOD1970(X),得到日期X距离1970年1月1日以来的天数D1970TODATE1970来的天数转换为日期D1970TODATE(X),得到1970日期X的日期值 TIMETOT0时间转化为秒数TIMETOT0(X),得到时间X距离当日0点的秒数 T0TOTIME秒数转换为时间T0TOTIME(X),得到从0点开始X秒后的时间值 BARPOS取得该周期在所有数据中的位置 对于日线来说,函数返回上市以来的天数 COUNTCOUNT(X,N),统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始 SUMSUM(X,N),统计N周期中X的总和,N=0则从第一个有效值开始 REFREF(X,A),引用A周期前的X值BACKSETBACKSET(X,N),若X非0,则将当前位置到N周期前的数值设为1HHVHHV(X,N),求N周期内X最高值,N=0则从第一个有效值开始LLVLLV(X,N),求N周期内X最低值,N=0则从第一个有效值开始MAMA(X,N),求X的N日移动平均值。
算法:(X1+X2+X3+...+Xn)/N EMAEMA(X,N),求X的N日指数平滑移动平均算法:若 Y=EMA(X,N) 则 Y=/(N+1), 其中Y 表示上一周期Y值 SMASMA(X,N,M),求X的N日移动平均,M为权重 算法: 若Y=SMA(X,N,M) 则 Y=[M*X+(N-M)*Y)/N,其中Y 表示上一周期Y值, N必须大于M DMADMA(X,A),求X的动态移动平均 算法: 若Y=DMA(X,A) 则 Y=A*X+(1-A)*Y,27h,,其中Y 表示上一周期Y值,A必须小1 例如:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价 BARSCOUNTBARSCOUNT(X)第一个有效数据到当前的周期数 BARSSINCEBARSSINCE(X):第一次X不为0到现在的周期数 BARSLASTBARSLAST(X):上一次X不为0到现在的周期数 LASTLAST(X),统计连续满足X条件的周期数 HHVBARSHHVBARS(X,N):求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计 LLVBARSLLVBARS(X,N):求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计 SUMBARSSUMBARS(X,A):将X向前累加直到大于等于A,返回这个区间的周期数 ALLALL(X,N),统计N周期中是否一直都满足X条件,N=0表示从第一个有效值开始统计 ANYANY(X,N),统计N周期中是否至少有一次满足X条件,N=0表示从第一个有效值开始统计 FILTERFILTER(X,N):X满足条件后,将其后N周期内的数据置为0,若N为0表示将其后的所有数据置0 IFIF(X,A,B)若X不为0则返回A,否则返回B CROSSCROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0 LONGCROSSLONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0 BETWEENBETWEEN(A,B,C)表示A处于B和C之间时返回1,否则返回0 RANGERANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0 NOT求逻辑非 REVERSE求相反数。
REVERSE(X)返回-X MOD求模运算MOD(A,B)返回A对B求模 MAX最大值MAX(A,B...)返回所有参数的中的最大值,参数数量可以有2—16个 MIN最小值MIN(A,B...)返回所有参数的中的最小值,参数数量可以有2—16个 ABS求绝对值ABS(X)返回X的绝对值 SGN求符号值SGN(X),当X>0,X=0,X<0分别返回1,0,-1 LOG求10为底的对数。