以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  如何交替做标识  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=163403)

--  作者:zpcatv
--  发布时间:2018/5/13 17:52:29
--  如何交替做标识
A:=IF((Z<LLV(Z,2)&&K<D&&S<M),1,2);
DRAWTEXT(A=1,H,\'3\'),COLORGREEN,VALIGN2;
DRAWTEXT(A=2,H,\'X\'),COLORGREEN,VALIGN2;

老师,请帮我改一下:满足A=1只显示第一个3,直到满足A=2出现x,也只显示第一个x直到再次满足A=1出现3。

B:=IF((Z>HHV(Z,2)&&K>D&&S>M),1,2);
DRAWTEXT(B=1,L,\'3\'),COLORMAGENTA,VALIGN0;
DRAWTEXT(B=2,L,\'X\'),COLORMAGENTA,VALIGN0;

同上面一个意思:满足B=1只显示第一个3,直到满足B=2出现x,也只显示第一个x直到再次满足B=1出现3。

总的意思就是说蜡烛线上面的3和x交替出现,蜡烛线下面的3和x也是交替出现。不会在蜡烛线上面重复出现3或者是x,也不会在蜡烛线下面重复出现3或者是x

 这两段代码是出现在一个公式里的。请老师帮忙合并。  
--  作者:wenarm
--  发布时间:2018/5/13 21:16:13
--  
VARIABLE:flag=0;
A:=IF(c<o,1,2);
if A=1 and (flag=0 or flag=1) then BEGIN
 DRAWTEXT(1,H,\'3\'),COLORGREEN;
 flag:=-1;
end
if A=2 and (flag=0 or flag=-1) then BEGIN
DRAWTEXT(A=2,H,\'X\'),COLORGREEN;
 flag:=1;
end

另外一部分和上面方式一样,你自己尝试完成。

--  作者:zpcatv
--  发布时间:2018/5/13 22:14:29
--  [求助]
老师,麻烦您把第二段也给我写出来吧,我试了好几次都不行。我的基础水平太差不多了,麻烦了。第一段写的很好。
--  作者:wenarm
--  发布时间:2018/5/14 8:10:12
--  
那就劳烦您吧你改写失败的代码贴出来,我们看下具体是怎么不行的。便于你提高自身的水平
--  作者:zpcatv
--  发布时间:2018/5/14 12:44:22
--  
麻烦老师了,下面一段我写不好,上面这段的意思我没领会清楚

A:=IF((Z<LLV(Z,3)&&K<D&&S<M),1,2);
VARIABLE:flag=0;
A:=IF(c<o,1,2);
if A=1 and (flag=0 or flag=1) then BEGIN
 DRAWTEXT(1,H,\'3\'),COLORGREEN;
 flag:=-1;
end
if A=2 and (flag=0 or flag=-1) then BEGIN
DRAWTEXT(A=2,H,\'X\'),COLORGREEN;
 flag:=1;
end

B:=IF((Z>HHV(Z,2)&&K>D&&S>M),1,2);
VARIABLE:flag=0;
B:=IF(c<o,1,2);
if b=1 and (flag=0 or flag=1) then BEGIN
 DRAWTEXT(1,l,\'3\'),COLORGRED;
 flag:=-1;
end
if B=2 and (flag=0 or flag=-1) then BEGIN
DRAWTEXT(b=2,l,\'X\'),COLORGRED;
 flag:=1;
end

--  作者:FireScript
--  发布时间:2018/5/14 13:20:58
--  
 a和b  不能共用相同的全局变量。

A:=IF((Z<LLV(Z,3)&&K<D&&S<M),1,2);
VARIABLE:flag=0;
A:=IF(c<o,1,2);
if A=1 and (flag=0 or flag=1) then BEGIN
 DRAWTEXT(1,H,\'3\'),COLORGREEN;
 flag:=-1;
end
if A=2 and (flag=0 or flag=-1) then BEGIN
DRAWTEXT(A=2,H,\'X\'),COLORGREEN;
 flag:=1;
end

B:=IF((Z>HHV(Z,2)&&K>D&&S>M),1,2);
VARIABLE:flag2=0;
B:=IF(c<o,1,2);
if b=1 and (flag2=0 or flag2=1) then BEGIN
 DRAWTEXT(1,l,\'3\'),COLORGRED;
 flag2:=-1;
end
if B=2 and (fla2g=0 or flag2=-1) then BEGIN
DRAWTEXT(b=2,l,\'X\'),COLORGRED;
 flag2:=1;
end

--  作者:zpcatv
--  发布时间:2018/5/14 19:46:52
--  
老师,第二段不显示信号,是不是大于小于符合不对啊。请帮我看一下。
--  作者:wenarm
--  发布时间:2018/5/15 8:01:21
--  
B:=IF((Z>HHV(Z,2)&&K>D&&S>M),1,2);
VARIABLE:flag2=0;
B:=IF(c<o,1,2);
if b=1 and (flag2=0 or flag2=1) then BEGIN
 DRAWTEXT(1,l,\'3\'),COLORGRED;
 flag2:=-1;
end
if B=2 and (fla2g=0 or flag2=-1) then BEGIN//红色部分笔误写错了。你自己调整下。策略编写能力,即使不具备,也应该具备一定的阅读能力,这样才能有助于提高。
DRAWTEXT(b=2,l,\'X\'),COLORGRED;
 flag2:=1;
end