以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=173914)

--  作者:wxx212
--  发布时间:2020/1/10 9:23:54
--  请教公式问题
VARIABLE:fi_xdk1=0,fi_上=0 ;         
//基本指标

INPUT:n(5,5,350,2),倍数(20,5,30,5);
x上1:=wma(wma(hhv(h,n),n),n),LINETHICK1,colorred;
x下1:=wma(wma(llv(l,n),n),n),LINETHICK1,colorgreen;

if cross(c,x上1) then fi_xdk1:=1;
IF CROSS(x下1,c) THEN fi_xdk1:=-1;
fi_aa:=fi_xdk1=1 and ref(fi_xdk1,1)=-1;
fi_bb:=fi_xdk1=-1 and ref(fi_xdk1,1)=1;
fi_cc:=fi_aa  or  fi_bb;
fi_xhh1:=hhv(h,BARSLAST(fi_xdk1=-1)+1);//,NODRAW;
fi_xll1:=llv(l,BARSLAST(fi_xdk1=1)+1);//,NODRAW;
DRAWLINE(fi_aa,ref(fi_xll1,1) ,fi_bb ,ref(fi_xhh1,1) ,0 ),coloryellow,LINETHICK1,LINEDASHDOT;
DRAWLINE(fi_bb ,ref(fi_xhh1,1) ,fi_aa ,ref(fi_xll1,1) ,0 ),coloryellow,LINETHICK1,LINEDASHDOT;


fi_本次红高:=ref(fi_xhh1,SUMBARS(fi_bb,1));
fi_本次红低:=ref(fi_xll1,SUMBARS(fi_aa,1));

fi_本次绿高:=fi_本次红高;//ref(fi_xhh1,SUMBARS(fi_bb,1));
fi_本次绿低:=fi_本次红低;//ref(fi_xll1,SUMBARS(fi_aa,1));

fi_上次绿低:=ref(fi_本次绿低,SUMBARS(fi_aa,2)-1);//上次绿线fi_最低位置

 
 
 {起始阶段}
fi_上开始:=fi_上次绿低< fi_本次绿低  and fi_aa and fi_上=0;//第一次出现次低的位置
DRAWICON(fi_上开始 ,llv(l,30),1 );

Fi_N上0:=BARSLAST(ref(fi_上,1)=0 and fi_上=1);//fi_上 从 0变成1 位置 开始到现在的K线数量
fi_上H:hhv(h,Fi_N上0+1);//fi_上=1的时候的最高值
Fi_N上1:=BARSLAST(fi_上=1 and ref(fi_上,1)=0 );
hhh:llv(l,Fi_N上1+1);
fi_上L:ref(llv(l,Fi_N上1+1),Fi_N上1+1);//fi_上=0时候的最低值

if fi_上开始  then BEGIN  
fi_上:=1;
end;
if cross(fi_上L,c)   then BEGIN  {下穿最低线或者cross(ma(c,30),c) 的时候 fi_上为0}
fi_上:=0;
end;
ttt:fi_上;



请问上面的指标 fi_上L 的值为什么没有?应该怎么改?

--  作者:wxx212
--  发布时间:2020/1/10 9:25:02
--  
错误应该在

Fi_N上0:=BARSLAST(ref(fi_上,1)=0 and fi_上=1);//fi_上 从 0变成1 位置 开始到现在的K线数量
fi_上H:hhv(h,Fi_N上0+1);//fi_上=1的时候的最高值
Fi_N上1:=BARSLAST(fi_上=1 and ref(fi_上,1)=0 );
hhh:llv(l,Fi_N上1+1);
fi_上L:ref(llv(l,Fi_N上1+1),Fi_N上1+1);//fi_上=0时候的最低值

if fi_上开始  then BEGIN  
fi_上:=1;
end;
if cross(fi_上L,c)   then BEGIN  {下穿最低线或者cross(ma(c,30),c) 的时候 fi_上为0}
fi_上:=0;
end;


这段代码里,但是我怎么都找不出来。只有麻烦版主了

--  作者:FireScript
--  发布时间:2020/1/10 9:35:37
--  
 cross(fi_上L,c)
这里面这个变量fi_上L  一直是无效值。
你从这个值的计算去排查。

--  作者:wenarm
--  发布时间:2020/1/10 9:36:44
--  

你条件横不成立。自然没有值出来。你自己排查下你的逻辑。

用:输出显示自己的条件值,逐级排查逻辑。

[此贴子已经被作者于2020/1/10 9:36:50编辑过]

--  作者:wxx212
--  发布时间:2020/1/13 22:59:04
--  
好的,谢谢