欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]注册表数值写入有误

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3102人关注过本帖树形打印复制链接

主题:[求助]注册表数值写入有误

帅哥哟,离线,有人找我吗?
wujiazhu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
[求助]注册表数值写入有误  发帖心情 Post By:2016/7/26 15:38:00 [只看该作者]

GZ:=STRCAT(STRTRIMRIGHT(STKLABEL,STRRIGHT(STKLABEL,2)),'GZ');//跟踪价
GZQ:=STRCAT(STRTRIMRIGHT(STKLABEL,STRRIGHT(STKLABEL,2)),'GZQ');//跟踪周期

GZX:GETREGVAL('SettingBJX',GZ,0);
GZZQ:GETREGVAL('SettingBJX',GZQ,0);

RMZQ:=REF(MA(C,GZZQ),GZZQ*0.2);
RMZQ1:=CONST(ROUND(RMZQ));
IF GZX<>RMZQ1 THEN SETREGVAL('SettingBJX',GZ,RMZQ1);

这个公式我应用在二十多个期货指数品种,已有几次发现出错,而且都是单个品种出现,其他品种均正确
今天FG13玻璃指数的GZZQ=640,写入注册表的的GZX值出现错误如下图

图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:无标题1.png
图片点击可在新窗口打开查看

请帮忙查查原因

 回到顶部
帅哥哟,离线,有人找我吗?
wujiazhu
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
  发帖心情 Post By:2016/7/26 15:40:28 [只看该作者]

我检查过 RMZQ1的结果都是正确的。就是GZX出现错误

 回到顶部
帅哥哟,离线,有人找我吗?
wujiazhu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
  发帖心情 Post By:2016/7/26 15:55:17 [只看该作者]

模式是序列模式

 回到顶部
帅哥哟,离线,有人找我吗?
wujiazhu
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
  发帖心情 Post By:2016/7/26 16:10:23 [只看该作者]

问题二:

RMA20:=ref(ma(c,20),4);
RMA40:=ref(ma(c,40),8);
RMA80:=ref(ma(c,80),16);
RMA160:=ref(ma(c,160),32);
RMA320:=ref(ma(c,320),64);
RMA640:=ref(ma(c,640),128);


C20:=IF(REF(CROSS(C,RMA20),1) OR REF(CROSS(RMA20,C),1),20,0);
C40:=IF(REF(CROSS(C,RMA40),1) OR REF(CROSS(RMA40,C),1),40,0);
C80:=IF(REF(CROSS(C,RMA80),1) OR REF(CROSS(RMA80,C),1),80,0);
C160:=IF(REF(CROSS(C,RMA160),1) OR REF(CROSS(RMA160,C),1),160,0);
C320:=IF(REF(CROSS(C,RMA320),1) OR REF(CROSS(RMA320,C),1),320,0);
C640:=IF(REF(CROSS(C,RMA640),1) OR REF(CROSS(RMA640,C),1),640,0);

ZQ:=MAX(MAX(MAX(MAX(MAX(C20,C40),C80),C160),C320),C640);//开仓选择的周期

IF ZQ>GZZQ THEN BEGIN SETREGVAL('SettingBJX',GZQ,ZQ);
END

有时候ZQ变大了GZQ也不会更新,也只是有时候会出现这样的问题



 回到顶部
帅哥哟,离线,有人找我吗?
wujiazhu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
  发帖心情 Post By:2016/7/27 9:27:43 [只看该作者]

怎么没人回答我的问题?

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/7/27 9:36:14 [只看该作者]

IF ZQ>GZZQ THEN
BEGIN
SETREGVAL('SettingBJX',GZQ,ZQ);
debugfile
END
加一个deugfile看下大于的时候有没有输出,确认条件进入了if里面

图片点击可在新窗口打开查看此主题相关图片如下:{wwu)vhc1kct_siocw(f25.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
wujiazhu
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
  发帖心情 Post By:2016/7/27 14:04:46 [只看该作者]

请再解答一下第一个问题

 

金字塔版本:3.80

 

图表、后台,   运行模式都是:序列模式

                    工具--选项--维护,内存保留:800,图形显示:800

后台设置如下:

运行周期:日K线

固定时间间隔:2秒

使用   800   根K线。

 

图表显示是正确的

后台写入注册表的值,跟图表不一样,怀疑是后台计算出来的值就是错误的,希望工作人员能帮我跟踪答疑,谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/7/27 15:58:19 [只看该作者]

GZZQ:GETREGVAL('SettingBJX',GZQ,0);

这个值取到了0,所以对后面的计算ma还有ref的参数都是0了造成后面的计算其实都是不对的

你把GZZQ定义成一个有数值的数字然后就是正确的了


 回到顶部
帅哥哟,离线,有人找我吗?
wujiazhu
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:175 积分:860 威望:0 精华:0 注册:2010/9/17 13:04:50
  发帖心情 Post By:2016/7/27 16:53:53 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:无标题3.png
图片点击可在新窗口打开查看

 

GZZQ取值正确,计算仍不正确。

我初步研究应该是计算k线数据出了问题,在图表我缩小k线就没问题了。但后台我一直用的都是800k仍有上述问题


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/7/27 17:58:17 [只看该作者]

GZZQ把这个定义成一个具体变量然后看下呢

IF GZX<>RMZQ1 and ifislastbar THEN SETREGVAL('SettingBJX',GZ,RMZQ1);
写入的操作限制在最新一根k上才进行写入,试试呢

 回到顶部