Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:IF后使用REF的烦恼

1楼
haifan1986 发表于:2012/9/10 11:03:50

 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,

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

2楼
jinzhe 发表于:2012/9/10 11:04:31
处理中,争取在今天写出
3楼
haifan1986 发表于:2012/9/10 11:07:28

谢谢,我会即使更新的,

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

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

4楼
阿火 发表于:2012/9/10 11:16:33

c[barpos-1] 即可

 

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

[此贴子已经被作者于2012-9-10 11:17:16编辑过]
5楼
admin 发表于:2012/9/10 11:22:32

close[barpos-i]

用这个来替换

6楼
jinzhe 发表于:2012/9/10 14:08:47

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

 

这样改吗?

7楼
admin 发表于:2012/9/10 16:49:22

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

8楼
haifan1986 发表于:2012/9/11 10:06:28
测试1:ref(c,2),linethick0;
测试2:Close[barpos-2],linethick0;

提示下面一行数组越界 貌似不对吧
9楼
jinzhe 发表于:2012/9/11 10:08:02

用序列计算试试

10楼
admin 发表于:2012/9/11 10:16:35
以下是引用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 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.03906 s, 3 queries.