各位前辈,我想设计一个1分钟线序列模式下运行的公式:变量A初始值为-1,当铜价从开盘以来的最低价反弹200点时A值变为1 ,当铜价从A值变为1以后的最高价下跌200点时A值变为-1。可是我运行了我写的公式,A值一直为-1,铜价上涨500点A值也没有变为1。我是什么地方写错了呢?我想请教大家,谢谢啦
A[1]:=0;
A[2]:=-1;
for i=3 to datacount do
begin
IF A[i-1]=-1 and C>(LLV(C,BARSLAST(A[i]<>A[i-1])+1)+200) THEN A[i]:=1;
ELSE IF A[i-1]=1 and C<(HHV(C,BARSLAST(A[i]<>A[i-1])+1)-200) THEN A[i]:=-1;
ELSE A[i]:=A[i-1];
end
多空方向:A;
如果把第5、6行的C改成C[i],则从第3根K线起A值一直为1
A[1]:=0;
A[2]:=-1;
for i=3 to datacount do
begin
IF A[i-1]=-1 and C[i]>(LLV(C,BARSLAST(A[i]<>A[i-1])+1)+200) THEN A[i]:=1;
ELSE IF A[i-1]=1 and C[i]<(HHV(C,BARSLAST(A[i]<>A[i-1])+1)-200) THEN A[i]:=-1;
ELSE A[i]:=A[i-1];
end
多空方向:A;
用逐K线模式写呗,何必用序列模式
如果是逐K线模式要怎么写呢?我尝试了一下也没有成功
variable:flag=0,h1=0;//FLAG反弹标识;h1记录反弹后最高价
m:=barslast(date<>ref(date,1))+1;
Daylow:=llv(low,m); //当日最低价
if c>Daylow+200 then
begin
flag:=1;
h1:=high; //记录FLAG值变为1以后的最高价
end
if h1<>0 and high>h1 then h1:=high;
if c<h1-200 then flag:=-1;
//每日收盘时,赋值为0,第2天重新开始标识
if time>=closetime(0) then
begin
flag:=0;
h1:=0;
end
ff:flag,linethick0;