aa:=ema(c,n1);
bb:=ema(c,n2);
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,m);
KD:=cross(aa,bb) AND close>bb and REF(CLOSE,1)>bb and REF(CLOSE,2)>bb; //开多条件
PD:=LOW<(bb-0.5*ATR) or cross(bb,aa); //平多条件
KK:=CROSS(bb,aa) AND COUNT(close<bb,3)<=3; //开空条件
PK:=HIGH>(bb+0.5*ATR) or Cross(aa,bb); //平空条件
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD,1,NEXTOPEN); //开多信号
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK,1,NEXTOPEN); //开空信号
STICKLINE(holding>0,h,l,5,0),colorred;
stickline(holding<0,h,l,5,0),colorblue;
代码如上:此主题相关图片如下:qq图片.jpg
您好,对应图表信号有无问题用户需要学会自行调试!
对应您时候的此处我们也不清楚到底哪个周期下的什么时候,无法为您做判断呢!
调试技巧可以学习此贴: http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=1246&page=2
N1=5,N2=60,M=14,谢谢
我发现有时候平空后,下一根K线再次满足要求,本该重新开空,但是却没有信号,或者相反平多后,下一根或几根K线符合开多条件,却没有开多信号
这个可能是因为我缺少某个函数的原因,请老师帮忙看看,谢谢
通过这种方式调试我们的公式语句编写首先要主意的就是语句的执行要多用中间变量隔开,例如:
VR := SUM((IF(CLOSE>OPEN,VOL,0)+IF(CLOSE=OPEN,VOL/2,0)),p)/
SUM((IF(CLOSE<OPEN,VOL,0)+IF(CLOSE=OPEN,VOL/2,0)),p)*100;
ENTERLONG:CROSS(LL,VR);
EXITLONG:CROSS(VR,LH);
上述的公式VR把多个表达合在一起,这样做法不利于我们的调试,因为上述的任何的一个小环节出问题都会导致整个VR的输出环节异常,而仅凭肉眼将很难找出问题的原因,比较好的方法是将上述的公式行拆分,通过中间变量隔开,这样我们就可以通过调试来具体的找出具体哪个环节出的问题。
==老师,这个是调试页面的内容,文中的以下这段代码的意思我根据代码解释百思不得其解,能不能请老师用中文解释下转段:VR := SUM((IF(CLOSE>OPEN,VOL,0)+IF(CLOSE=OPEN,VOL/2,0)),p)/
SUM((IF(CLOSE<OPEN,VOL,0)+IF(CLOSE=OPEN,VOL/2,0)),p)*100;另外,代码里的LL,LH好像都没有定义对不对?