大智慧数学函数的运用
1、ABS 绝对值 求绝对值。 用法:ABS(X)返回X的绝对值。 例如:ABS(-34)返回34。请看下面指标: {真实量比} V1:=AMOUNT/10000; 对敲: FINANCE(33), POINTDOT,colorffcc66; Var1:=ref(c,1); var2:=(var1-l)/(h-l); var3:=v1*var2; var4:=V*var2; var5:=abs(var4);{返回var4} var6:=abs(var3);{返回var3} var7:=abs(v1-var6);{返回v1-var6差} 大单卖盘:abs(v-var5)/100,color00ffff;{返回v-var5差除100} 买盘:var3/100,colorff00ff; 成交金额:V1/1000,color00ff00; 买卖盘比%:abs(v-var3)/v*100,colorc0c0c0;{返回v-var3差} stickline(c>0,0,var6,5,0),colorffff00;{画天兰色柱} 换手:100*v/capital,colorred; STICKLINE(换手<3,var6,v1 ,5 ,0),colorred;{画红色柱} STICKLINE(换手>=3 and 换手<7,var6, V1,5.5,0),coloryellow;{画黄色柱} STICKLINE(换手>=7,var6, V1, 4,0) ,color00ff00;{画绿色柱} 2、BETWEEN 介于 介于两个数之间。 用法:BETWEEN(A,B,C),表示A处于B和C之间时返回1,否则返回0。 例如:BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5)),表示收盘价介于5日均线和10日均线之间。请看下面指标: {智慧探庄 参数:下%:1 100 5 上%:1 100 5} VAR1:=((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27)))*(100); VAR2:=SMA(VAR1,9,1); A:SMA(VAR2,5,1),Color00FFFF; B:SMA(A,3,1),ColorFF00FF; F:(3)*(A)-(2)*(B),Color00FF00; 趋势线:MA(CLOSE,20)-(MA(CLOSE,20))/(3),ColorFFFFFF; X:=((CLOSE)/(趋势线)-1)*(100); AA:=BETWEEN(X,下%,上%);{表示x介于参数下%,上%之间} 智慧探庄:IF((AA>0),5,80),ColorFFFF00; VAR3:=(MA(WINNER(CLOSE),5))*(100); 智慧出击:=(CROSS(VAR3,2.5))*(85); 出击:IF((智慧出击>0),60,0),Color0000FF; BB:IF(((智慧出击>0) or (出击>0)),2,20),Color008000,Stick; 3、LONGCROSS 维持交叉函数 两条线维持一定周期后交叉。 用法:LONGCROSS(A,B,N)表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。 例如:LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5),表示5日均线维持5周期后与10日均线金叉。 4、CEILING 向上舍入 向数值增大方向舍入。 用法:CEILING(A)返回沿A数值增大方向最接近的整数。 例如:CEILING(12.3)求得13,CEILING(-3.5)求得-3。 5、FLOOR 向下舍入 向数值减小方向舍入。 用法:FLOOR(A)返回沿A数值减小方向最接近的整数。 例如:FLOOR(12.3)求得12,FLOOR(-3.5)求得-4。CEILING与FLOOR用法一样,区别在于向上舍入和向下舍入。 下面指标用到了这几个函数: aa1:=(EMA(CLOSE,12)-EMA(CLOSE,26))*100+50; aa2:=EMA(aa1,9); aa3:=(HHV(HIGH,21)-CLOSE)/(HHV(HIGH,21)-LLV(LOW,21))*100-10; aa4:=(CLOSE-LLV(LOW,21))/(HHV(HIGH,21)-LLV(LOW,21))*100; aa5:=SMA(aa4,13,8); 走势:CEILING(SMA(aa5,13,8));{向上舍入 向数值增大方向舍入,aa5的13日均线求得8} aa6:=SMA(aa3,21,8); 买观注: STICKLINE(走势-aa6<-65,0,5,15,1); 买进:=LONGCROSS(aa1,aa2*1.05,15) AND aa1<40;{表示aa1维持aa2*1.05后与15日金叉} 卖观注: STICKLINE(走势-aa6>85,95,90,15,1); 卖出:STICKLINE(LONGCROSS(aa2,aa1*0.95,7) AND aa1>0,100,80,6,0),color00ff00;{表示aa2维持aa1*0.95后与7日死叉,画绿色柱线} 6、MAX 最大值 求最大值。 用法:MAX(A,B)返回A和B 中的较大值。 例如:MAX(CLOSE-OPEN,0),表示若收盘价大于开盘价返回它们的差值,否则返回0。 7、MIN 最小值 求最小值。 用法:MIN(A,B)返回A和B中的较小值。 例如:MIN(CLOSE,OPEN),返回开盘价和收盘价中的较小值。这2个函数通常成双成对使用,请看下面指标: Var1:=(HIGH+LOW+CLOSE)/3;{(最高价+最低价+收盘价)/3} Var2:=IF(HIGH=LOW,1,HIGH-MAX(OPEN,CLOSE));{条件函数(最高价=最低价,1,最高价-最大值(开盘价,收盘价))} Var3:=IF(HIGH=LOW,1,MAX(CLOSE,OPEN)-Var1);{条件函数(最高价=最低价,1,最大值(收盘价,开盘价)-Var1)} Var4:=IF(HIGH=LOW,1,MIN(OPEN,CLOSE)-LOW);{条件函数(最高价=最低价,1,最小值(开盘价,收盘价)-最低价)} Var5:=IF(HIGH=LOW,1,Var1-MIN(CLOSE,OPEN));{条件函数(最高价=最低价,1,Var1-最小值(收盘价,开盘价))} Var6:=VOL/IF(HIGH=LOW,4,HIGH-LOW);{成交量/条件函数(最高价=最低价,4,最高价-最低价)} Var7:=Var2*Var6; Var8:=Var3*Var6; Var9:=Var4*Var6; VarA:=Var5*Var6; STICKLINE(CLOSE>0,0,Var7+VarA,4,1),COLORRED;{画柱线(收盘价>0,0,Var7+VarA,4,1),红色柱} 买入量: Var7+VarA,POINTDOT,COLORRED;{红色点状线} STICKLINE(CLOSE>0,(Var8+Var9)*(-1),0,4,1),COLORFFCCCC;{画柱线(收盘价>0,(Var8+Var9)*(-1),0,4,1),淡青色柱} 卖出量:(Var8+Var9)*(-1),POINTDOT,COLORFFCCCC;{淡青色点状线} 8、MOD 求模运算 求模运算。 用法:MOD(A,B)返回A对B求模。 例如:MOD(26,10)返回6。 9、INTPART 取整 绝对值减小取整,即取得数据的整数部分。 用法:INTPART(A)返回沿A绝对值减小方向最接近的整数。 例如:INTPART(12.3)求得12,INTPART(-3.5)求得-3。下面的指标用到了这两个函数; RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;{(收盘价-最低值(最低价,9))/(最高值(最高价,9)-最低值(最低价,9))*100} K:=(SMA(RSV,3,1));{(移动平均(RSV,3,1))} D:=(SMA(K,3,1));{(移动平均(K,3,1))} KK:=INTPART(SMA(RSV,3,1));{取整(移动平均(RSV,3,1))} DD:=INTPART(SMA(K,3,1));{取整(移动平均(K,3,1))} N:KK+DD,LINETHICK2,COLORff00ff;{画粗粉色线} 精确涨停:IF(CROSS(N,50),90,50),,COLORYELLOW;{条件函数(交叉函数(N,50),90,50)画黄色线} 接近头部:IF(CROSS(160,N),95,160),,COLOR00ff00;{条件函数(交叉函数(160,N),95,160)画绿色线} 尾数:MOD(n,10),LINETHICK0,COLORWHITE;{求模运算(n,10)画白色线} N的尾数:IF(尾数=0,65,25),,COLORFFCC66;{条件函数(尾数=0,65,25)画青色线} 10、NOT 求逻辑非。 用法:MOT(X)返回非X,即当X=0时返回1,否则返回0。 例如:MOT(ISUP)表示平盘或收阴。请看这个函数在指标中的用法: Var1:=(MA(CLOSE,80)-MA(CLOSE,13)/3); 神奇线:= MA((CLOSE-Var1)/Var1,1); 买点:IF(REF(神奇线,2)=LLV(神奇线,20) AND REF(神奇线,2)<0.071 AND REF(神奇线,2)REF(HIGH,2) AND LOW>REF(HIGH,1)) AND CLOSE>REF(CLOSE,1),0.5,0);{这句用到了MOT函数} 11、RANGE 范围 介于某个范围之间。 用法:RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。 例如:RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。请看下面指标: a1:=1; a2:=ma(c,30); a3:=(c-a2)/a2*100; a4:=ma(a3,3); a5:=a1-1.01*1000000; a6:=barslast(cross(-10,a4)=1); a7:=if(a4<-10 and a6>=5,a4,0),colorwhite; 机会:a7,colorstick,colorffff00;{画青色柱线} a8:=range(a5,(1-0.618)*1000,(1+1.9/100)*1000);{在这句中用到了mange函数,其格式含义请慢慢体会} drawtext(filter(a7=a4 and a8=0,8)=1,a7*1.2 ,'注意反弹'),coloryellow; 12、REVERSE 求相反数 求相反数。 用法:REVERSE(X)返回-X。 例如:REVERSE(CLOSE)返回-CLOSE。请看指标: Var1:=(CLOSE-REF(OPEN,29))/REF(OPEN,29)*100; Var2:=HHV(HIGH,60); VarA:=(CLOSE-LLV(LOW,36))/(HHV(HIGH,36)-LLV(LOW,36))*100; VarB:=SMA(VarA,5,1); VarC:=SMA(VarB,3,1); 跌: Var2*0.382,colorwhite; 底部: REVERSE(IF(CROSS(VarB,VarC) AND VarC<10 AND Var1<-30,跌*2,-5)),color00ff00;{返回CROSS(VarB,VarC)} DRAWTEXT(REVERSE(CROSS(VarB,VarC)) AND VarC<10 AND Var1<-30,跌-5,'底部'),color00ff00;{返回CROSS(VarB,VarC)} 13、ATAN 反正切值 用法:ATAN(X)返回X的反正切值。请看指标: lc1:=ma(c,9); jxjd:=atan((lc1-ref(lc1,1))/ref(lc1,1)*100)/3.1416*180;{返回((lc1-ref(lc1,1))的反正切值} smk:sma(jxjd,3,1),colorstick;{画柱线} smd:sma(smk,3,1);smk; 14、EXP 指数 用法:EXP(X)为e的X次幂。 例如:EXP(CLOSE)返回e的CLOSE次幂。 15、LOG 以10为底的对数 用法:LOG(X)取得X的对数。 例如:LOG(100)等于2。下面指标用到了这两个函数: Var1:=IF(VOL/CAPITAL>0.001,1,EXP(ABS(LOG(VOL/CAPITAL*100))));{返回e的(ABS(LOG(VOL/CAPITAL*100)))次幂} STICKLINE(Var1>2 AND VOL 16、POW 乘幂 用法:POW(A,B)返回A的B次幂。 例如:POW(CLOSE,3)求得收盘价的3次方。请看预测指标: Var2:=EMA(CLOSE,100)-EMA(CLOSE,50); Var3:=EMA(Var2,60); Var4:=(Var2-Var3)*2; ZX: IF( Var4>0.3,POW(Var4,3)*10/10+POW(Var4,2),0); ZY: EMA(ZX,3); LING: 0; 17、SQRT 开平方 用法:SQRT(X)为X的平方根。 例如:SQRT(CLOSE)收盘价的平方根。请看指标: 底(-SQRT(SQRT(FLOOR(SQRT((MA(((1)/(WINNER(CLOSE)))*(100),4))/(10000)))))))*(5)),Color4455EE; STICKLINE((底<(-2)),0,底,1.5,1),Color2222FF; 18、SIN 正弦值 用法:SIN(X)返回X的正弦值。 19、COS 余弦值 用法:COS(X)返回X的余弦值。正弦波是自然界最常见的波形。正弦波和余弦波的波形是一样的,无非是相差π/2弧度(90度)的相位。 主要应用在技术分析中的周期分析上。那么在指标中画出正弦波应该是很容易了吧。看看这2个函数在指标中的运用: A:=COUNT(C,0)=1; B:=BARSLAST(A);{1,2,3,4,.....} 正弦值:SIN(B); 余弦值:COS(B); 正余平方和:POW(正弦值,2)+POW(余弦值,2); 正弦180度:SIN(3.1415926); 但是看起来不太光滑.究其原因,是因为正弦波的周期是2π,当X取值较大时(1,2,3,...)时,返回值就不太“精密”了,也就是说构成波形的点数不够。这个就好办了,我们可以把数列的值都减小N倍,再来看看效果。 A:=COUNT(C,0)=1; B:=BARSLAST(A)/N;{参数N:1 999 10} 正弦值:SIN(B); 余弦值:COS(B); 调整参数N,就可以发现,N取值越大,波形就越光滑。当N取3时,就有不错的光滑度。当N取10时,就非常光滑了。N调整得越大,在2π周期中的点数就越多,一个完整波形的周期内所含的日期差(在日K线中)就越大了。 20、TAN 正切值 TAN(X)返回X 的正切值。正切值的绝对值,最小是0,最大趋向于无穷大。当正弦值接近1时,正切值接近于无穷大。请看: A:=COUNT(C,0)=1; B:=BARSLAST(A)/N;{参数N:1 999 10} 正弦值:SIN(B); 余弦值:COS(B); TAN(B); 以下几个函数很少用到,做一下简单了解就行了。你可以挖掘这几个函数的运用,也许会有出乎意料的收获。 21、ASIN 反正弦值 用法:ASIN(X)返回X的反正弦值。 22、SGN 符号值 求符号值。 用法:SGN(X),当X>0,X<0分别顺1,0,-1。 23、ACOS 反余弦值 用法:ACOS(X)返回X的反余弦值。 24、LN自然对数 求自然对数。 用法:LN(X)以e为底的对数。 例如:LN(CLOSE)求收盘价的对数。 25、SIN 正弦值 用法:SIN(X)返回X的正弦值。 |
|