以文本方式查看主题

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

--  作者:spencer
--  发布时间:2017/6/18 23:47:07
--  请教数组的用法
我想学习数组的用法,只要K线位置可以被10整除,就将该K线标记为红色,以下公式编译提示数组越界操作,请问是什么原因?

runmode:1

variable:BarPos0[]=0,ZD[]=0;

IF MOD(BarPos,10)=0 Then Begin
ZD[BarPos0]=1;
End 
bb:ZD,Colorred;

--  作者:wenarm
--  发布时间:2017/6/19 8:51:16
--  

http://www.weistock.com/bbs/dispbbs.asp?boardid=10&id=30380

数组高级用法。

 

你这个需求没必要使用数组就可以完成,金字塔绝大部分函数都是序变量。

STICKLINE( MOD(BarPos,10)=0, close,open ,0.8,1 ,COLORRED )


--  作者:spencer
--  发布时间:2017/6/19 10:21:01
--  
请帮忙按数组的方法实现,其他简单的方法我会用,谢谢! 给的教程看过,还是不会,数组的实例应用太少,很多功能用数组实现更方便高效 但每次用户问怎么实现数组,客服都回答用别的方法实现,不解决问题
--  作者:wenarm
--  发布时间:2017/6/19 10:44:16
--  

你序列变量本身就是封装的数组。若你想充分提高效率,可以考虑使用vba或者c++、

你上面的处理逻辑,在pel层面上效率低、运算量大。


--  作者:spencer
--  发布时间:2017/6/19 12:01:54
--  
像ref函数在循环中是不建议的,你们为啥不解决我的问题呢?! 即便这样写多么没效率! 请帮忙解答,感觉交流起来好费劲!
--  作者:wenarm
--  发布时间:2017/6/19 12:14:29
--  

已经说了,你这类的需求处理,根本就是费时费力,处理方法已经提供,干吗非得纠结数组。你这种要求,就是你在每根k上去从新算一遍序列变量量的值。纯粹浪费效率,吃力不讨好的做法。数组的用法并不是用来解决你说的这种。

请你先理解清楚,pel的运行机制,以及序列变量,再询问工作人员。如果你需要灵活的操作数组,建议你使用vba\\c++

 

ZD[BarPos]=1;

 这种数组下标的用法,压根就不对。zd[]在定义时的长度就是0,你这种ZD[BarPos],不越界才怪。还有数组赋值,必须是逐个赋值。

[此贴子已经被作者于2017/6/19 12:35:19编辑过]

--  作者:spencer
--  发布时间:2017/6/19 13:16:29
--  
交流起来真费劲!为啥不开始就回答呢?!我就想了解问题在哪 七拐八拐总是模糊焦点!沟通成本太高!
--  作者:wenarm
--  发布时间:2017/6/19 13:27:06
--  

2楼给你的是直接简单的解决方案。

我们提供技术支持,但是不是无条件处理没有任何意义的逻辑问题。如果你对金字塔的机制了解很深入压根问这类没有任何营养价值的问题