请教:下面代码为什么不能正常显示
'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线模式下有显示,但不是所设想的显示效果。查看运行时变量,似乎符合运算预期。
在序列模式下,if条件里的序列变量返回最后一个k的值。
if c<o then
a:1 //可以用这个简单例子自己看下效果
2、你这个地方返回的ref的mylow不是上一根k最后的mylow,而是上一根k线运行到这行代码时候mylow的值,后面的改变不影响这个取值
mylow1:=ref(mylow,1);
myhigh1:=ref(myhigh,1);