大智慧公式编程详细教程八

来源:百度文库 编辑:神马文学网 时间:2024/04/28 13:56:15
大智慧公式编程详细教程八 5、设计中间语句:
 一个语句将显示一条指标线,一个复杂的公式往往有很多语句,而且有些语句没必要显示出来。这时我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的冒号后加个等号 即可。重复使用的语句也可以定义成中间语句。
6、设计其他公式语句:
   其他类型的公式显示的不是指标线,而是相应的操作,如条件选股公式显示的是选股结果,交易系统公式显示的是交易指示,五彩K线公式显示的是K线颜色。这些公式需要有一条或几条逻辑表达式表示这些操作的语句,当语句返回0时表示不需要进行相应的操作,当返回非0时表示需要进行相应的操作。其他的语句都应设定为中间语句。
    条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE>REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。其他的语句必须设定为中间语句,否则编辑器出现“只能有一个输出结果”的警示。
    交易系统公式需要1-4条逻辑表达式语句,分别为多头和空头的切入切出条件语句,分别用ENTERLONG, EXITLONG, ENTERSHORT, EXITSHORT表示多头买入、多头卖出、空头切入、空头切出条件,当这些语句返回非0时,表示需要进行相应的操作。其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:=赋值”的警示。这四个条件中必须至少设定一个条件。
    五彩K线公式可以有1-6条逻辑表达式语句,最多描述6种不同的颜色。
7、设计计算参数:
    我们有时需要调节公式中的常数来看公式的表现,可以直接进入公式修改,更方便的方法是用计算参数来指代公式中的常数,需要调节公式时不需进公式只需调节参数就可以了。比如,经常要修改REF(close,1)中的第二个参数1,这时可以把它设为一个计算参数N,公式写成REF(close,N),到时调节N即可。计算参数包括参数名称、最小值、最大值、缺省值四个部分。参数名称用于标识参数,本例我们将参数名定位N,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。设定参数后,在图形分析窗口显示该指标时,指标名跟着有参数,右键点击参数即可对它进行修改。对于交易系统公式,每个参数还包括一个测试步长,在优化参数时系统从最小值到最大值逐一调整参数,每次调整的增量就是测试步长。例如最小值1,最大值30,步长10,则系统将测试参数1,11,21。最大测试步数为10000次。每个公式可以带有最多16个计算参数。

大智慧引用函数COUNT的运用

函数:COUNT(X,N) 参数: X为数组,N为计算周期
说明:统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
示例:COUNT(CLOSE>OPEN,20);表示统计20周期内收阳的周期数。看下面的指标(自己取名吧),有几条语句用了COUNT函数:
V1:=(MA(CLOSE,80)-MA(CLOSE,13)/3);
神奇线:MA((CLOSE-V1)/V1,1),coloryellow,linethick2;
买点:IF(CROSS(神奇线,0) AND LOW/REF(HIGH,1)<1.012,0.5,0), STICK;
稳赚:IF(COUNT(神奇线>REF(神奇线,1),3)=3 AND COUNT(神奇线<0,10)=10 AND REF(神奇线,3)=LLV(神奇线,10),0.5,0);
V2:=(CLOSE-REF(CLOSE,1))/REF(CLOSE,1)*100;
V3:=(EMA(CLOSE, 6)-EMA(CLOSE, 12))*100;
猎庄:V3<13 AND V2>9,stick,ColorFFFFFF,linethick2;
YD:=(count(c=10 OR count(c=10) and count(H/L>1.048,13)>=7;
DTJJ:=DMA(c,V/MA(V,13)/13);
XJPL:=c/DTJJ<0.91;
a1:=YD and XJPL;
STICKLINE(a1,0,0.50,4,1),colorffcccc;
回调买入:0,colorffcccc;
aa1:=cross(ref(c,3),ref(ma(c,20),3));
bb1:=count(c>ma(c,20),3)=3;
cc1:=cross(c,ma(c,20)) and (c-ma(c,20))/ma(c,20)>0.03;
突破月线:if((aa1 and bb1) or cc1,0.5,0),stick,linethick2,colorred;
drawicon((aa1 and bb1) or cc1,0.6,1);
指标解析:
V1:=(简单移动平均(收盘价,80)-简单移动平均(收盘价,13)/3);
神奇线:简单移动平均((收盘价-V1)/V1,1),coloryellow,linethick2;{画黄色粗线}
买点:条件函数(交叉函数(神奇线,0) AND 最低价/向前引用(最高价,1)<1.012,0.5,0), 棒状线;{在坐标0--0.5处画棒状线}
稳赚:条件函数(统计总数(神奇线>向前引用(神奇线,1),3)=3 AND 统计总数(神奇线<0,10)=10 AND 向前引用(神奇线,3)=最低值(神奇线,10),0.5,0);{在坐标0--0.5处显示脉冲信号}
V2:=(收盘价-向前引用(收盘价,1))/向前引用(收盘价,1)*100;
V3:=(指数平滑移动平均(收盘价, 6)-指数平滑移动平均(收盘价, 12))*100;
猎庄:V3<13 AND V2>9,棒状线,ColorFFFFFF,linethick2;{默认在坐标0--1处画白色棒状线}
YD:=(统计总数(收盘价<向前引用(开盘价,1),13)>=10 OR 统计总数(收盘价<向前引用(收盘价,2),13)>=10) and 统计总数(最高价/最低价>1.048,13)>=7;
DTJJ:=动态移动平均(收盘价,成交量/简单移动平均(成交量,13)/13);
XJPL:=收盘价/DTJJ<0.91;
a1:=YD and XJPL;{两个条件同时成立}
画柱线(a1,0,0.50,4,1),colorffcccc;{在坐标0--0.5处画宽度为4的青色空心棒状线}
回调买入:0,colorffcccc;{在指标图上方显示'回调买入'}
aa1:=交叉函数(向前引用(收盘价,3),向前引用(简单移动平均(收盘价,20),3));
bb1:=统计总数(收盘价>简单移动平均(收盘价,20),3)=3;
cc1:=交叉函数(收盘价,简单移动平均(收盘价,20)) and (收盘价-简单移动平均(收盘价,20))/简单移动平均(收盘价,20)>0.03;
突破月线:条件函数((aa1 and bb1) or cc1,0.5,0),棒状线,linethick2,colorred;{在坐标0--0.5处画红色粗棒状线}
画图标((aa1 and bb1) or cc1,0.6,1);{在坐标0.6处显示红脸}
下面是几个运用COUNT函数的指标例句:
(1)、n日内阴线多于阳线
    count(open>close,n)/n<0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定阴线占全部K线个数的比例)。
(2)、n日内阳线多于阴线
   count(open0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定阳线占全部K线个数的比例)。
(3)、n日内上涨多于下跌(第二天开盘高于前一天收盘)
      count(c>ref(c,1),n)/n>0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定其中比例)。
(4)、n日内上涨少于下跌(第二天开盘低于前一天收盘)
    count(c>ref(c,1),n)/n<0.5;
注:n为指标参数,可在参数设定范围内设定参数范围。同时可以自由编辑里面的数值(如0.5等,达到确定其中比例)。
(5)、连续n日收阳线
  up:=close>open;
      count(up,n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。n为指标参数,可在参数设定范围内设定参数范围。
(6)、连续n日内收阴线
  up:=close      count(up,n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(7)、连续n天上涨
   count(close>ref(close,1),n)=n;
注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
(8)、连续n天下跌
   count(c注:count(x,n),统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始。N为指标参数,可在参数设定范围内设定参数范围。
以上的参数n只要添入你所需要的周期数即可,如5、10、30等日期就是一个完整的指标或选股指标。

         股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。
比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少?看下面指标:
{当日升跌概率}
A:=CB:=REF(A,1) AND C>REF(C,1);{昨天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盘}
E:=REF(A,1) AND CF:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
上升概率:100*COUNT(B,0)/F;
下跌概率:100*COUNT(E,0)/F;
平盘概率:100*COUNT(D,0)/F;
那么连跌两天之后,第三天收盘的各种概率是多少?看下面指标:
A:=CB:=REF(A,1) AND C>REF(C,1);{前两天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{前两天下跌,今天平盘}
E:=REF(A,1) AND CF:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
上升概率:100*COUNT(B,0)/F;
下跌概率:100*COUNT(E,0)/F;
平盘概率:100*COUNT(D,0)/F;
从指数的输出看,概率更明显了。
连跌三天之后呢?看下面指标:
A:=CB:=REF(A,1) AND C>REF(C,1);{前三天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盘}
E:=REF(A,1) AND CF:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0);
上升概率:100*COUNT(B,0)/F;
下跌概率:100*COUNT(E,0)/F;
平盘概率:100*COUNT(D,0)/F;
规律就更明显了。
不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。