以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  老师看下,这段代码,两者显示不一样  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=155612)

--  作者:马立秋
--  发布时间:2017/7/1 16:46:57
--  老师看下,这段代码,两者显示不一样
老师看下,这段代码,其实就是用最高价标注创新高线

Hh:=high;
for i=2 to datacount do
begin
 Hh[i]:max(Hh[i-1],Hh[i]);
end;

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

但是,问题是我用普通的写法,为什么显示是不一样呢?
比如下面这段代码:
hh:max(h,ref(h,1));


--  作者:wenarm
--  发布时间:2017/7/3 0:14:23
--  
你这种需求没必要使用数组处理。
你遇到的问题是,这句话造成的Hh[i]:max(Hh[i-1],Hh[i]);
hh是序列变量。在行情走势下跌时,你上面的语句,逻辑就是,取数组前一个值和当前值比较,并修改当前值。
所以在行走势下跌时,使用都是之前的最后一次高值,赋值修改当前的值。