以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  请老师帮忙看看图形不显示交易信号是什么问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=61030)

--  作者:koyoka
--  发布时间:2014/1/16 19:19:39
--  请老师帮忙看看图形不显示交易信号是什么问题

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
按此在新窗口浏览图片


此主题相关图片如下:qq图片20140116.jpg
按此在新窗口浏览图片

--  作者:jinzhe
--  发布时间:2014/1/17 9:05:13
--  
N1,N2和M是多少
--  作者:lichenghu
--  发布时间:2014/1/17 9:06:33
--  

您好,对应图表信号有无问题用户需要学会自行调试!

 

对应您时候的此处我们也不清楚到底哪个周期下的什么时候,无法为您做判断呢!

调试技巧可以学习此贴: http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=1246&page=2


--  作者:koyoka
--  发布时间:2014/1/17 14:28:15
--  

N1=5,N2=60,M=14,谢谢


--  作者:koyoka
--  发布时间:2014/1/17 14:29:41
--  

我发现有时候平空后,下一根K线再次满足要求,本该重新开空,但是却没有信号,或者相反平多后,下一根或几根K线符合开多条件,却没有开多信号


--  作者:koyoka
--  发布时间:2014/1/17 14:33:33
--  

这个可能是因为我缺少某个函数的原因,请老师帮忙看看,谢谢

 


--  作者:jinzhe
--  发布时间:2014/1/17 14:33:34
--  
就如同上面说所,按照连接里面的调试方法,调试输出条件和条件相关的变量之后做分析
--  作者:koyoka
--  发布时间:2014/1/17 18:14:34
--  

通过这种方式调试我们的公式语句编写首先要主意的就是语句的执行要多用中间变量隔开,例如:

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好像都没有定义对不对?


--  作者:koyoka
--  发布时间:2014/1/17 20:27:26
--  
调试了下发现一个问题,问题的核心在于当满足平空或平多条件后,没有反向开仓,则无法在之前的方向上建立仓位,问题在这里!!!比方:满足平多条件后,市场又迅速满足了开多条件,则我编写的系统无法进行开多条件,如果要再开多,必须要先开空,平空后再开多,请问如何解决这个问题?
--  作者:koyoka
--  发布时间:2014/1/17 20:35:37
--  
另外,我想问下关于调试的视频有没有?光光看文字还是太抽象了,有很多不明白的地方,谢谢