以文本方式查看主题

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

--  作者:lieutenant
--  发布时间:2020/12/21 19:26:53
--  关于数组向前引用问题

日线,想要引用之前某k线上一个数组的全部值到另一个的数组中,用for循环语句发现seLISL每次提取到的都是LISL数组的第一个值,但是如果单独写明数组下标,如下面代码中aaa和bbb,则可正常提取。

 

seLii:=REF(Li,STALLET)-1;

FOR i=seLii downto 1 do
BEGIN
 seLISL[i]:=REF(LISL[i],STALLET);
END

 

aaa:ref(LISL[2],STALLET);
bbb:ref(LISL[1],STALLET);

请教下是代码有误还是金字塔机制限制?


--  作者:FireScript
--  发布时间:2020/12/22 9:03:11
--  
 请提供下完整可编译 可运行的代码。方便我们本地调试。

--  作者:lieutenant
--  发布时间:2020/12/22 10:44:17
--  

VARIABLE:LISL[20]:=0;

VARIABLE:seLISL[20]:=0;


LISL[1]:=1;
LISL[2]:=2;
LISL[3]:=3;

STALLET:=4;

FOR i=3 downto 1 do
BEGIN
 seLISL[i]:=REF(LISL[i],STALLET);
END

aaa:ref(LISL[2],STALLET);
bbb:ref(LISL[1],STALLET);

 

简单编写一个可运行例子,逐k仅刷最后一根k线模式,seLISL的值全是1,而aaa=2,bbb=1


--  作者:lieutenant
--  发布时间:2020/12/22 11:44:34
--  

考虑是不是循环中的i值的变化是不是不能作用到ref()里去,所以每次只能取到LISL[1]。

 

那么金字塔里有什么办法能取到前面某k上一个定义数组的全部值?

 

谢谢!


--  作者:lieutenant
--  发布时间:2020/12/22 11:52:27
--  
是指一次性取得,而不是一个一个的标明数组的下标去取得,因为这个声明数组的大小在定义的下限内,在不同k线上可能不同。谢谢!
--  作者:lieutenant
--  发布时间:2020/12/23 14:54:45
--  
无人解答??