以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [原创]  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=85833)

--  作者:nscman
--  发布时间:2015/10/6 19:20:20
--  [原创]
请教:下面代码为什么不能正常显示

\'myhigh,mylow分别表示今日上涨和下跌极限。myhigh1,mylow1分别表示昨日上涨和下跌极限。

\'如果是第1条K线,直接计算
IF BARSTATUS=1 THEN
begin
myhigh:=H*1.01;
mylow:=L*0.99;
end

\'因为在if语句中不能使用ref,故在语句外赋值
mylow1:=ref(mylow,1);
myhigh1:=ref(myhigh,1);

\'如果不是第一条K线,且今日价格在昨日上涨和下跌极限内,则今日极限和昨日一样
if (BARSTATUS=2 or BARSTATUS=0) and (low>=mylow1 AND high<=myhigh1) THEN 
begin
  myhigh:=myhigh1;
  mylow:=mylow1;
end

如果不是第一条K线,且今日价格超出昨日上涨或下跌极限,则今日极限重新计算
if (BARSTATUS=2 or BARSTATUS=0) and (low<mylow1 or high>myhigh1) then
begin
  myhigh:=H*1.003;
  mylow:=L*0.997;
end

\'绘出上涨和下跌极限线
showhigh:myhigh;
showlow:mylow;


以上公式,在系列模式下无显示,查看运行时变量,所有变量均为"##"。
在逐K线模式下有显示,但不是所设想的显示效果。查看运行时变量,似乎符合运算预期。


--  作者:nscman
--  发布时间:2015/10/6 19:30:37
--  无法上图,通过附件上传了,但看不到。
无法上图,通过附件上传了,但看不到。
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2015/10/8 10:44:42
--  

在序列模式下,if条件里的序列变量返回最后一个k的值。

if c<o then
a:1   //可以用这个简单例子自己看下效果

 

2、你这个地方返回的ref的mylow不是上一根k最后的mylow,而是上一根k线运行到这行代码时候mylow的值,后面的改变不影响这个取值

mylow1:=ref(mylow,1);
myhigh1:=ref(myhigh,1);