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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]求助数组的如下运用

   

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


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

主题:[求助]求助数组的如下运用

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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
[求助]求助数组的如下运用  发帖心情 Post By:2016/2/1 12:42:28    Post IP:58.62.38.154[显示全部帖子]

请问如何实现如下描述:

现有i=1 to 100,

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

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

 

 


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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/1 15:43:39    Post IP:58.62.38.154[显示全部帖子]

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语句,但是我在它弹出来的那个连接里面看,也没有具体能对应的改法,请问如何修改好?


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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/1 16:09:41    Post IP:58.62.38.154[显示全部帖子]

知道问题出在哪了,那现在如果我想要找出数组里面最大值最小值所对应的I的位置呢,就是这个最大最小值是第几号数据的话,要怎么求?

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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/1 16:33:20    Post IP:58.62.38.154[显示全部帖子]

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里面输入对应的数值来调试,输出的数值与数组里面的最大值不同


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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/1 16:39:28    Post IP:58.62.38.154[显示全部帖子]

我意思是在数组里面求出一个最大值了,然后求到II例如是5,那么就表示5日均线与昨5日均线之差是在数组里面的最大值,然后我把5代入在MA_PER里面(因为是input的参数),但是这时候MA_PER输出的数值跟数组里面输出的MA_MAX数值不同啊

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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/2 12:55:36    Post IP:113.96.226.126[显示全部帖子]

那如果想达到我最初的要求,应该怎么修改呢?就是数组A[I]里面放入当前k线里面的从ma2到ma80,ma-ref(ma,1)的差值?

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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/2 13:26:26    Post IP:113.96.226.126[显示全部帖子]

现在关键不是在逐k模式下,A[I] := (MA(C,I) - REF(MA(C,I),1)); 无法得到正确结果的问题吗?

逐K模式下: A[2]的取值为MA(C,2)-REF(MA(C,6),1)


 


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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/2 13:51:11    Post IP:113.96.226.126[显示全部帖子]

这个方法得出的结果是对的,但是如果我要从ma2一直到ma80的结果呢,总不能枚举80个吧,这样公式编写的效率很低,修改起来又麻烦啊,在for里面没其他可以替换ref的方式了吗?


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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2016/2/2 14:05:00    Post IP:113.96.226.126[显示全部帖子]

那就是说现在我想要得出ma80以内的差值,就要写80行的赋值语句,没有其他方法了?

 回到顶部