以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]求助数组的如下运用  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=90867)

--  作者:saintlucifer
--  发布时间:2016/2/1 12:42:28
--  [求助]求助数组的如下运用

请问如何实现如下描述:

现有i=1 to 100,

定义数组A[i] = ma(c,i) - ref(ma(c,i),1),

然后求出数组A[i]中最大最小值。

 

 


--  作者:jinzhe
--  发布时间:2016/2/1 13:11:46
--  
LARGE(A,100,1)
--  作者:saintlucifer
--  发布时间:2016/2/1 15:43:39
--  

VARIABLE : A[80] = 0;
FOR I = 2 TO 80 DO A[I] := MA(C,I) - REF(MA(C,I),1);
MA_MAX : LARGE(A,79,1),LINETHICK0;
MA_MIN : LARGE(A,79,79),LINETHICK0;

 

MA_N := 10;

MA_PER : MA(C,MA_N) - REF(C,MA_N),LINETHICK0;

 

我在白银连续日线周期图表上定义了如上语句,但是出来的结果有问题,上面的MA_PER是用10日均线增速,图上现值是27.6,而MA_MAX却只有6.5,作为数组A[I],应该是包含了从MA2到MA80均线与昨日均线的差,最大值理论上是应该大于等于MA10的吧,为什么这里会有错误?另外在编译的时候老是提醒我FOR语句里面最好不要加入MA或者REF语句,但是我在它弹出来的那个连接里面看,也没有具体能对应的改法,请问如何修改好?


--  作者:jinzhe
--  发布时间:2016/2/1 15:51:01
--  

你是不是序列计算了?序列计算只计算一次,也就是第一次计算的结果,所以你看到的结果是k线图从左往右数第81根k线的值

你改逐k线计算,这样就是每根k线都算一边了


--  作者:jinzhe
--  发布时间:2016/2/1 15:53:08
--  

MA_PER : MA(C,MA_N) - REF(C,MA_N),LINETHICK0;

 

最后这个是干什么用的?要调试的话完全不对啊


--  作者:saintlucifer
--  发布时间:2016/2/1 16:09:41
--  
知道问题出在哪了,那现在如果我想要找出数组里面最大值最小值所对应的I的位置呢,就是这个最大最小值是第几号数据的话,要怎么求?
--  作者:jinzhe
--  发布时间:2016/2/1 16:17:24
--  

VARIABLE : A[80] = 0;
FOR I = 2 TO 80 DO A[I] := MA(C,I) - REF(MA(C,I),1);
MA_MAX : LARGE(A,79,1),LINETHICK0;
MA_MIN : LARGE(A,79,79),LINETHICK0;

 


for i=2 to 80 do begin
 if a[i]=ma_max then goto abc;
end
abc@ ii:i;

 

ii为所求值


--  作者:saintlucifer
--  发布时间:2016/2/1 16:33:20
--  

INPUT : MA_N(10,2,80);

MA_PER : MA(C,MA_N) - REF(MA(C,MA_N),1),LINETHICK0;

 

VARIABLE : A[80] = 0;
FOR I = 2 TO 80 DO A[I] := MA(C,I) - REF(MA(C,I),1);
MA_MAX : LARGE(A,79,1),LINETHICK0;
MA_MIN : LARGE(A,79,79),LINETHICK0;

 

FOR I = 2 TO 80 DO BEGIN
 IF A[I] = MA_MAX THEN GOTO ABC;
END;

 

ABC@ II : I,LINETHICK0;

 

修改成这样,但是输出的II与在MA_PER里面输出的结果也不一样,就是求出II之后,在MA_PER里面输入对应的数值来调试,输出的数值与数组里面的最大值不同


--  作者:jinzhe
--  发布时间:2016/2/1 16:36:09
--  

ma_per是固定的ma10-ref(ma10,1)

你的公式是ma2-ref(ma2,1)一直到ma80-ref(ma80,1)怎么就一样了?


--  作者:saintlucifer
--  发布时间:2016/2/1 16:39:28
--  
我意思是在数组里面求出一个最大值了,然后求到II例如是5,那么就表示5日均线与昨5日均线之差是在数组里面的最大值,然后我把5代入在MA_PER里面(因为是input的参数),但是这时候MA_PER输出的数值跟数组里面输出的MA_MAX数值不同啊