以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  图表交易提前n秒下单的代码是否有漏洞?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=139505)

--  作者:uranusmoon
--  发布时间:2016/9/12 14:16:29
--  图表交易提前n秒下单的代码是否有漏洞?
提前n秒下单,用的是众多坛友用的经典的控制代码:
p2:=if(islastbar,dynainfo(207),time);
p3:=time0-timetot0(p2),linethick0;

今天有一个奇怪的问题,模拟交易rb连续,1秒轮询,15分周期,11:15:32时候居然有平空开多的交易,但当时图表上并没有信号。查纪录,发现是11:15:25触发下单,这就奇怪了,因为我设置下单都需要满足条件p3<=5,即提前5秒下单,而15分周期窗口在11:25:25时刻应该不可能满足p3<5。想来想去怀疑是否p3的计算可能有漏洞,即提取time0,dynainfo(207)、time等函数的值时万一出现错误,使得p3的计算值为零或者为负数,导致不能正确控制下单时刻,交易信号忽闪??

--  作者:jinzhe
--  发布时间:2016/9/12 14:23:55
--  

胡思乱想这么多还不如用实际的调试来验证你的想法

用debugfile来分别输出:p2;p3;p3>5;time0;time0-timetot0(p2);timetot0(p2)

这几项,看看在下单时,分别为多少

--  作者:uranusmoon
--  发布时间:2016/9/12 14:43:47
--  
主要这问题难得一见,几十天头一次见,我也真搞不懂怎么回事。调试倒是会,没时间分析这么小概率的事件阿。
--  作者:jinzhe
--  发布时间:2016/9/12 14:45:21
--  
那把你代码发过来,我本地测一下
--  作者:uranusmoon
--  发布时间:2016/9/12 14:56:35
--  
大哥,几十天碰到一次的问题,怎么测试。代码就是阿火提的提前n秒下单代码,论坛里很多人在用。

p2:=if(islastbar,dynainfo(207),time);
p3:=time0-timetot0(p2),linethick0;

交易代码:
SELL(平多条件 AND HOLDING>0 and p3<=5,0,limitr,jgs-hdk);
SELLSHORT(平空仓条件 AND HOLDING<0 and p3<=5,0,limitr,jgx+hdd);
BUY(开多条件 AND HOLDING=0 and p3<=5,手数,limitr,jgx+hdd);
BUYSHORT(开空条件 AND HOLDING=0 and p3<=5,手数,limitr,jgs-hdk);

--  作者:jinzhe
--  发布时间:2016/9/12 15:01:39
--  
那麻烦按照上面的调试要求编写调试代码进策略里面。等再一次碰到问题时,发送调试日志和下单日志到论坛上
--  作者:uranusmoon
--  发布时间:2016/9/12 15:12:34
--  
用debugfile监控的方法也许可行,但是我框架内有6个窗口,每个窗口都用debugfile监控,导致的程序负担太重了。
--  作者:jinzhe
--  发布时间:2016/9/12 15:14:44
--  
就给你那个出问题的品种测
--  作者:uranusmoon
--  发布时间:2016/9/12 15:21:55
--  
我觉得是随机出现的,不一定哪个品种。
--  作者:jinzhe
--  发布时间:2016/9/12 15:30:08
--  
就测你出现问题的那个,测了再说