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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教循环语句中的赋值问题

   

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


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

主题:请教循环语句中的赋值问题

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


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
请教循环语句中的赋值问题  发帖心情 Post By:2018/9/11 17:09:11    Post IP:221.229.206.238[只看该作者]

//这个指标是实现30天内成交量排序 能直观看到那天最大量 最小量
input:n(30,1,9999);
vv:=vol;
dt:=datacount;//
tmp:=sort(vv,0,dt-n+1,dt);//取消这句 最终显示为当前向前推30-1的倒排序28 29 30 怎么会这样呢?
vvv:v,volstick;
sp:=c*0;//提前声明c为序列变量 并将每日价格赋值为 0
for i=dt downto dt-n+1 do begin //从最后周期向前循环
for j=dt downto dt-n+1 do begin //从最后周期向前循环
  if vvv[j]=vv[i] then 
   sp[j]:=i;  
  end;
end;
drawnumber(barpos>dt-n,v,sp-(dt-n),0),pxup50,align0;
------------------------------------------------------------------
老师,请教2个问题?
1、这句话“tmp:=sort(vv,0,dt-n+1,dt);”意思是排序赋值给tmp,对吧?但是这个赋值后面的代码中没有被使用到,可是又不能删除,删除了这个指标的值就变化了。这是怎么回事呢?这个赋值tmp是如何参与计算的呢?

2、这句循环的意思是不是这样理解?
if vvv[j]=vv[i] then //如果 j日的量=i日的量
   sp[j]:=i; //j的循环=序列数据量
[此贴子已经被作者于2018/9/11 17:10:33编辑过]

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/9/11 17:30:40    Post IP:180.169.30.6[只看该作者]

 1.sort排序改变了 vv的值情况,也就是使得VV的值进行了排序了,但不影响vol本身。

2.这个注释没怎么看明白呢。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
马立秋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2018/9/12 9:13:33    Post IP:182.119.17.164[只看该作者]

1、排序后的值,不是已经赋值个tmp了吗?后期使用的话,不是应该要调用tmp吗?上面的语句中vv=vol啊!这应该如何理解呢?

2、那个注释是我理解后写的。不知道对不对?正确的该如何理解呢?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/9/12 9:51:43    Post IP:180.169.30.6[只看该作者]

 1.sort返回的只是数据量,就是你参与排序的数据量。排序结果体现在VV的改变上。vv:=vol 是复制出来一个和vol值一样的变量保存排序结果而已。因为后面还需要对排序和未排序的进行对比。

2.

序号 1     2   3    4    5    6
      12  13  14  15  16  17
      14  16  12  17  13  15

2组数据,红色一组已经排序了(vv),黄色一组是原始数据(vvv)。 
上面那个代码的操作举例说明:

取红色有序数值倒数第一个值,17
在黄色数值中进行依次对比,序号(从左到右)为4的黄色数据值也等于17,保存这个序号。然后继续下一个红色数据16,继续在黄色数组中寻找对应的值,以此类推。

最后的sp结果:
3 5 1 6 2 4

其实就是获取原始数组每个值的在这6个数字里面的排名而已。





命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
马立秋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:84 积分:0 威望:0 精华:0 注册:2016/8/13 15:12:10
  发帖心情 Post By:2018/9/12 11:15:22    Post IP:36.102.210.102[只看该作者]

多谢“帅哥,在线噢!FireScript”老师

我再消化消化

 回到顶部