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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 代码中两个莫名其妙的问题!

   

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


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

主题:代码中两个莫名其妙的问题!

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


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
代码中两个莫名其妙的问题!  发帖心情 Post By:2012/3/8 20:42:37    Post IP:221.204.184.146[只看该作者]

两个问题(注释中也有写):
  1、下面代码中why1与why2为什么不相同?
  2、Length2 的两种声明方式为什么会导致不同的Fisher_2?

我觉得我犯了低级错误,可实现找不出来了,求点化:)


RUNMODE            :    0;

//###########################################
_BARPOS            :=     BARPOS;

Fisher            :    0;
Trigger1        :    0, linethick0;
Trigger2        :    0, linethick0;
Value1            :=    0;

Fisher_2         :     0;
Value2             :=    0;

VARIABLE         :    Length = 8;
IF _BARPOS <= Length * 2 THEN EXIT;
 

price := (High + Low) / 2; //"JMA.JMA"(2); //(High + Low) / 2; "AMA.AMA";

{1 注释掉此段代码,why1 why2便相同了}
MaxH := HHV(price, Length);
MinL := LLV(price, Length);
Value1 := 0.5 * 2.0 * ((price - MinL) / (MaxH - MinL) - 0.5) + 0.5 * Value1[_BARPOS-1];
if Value1 > 0.9999 THEN Value1 := 0.9999;
if Value1 < -0.9999 THEN Value1 := -0.9999;
Fisher := 0.25 * Log((1 + Value1) / (1 - Value1)) + 0.5 * Fisher[_BARPOS-1];
Trigger1 := REF(Fisher, 1);
Trigger2 := Fisher[_BARPOS-1];


{2 下面两句会出现不同的Fisher_2值,为什么?}
//Length2 := Length;
VARIABLE         :    Length2 = Length;

Value2 := 0.5 * 2.0 * ((price - LLV(price, Length2)) / (HHV(price, Length2) - LLV(price, Length2)) - 0.5) + 0.5 * Value2[_BARPOS-1];
if Value2 > 0.9999 THEN Value2 := 0.9999;
if Value2 < -0.9999 THEN Value2 := -0.9999;
Fisher_2 := 0.25 * Log((1 + Value2) / (1 - Value2)) + 0.5 * Fisher_2[_BARPOS-1];
why1 : REF(Fisher_2, 1), LINETHICK0;
why2 : Fisher_2[_BARPOS-1], LINETHICK0;

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/3/9 9:01:46    Post IP:58.246.57.26[只看该作者]

问题正在解决中



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
  发帖心情 Post By:2012/3/16 16:12:36    Post IP:121.18.236.198[只看该作者]

请问 这个问题有结果了吗?

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/3/16 20:16:57    Post IP:123.114.253.251[只看该作者]

很难理解你的代码用意,这种问题别人很难从中解决,建议 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题4, 仔细阅读金字塔的调试教程,使用单步跟踪,看看到底是问题出在哪一句上,具体到某个函数后,再有疑问我们就可以帮助解决了


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
matador_liu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
  发帖心情 Post By:2012/3/21 21:08:58    Post IP:111.161.10.55[只看该作者]

 不用理解代码用意:)这一个简单数学算法(对一些变量作fisher转换),我只是怀疑代码编译有问题!即:
why1 : REF(Fisher_2, 1), LINETHICK0;
why2 : Fisher_2[_BARPOS-1], LINETHICK0;

这句中,wh1与wh2值应该相同才是,但在这段代码中它们是不同的!

可以这样验证:将这段代码中Fisher_2全部替换为Fiii_2,这时wh1与wh2值是相同的!

我猜测:代码中同时存在 Fisher与 Fisher_2两个变量,编译器有bug,语句分析有问题!因为前两天我还碰到类似问题,即代码中有CPeriod变量,但编译不过去,提示“2Period如何如何”,但我的代码中真没有2Period这个变量,也不是CPeriod重复定义问题,一看就是编辑阶段问题。后将此变量改为CP后就编译通过了!

这是能提示错误,还好;像前段代码中不提示却计算错误,则太可怕了!请即时跟踪此问题,多谢!!

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2012/3/22 11:18:32    Post IP:58.246.57.26[只看该作者]

正在解决处理


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
求助:自定义函数调用问题  发帖心情 Post By:2012/3/23 11:30:00    Post IP:180.168.176.99[只看该作者]

问题已经得到解决,主要原因是变量名在编译时只采用了前面位数进行匹配,你暂时都使用REF来控制处理就可以了,等待下个版本升级

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


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
  发帖心情 Post By:2012/3/23 14:43:00    Post IP:202.108.19.1[只看该作者]

 主要是用在判断和循环语句内,用REF还要在外面声明。请给我说一下怎么命名能回避这个问题就好啦,多谢!

 回到顶部