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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → IF后使用REF的烦恼

   

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


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

主题:IF后使用REF的烦恼

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


加好友 发短信
等级:新手上路 帖子:62 积分:404 威望:0 精华:0 注册:2010/5/4 22:44:49
IF后使用REF的烦恼  发帖心情 Post By:2012/9/10 11:03:50    Post IP:61.164.103.150[只看该作者]

 input:N(15,0,80,1);////
 VARIABLE: SumXi:=0;
 VARIABLE: SqrSumYi:=0; 
     If (DATE<>REF(DATE,1)) THEN BEGIN
     Xi:=1;
 END

  If (DATE=REF(DATE,1)) THEN      Xi:=Xi+1;
  

    If (Xi>N) THEN BEGIN  
     For i = 1 To N DO BEGIN   
    SumXi=SumXi+Ref(Xi,i);  
    SumYi=SumYi+REF(Close,i);  
     END
     Part:=SumXi+SumYi;
    END

我想表达这样的逻辑;基本上上面能够看懂了,但是金字塔不支持在IF语句后面 使用REF,

请咨询如何实现我代码表达的意思;


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


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

处理中,争取在今天写出


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

客户服务部

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

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

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


加好友 发短信
等级:新手上路 帖子:62 积分:404 威望:0 精华:0 注册:2010/5/4 22:44:49
  发帖心情 Post By:2012/9/10 11:07:28    Post IP:61.164.103.150[只看该作者]

谢谢,我会即使更新的,

题外话,在解决这个问题上TB就非常容易的,他的向前引用不受IF语句的影响。如果能弄的像TB一样方便就好了

申明;我是金字塔的忠实拥护者;哈哈


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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/9/10 11:16:33    Post IP:120.42.45.130[只看该作者]

c[barpos-1] 即可

 

或者用一个变量在if....then .... 结构外记录一下

[此贴子已经被作者于2012-9-10 11:17:16编辑过]

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


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

close[barpos-i]

用这个来替换


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


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

     For i = 1 To N DO BEGIN   
    SumXi=SumXi+xi[barpos-i]; 
    SumYi=SumYi+c[barpos-i]; 
     END

 

这样改吗?



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

客户服务部

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

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

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


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

公式中的XI变量之前未做任何的声明初始,这样的做法,是一种很不好的编程习惯


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


加好友 发短信
等级:新手上路 帖子:62 积分:404 威望:0 精华:0 注册:2010/5/4 22:44:49
  发帖心情 Post By:2012/9/11 10:06:28    Post IP:61.164.103.150[只看该作者]

测试1:ref(c,2),linethick0;
测试2:Close[barpos-2],linethick0;

提示下面一行数组越界 貌似不对吧

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


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

用序列计算试试



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

客户服务部

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

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

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


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

以下是引用haifan1986在2012-9-11 10:06:28的发言:
测试1:ref(c,2),linethick0;
测试2:Close[barpos-2],linethick0;

提示下面一行数组越界 貌似不对吧

 

提示越界的主要原因是当barpos=1的时候,你去减2,自然会越界。

处理办法是用if语句,对序列做限制,前面头一行加上

 

if barpos < 3 then

exit;


 回到顶部
总数 12 1 2 下一页