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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 赋值语句执行后变量值没有变化

   

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


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

主题:赋值语句执行后变量值没有变化

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


加好友 发短信
等级:新手上路 帖子:66 积分:0 威望:0 精华:0 注册:2018/3/27 11:07:36
赋值语句执行后变量值没有变化  发帖心情 Post By:2018/4/22 17:56:36    Post IP:116.25.42.38[显示全部帖子]

 有一个指标显示的值不正确,单步跟踪后发现赋值语句执行后变量值没有变化。
赋值语句是 NearRedMACDStartPos:= BarPosCursor + 1;  执行完后并没有把BarPosCursor + 1的值赋给NearRedMACDStartPos。

如下图1, NearRedMACDStartPos:= BarPosCursor + 1 执行前,BarPosCursor = 262, NearRedMACDStartPos = 1.

 


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


 

如下图2,NearRedMACDStartPos:= BarPosCursor + 1 执行时,BarPosCursor = 262, NearRedMACDStartPos = 1.

 


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

 

如下图3,4, NearRedMACDStartPos:= BarPosCursor + 1 执行后,NearRedMACDStartPos 变量的值没有任何变化,仍然为1.

 


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


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

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


加好友 发短信
等级:新手上路 帖子:66 积分:0 威望:0 精华:0 注册:2018/3/27 11:07:36
  发帖心情 Post By:2018/4/22 19:42:06    Post IP:116.25.42.38[显示全部帖子]

不是全局变量,只是普通变量,在指标开始设置了NearRedMACDStartPos = 1。 因为前面有循环语句和IF各种判断,图表上输出很难知道是不是因为前面没有满足条件没有赋值。

 

原因已经找到NearRedMACDStartPos:= BarPosCursor + 1 语句中变量NearRedMACDStartPos 后面有一个非法字符,在金字塔的编辑器中显示为空白,把语句复制到写字板显示为非法字符(ASCII 码 7F),这部分代码都是手工打的,不知道怎么进去的。

 

希望金字塔编辑器能在编译的时候检查脚本是否有非法字符,或变量名是否有非法字符。

 


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


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


加好友 发短信
等级:新手上路 帖子:66 积分:0 威望:0 精华:0 注册:2018/3/27 11:07:36
  发帖心情 Post By:2018/4/24 14:33:51    Post IP:116.25.42.199[显示全部帖子]

1. 关于非法字符的问题,在编译过程中并没有提示,而且我随时可以重现这个问题。

 

A:1;                               
A:2;

 

请把上面两行原封不动的拷入到金字塔的公式编辑器,第二行“A:2; ”  的A后面实际上有个非法字符,拷入后在图表上显示如下图,显然金字塔把第二行的A加上那个非法字符作为一个变量来看待了,并没有报错。

 


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

 

 

2. 至于FOR循环问题,是因为有个Ref(Hhv,X)的问题实现不了,我在另外一个帖子里面提到了,见http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=162928&skin=0        现在我只好用循环语句+数组来实现,实现以后发现速度确实有点慢,但好像没其他办法。

   

[此贴子已经被作者于2018/4/24 14:35:39编辑过]

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


加好友 发短信
等级:新手上路 帖子:66 积分:0 威望:0 精华:0 注册:2018/3/27 11:07:36
  发帖心情 Post By:2018/4/25 13:01:09    Post IP:116.25.43.83[显示全部帖子]

以下是引用jimcnab在2018/4/24 14:33:51的发言:

1. 关于非法字符的问题,在编译过程中并没有提示,而且我随时可以重现这个问题。

 

A:1;                               
A:2;

 

请把上面两行原封不动的拷入到金字塔的公式编辑器,第二行“A:2; ”  的A后面实际上有个非法字符,拷入后在图表上显示如下图,显然金字塔把第二行的A加上那个非法字符作为一个变量来看待了,并没有报错。

 


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

 

 

2. 至于FOR循环问题,是因为有个Ref(Hhv,X)的问题实现不了,我在另外一个帖子里面提到了,见http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=162928&skin=0        现在我只好用循环语句+数组来实现,实现以后发现速度确实有点慢,但好像没其他办法。

   

[此贴子已经被作者于2018/4/24 14:35:39编辑过]


第1个问题是否金字塔可以改进,第2个问题是否有更好的解决方法?

 回到顶部