以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]跨周期引用的bug  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=62839)

--  作者:bbking
--  发布时间:2014/3/19 9:58:58
--  [求助]跨周期引用的bug
2014-03-18 15:00:00.024    =======
2014-03-18 15:00:00.024    xn=4697.00000
2014-03-18 15:00:00.024    bkl1=4916.00000
2014-03-18 15:00:00.024    skl1=4692.00000
2014-03-18 15:00:00.024    bpl1=4916.00000
2014-03-18 15:00:00.024    spl1=4648.00000
2014-03-18 15:00:00.024    atr1=75.00000
2014-03-18 15:00:00.024    hold1=3.00000
2014-03-18 15:00:00.024    fa1=44.00000
2014-03-18 15:00:00.039    enterp1=4681.00000
2014-03-18 15:00:00.039    bkl2=4776.00000
2014-03-18 15:00:00.039    skl2=4496.00000
2014-03-18 15:00:00.039    bpl2=4636.00000
2014-03-18 15:00:00.039    spl2=4636.00000
2014-03-18 15:00:00.039    atr2=75.00000
2014-03-18 15:00:00.039    hold2=2.00000
2014-03-18 15:00:00.039    fa2=24.00000
2014-03-18 15:00:00.039    enterp2=4818.00000
2014-03-18 15:00:00.039    bkl4=4967.00000
2014-03-18 15:00:00.039    skl4=4549.00000
2014-03-18 15:00:00.039    bpl4=4758.00000
2014-03-18 15:00:00.039    spl4=4758.00000
2014-03-18 15:00:00.039    atr4=33.00000
2014-03-18 15:00:00.039    hold4=0.00000
2014-03-18 15:00:00.039    fa4=12.00000
2014-03-18 15:00:00.039    enterp4=4691.00000
2014-03-18 15:00:00.039    bkl6=4962.00000
2014-03-18 15:00:00.039    skl6=4550.00000
2014-03-18 15:00:00.039    bpl6=4756.00000
2014-03-18 15:00:00.039    spl6=4756.00000
2014-03-18 15:00:00.039    atr6=18.00000
2014-03-18 15:00:00.039    hold6=-2.00000
2014-03-18 15:00:00.039    fa6=20.00000
2014-03-18 15:00:00.039    enterp6=4698.00000
2014-03-18 15:00:00.039    aa=6.00000
2014-03-19 09:00:04.065    =======
2014-03-19 09:00:04.065    xn=4715.00000
2014-03-19 09:00:04.065    bkl1=4916.00000
2014-03-19 09:00:04.065    skl1=4682.00000
2014-03-19 09:00:04.065    bpl1=4916.00000
2014-03-19 09:00:04.065    spl1=4648.00000
2014-03-19 09:00:04.065    atr1=75.00000
2014-03-19 09:00:04.065    hold1=3.00000
2014-03-19 09:00:04.065    fa1=44.00000
2014-03-19 09:00:04.065    enterp1=4681.00000
2014-03-19 09:00:04.065    bkl2=4779.00000
2014-03-19 09:00:04.065    skl2=4498.00000
2014-03-19 09:00:04.065    bpl2=4638.00000
2014-03-19 09:00:04.065    spl2=4638.00000
2014-03-19 09:00:04.065    atr2=75.00000
2014-03-19 09:00:04.065    hold2=2.00000
2014-03-19 09:00:04.081    fa2=24.00000
2014-03-19 09:00:04.081    enterp2=4818.00000
2014-03-19 09:00:04.081    bkl4=0.00000
2014-03-19 09:00:04.081    skl4=4558.00000
2014-03-19 09:00:04.081    bpl4=4745.00000
2014-03-19 09:00:04.081    spl4=4745.00000
2014-03-19 09:00:04.081    atr4=32.00000
2014-03-19 09:00:04.081    hold4=1.00000
2014-03-19 09:00:04.081    fa4=10.00000
2014-03-19 09:00:04.097    enterp4=4760.00000
2014-03-19 09:00:04.097    bkl6=0.00000
2014-03-19 09:00:04.097    skl6=4553.00000
2014-03-19 09:00:04.097    bpl6=4750.00000
2014-03-19 09:00:04.097    spl6=4750.00000
2014-03-19 09:00:04.097    atr6=17.00000
2014-03-19 09:00:04.097    hold6=-2.00000
2014-03-19 09:00:04.097    fa6=20.00000
2014-03-19 09:00:04.097    enterp6=4699.00000
2014-03-19 09:00:04.097    aa=10.00000
2014-03-19 09:00:04.159    =======


2014-03-19 09:00:18.340    =======
2014-03-19 09:00:18.355    xn=4720.00000
2014-03-19 09:00:18.355    bkl1=4916.00000
2014-03-19 09:00:18.355    skl1=4682.00000
2014-03-19 09:00:18.355    bpl1=4916.00000
2014-03-19 09:00:18.355    spl1=4648.00000
2014-03-19 09:00:18.371    atr1=75.00000
2014-03-19 09:00:18.371    hold1=3.00000
2014-03-19 09:00:18.371    fa1=44.00000
2014-03-19 09:00:18.371    enterp1=4681.00000
2014-03-19 09:00:18.371    bkl2=4779.00000
2014-03-19 09:00:18.371    skl2=4498.00000
2014-03-19 09:00:18.371    bpl2=4638.00000
2014-03-19 09:00:18.371    spl2=4638.00000
2014-03-19 09:00:18.371    atr2=75.00000
2014-03-19 09:00:18.371    hold2=2.00000
2014-03-19 09:00:18.371    fa2=24.00000
2014-03-19 09:00:18.371    enterp2=4818.00000
2014-03-19 09:00:18.371    bkl4=0.00000
2014-03-19 09:00:18.371    skl4=4558.00000
2014-03-19 09:00:18.371    bpl4=4745.00000
2014-03-19 09:00:18.371    spl4=4745.00000
2014-03-19 09:00:18.371    atr4=32.00000
2014-03-19 09:00:18.371    hold4=1.00000
2014-03-19 09:00:18.386    fa4=12.00000
2014-03-19 09:00:18.386    enterp4=4720.00000
2014-03-19 09:00:18.386    bkl6=0.00000
2014-03-19 09:00:18.386    skl6=4553.00000
2014-03-19 09:00:18.386    bpl6=4750.00000
2014-03-19 09:00:18.386    spl6=4750.00000
2014-03-19 09:00:18.386    atr6=17.00000
2014-03-19 09:00:18.386    hold6=-2.00000
2014-03-19 09:00:18.386    fa6=20.00000
2014-03-19 09:00:18.386    enterp6=4699.00000
2014-03-19 09:00:18.386    aa=0.00000
2014-03-19 09:00:19.510    =======
2014-03-19 09:00:19.510    xn=4720.00000
2014-03-19 09:00:19.510    bkl1=4916.00000
2014-03-19 09:00:19.510    skl1=4682.00000
2014-03-19 09:00:19.510    bpl1=4916.00000
2014-03-19 09:00:19.510    spl1=4648.00000
2014-03-19 09:00:19.510    atr1=75.00000
2014-03-19 09:00:19.510    hold1=3.00000
2014-03-19 09:00:19.510    fa1=44.00000
2014-03-19 09:00:19.510    enterp1=4681.00000
2014-03-19 09:00:19.510    bkl2=4779.00000
2014-03-19 09:00:19.510    skl2=4498.00000
2014-03-19 09:00:19.510    bpl2=4638.00000
2014-03-19 09:00:19.510    spl2=4638.00000
2014-03-19 09:00:19.510    atr2=75.00000
2014-03-19 09:00:19.510    hold2=2.00000
2014-03-19 09:00:19.510    fa2=24.00000
2014-03-19 09:00:19.510    enterp2=4818.00000
2014-03-19 09:00:19.510    bkl4=4932.00000
2014-03-19 09:00:19.510    skl4=4558.00000
2014-03-19 09:00:19.510    bpl4=4745.00000
2014-03-19 09:00:19.525    spl4=4745.00000
2014-03-19 09:00:19.525    atr4=32.00000
2014-03-19 09:00:19.525    hold4=0.00000
2014-03-19 09:00:19.525    fa4=12.00000
2014-03-19 09:00:19.525    enterp4=4720.00000
2014-03-19 09:00:19.525    bkl6=4947.00000
2014-03-19 09:00:19.525    skl6=4553.00000
2014-03-19 09:00:19.525    bpl6=4750.00000
2014-03-19 09:00:19.525    spl6=4750.00000
2014-03-19 09:00:19.525    atr6=17.00000
2014-03-19 09:00:19.525    hold6=-2.00000
2014-03-19 09:00:19.525    fa6=20.00000
2014-03-19 09:00:19.525    enterp6=4699.00000
2014-03-19 09:00:19.525    aa=10.00000
2014-03-19 09:00:19.588    =======


ma4:=stkindiex(\'\',\'z_z1.ma1(12,4,4,2,16)\',0,5,-1,22);
std4:=stkindiex(\'\',\'z_z1.std1(12,4,4,2,16)\',0,5,-1,22);
SETREGVAL(\'furlty\',\'furlty_sr_bkl4\',ma4+4*std4);
SETREGVAL(\'furlty\',\'furlty_sr_skl4\',ma4-4*std4);
SETREGVAL(\'furlty\',\'furlty_sr_bpl4\',ma4);
SETREGVAL(\'furlty\',\'furlty_sr_spl4\',ma4);
SETREGVAL(\'furlty\',\'furlty_sr_atr4\',stkindiex(\'\',\'z_z1.atr(12,4,4,2,16)\',0,5,-1,22));

bkl4:=GETREGVAL(\'furlty\',\'furlty_sr_bkl4\',99999);
skl4:=GETREGVAL(\'furlty\',\'furlty_sr_skl4\',0);
bpl4:=GETREGVAL(\'furlty\',\'furlty_sr_bpl4\',99999);
spl4:=GETREGVAL(\'furlty\',\'furlty_sr_spl4\',0);
atr4:=GETREGVAL(\'furlty\',\'furlty_sr_atr4\',0);
hold4:=if(GETREGVAL(\'furlty\',\'furlty_sr_hold4\',0)<10000,GETREGVAL(\'furlty\',\'furlty_sr_hold4\',0),10000-GETREGVAL(\'furlty\',\'furlty_sr_hold4\',0));
fa4:=GETREGVAL(\'furlty\',\'furlty_sr_fa4\',0);
enterp4:=GETREGVAL(\'furlty\',\'furlty_sr_enterp4\',0);


这跨周期引用开盘老是出问题~已经不是第一次了
这次终于debug显示出来了~
你看看skl4显示正常~而bkl4一开始为0~导致hold4赋值错误~
隔了十多秒后才显示回正常值~hold4再次赋值~
这一来一去我得下单操作的~

跨周期引用为何同样的几句有的会赋值错误?

--  作者:lichenghu
--  发布时间:2014/3/19 10:07:16
--  

 按理说如果bkl4没有值,那么对应的skl4也应该没有值。

 

怎么一个是0,一个值正常。应该是值没写到注册列表里面去把

如果您直接DEBUGFILE输出ma4和std4的值,应该没问题

 


--  作者:bbking
--  发布时间:2014/3/19 10:10:44
--  

按理说如果bkl4没有值,那么对应的skl4也应该没有值。

 

怎么一个是0,一个值正常。应该是值没写到注册列表里面去把




我也是觉得奇怪啊~

为啥一个正确一个为0~

而且后面那个BKL4又回复正常了~

太费解了...


--  作者:bbking
--  发布时间:2014/3/19 10:12:12
--  
由于品种较多~是否因此而导致写入注册表失败?
之前考虑过你们所说的自定义数据~
但是自定义数据不能使用单品种单指标的自定义数据啊~必须使用一个板块的~
不如跨期引用还能使用不同指标参数方便~

能否改改啊

--  作者:lichenghu
--  发布时间:2014/3/19 10:19:09
--  

 这个要判定是注册失败还是跨周期的问题,您可加2句debugfiel输出下ma4和std4的值。

确定问题后,我们再分析下怎么去处理。好把,劳烦


--  作者:bbking
--  发布时间:2014/3/19 10:19:48
--  
这种问题盘中一般没有出现过~
但是9点开盘的时候经常出现~
个别跨周期引用较多的品种出现频率最高~

--  作者:bbking
--  发布时间:2014/3/19 10:20:51
--  
debugfiel输出下ma4和std4的值

OK~我再调试几天看看~

--  作者:lichenghu
--  发布时间:2014/3/19 10:22:01
--  
 不清楚是不是开盘时读取数据有问题,回头我本地也看下
--  作者:bbking
--  发布时间:2014/3/19 10:47:07
--  
反正我程序的这个写法在交易时间段没出现啥问题
就是开盘第一分钟~一般有1-2个品种出现问题
我总共交易10个商品~

而且出问题的都是实盘机器~
我用另外一个没连实盘帐号也没连模拟帐号的机器跑同样的后台程序
预警显示正常~出bug的几个预警都没出现...不知道为啥

--  作者:bbking
--  发布时间:2014/3/19 10:48:05
--  
之所以写进注册表是觉得注册表安全~
一旦机器崩溃可以立马重启继续交易~注册表的键值不会发生任何改变~
但是听说这样弄牺牲了速度