以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  信号过滤  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=148812)

--  作者:曹晓东
--  发布时间:2017/3/8 11:13:07
--  信号过滤

cond:=c<=ref(CLOSE,10);
ma10:=ma(c,10);
if cond then aa:ma10;

else bb:ma10;
partline(c<=ref(CLOSE,10),ma10, COLORGREEN),linethick2;
partline(c>ref(CLOSE,10),ma10,COLORred),linethick2;

cond1:=c<=ref(CLOSE,22);
ma22:=ma(c,22);
if cond1 then aa1:ma22;
else bb1:ma22;
partline(c<=ref(CLOSE,22),ma22, COLORGREEN),linethick3;
partline(c>ref(CLOSE,22),ma22,COLORred),linethick3;

cond2:=c<=ref(CLOSE,51);
ma51:=(ma(c,30)+ma(c,72))/2;
if cond2 then aa2:ma51;
else bb2:ma51;
partline(c<=ref(CLOSE,51),ma51, COLORGREEN),linethick4;
partline(c>ref(CLOSE,51),ma51,COLORred),linethick4;

drawtext(c<=ref(CLOSE,10) and c<=ref(CLOSE,22) and c<=ref(CLOSE,51),c*1.01,\'空\');
drawtext(c>ref(CLOSE,10) and c>ref(CLOSE,22) and c>ref(CLOSE,51),c*0.99,\'多\');

 

 

帮忙让‘多’和‘空’只出现一次,第一次全部满足的时候出现   后面的过滤掉,谢谢


--  作者:netfox
--  发布时间:2017/3/8 11:15:53
--  

满足只要第一次时候你做个 i:=i+1 计数器就好了

 开仓时候只要 I>0 的必定就不开了。

然而问题是你要什么时候把I归零?


--  作者:曹晓东
--  发布时间:2017/3/8 11:19:02
--  
我不是要自动交易   只是想在主图上面显示就好。不做开平仓条件
--  作者:jinzhe
--  发布时间:2017/3/8 11:25:13
--  

cond:=c<=ref(CLOSE,10);
ma10:=ma(c,10);
if cond then aa:ma10;

else bb:ma10;
partline(c<=ref(CLOSE,10),ma10, COLORGREEN),linethick2;
partline(c>ref(CLOSE,10),ma10,COLORred),linethick2;

cond1:=c<=ref(CLOSE,22);
ma22:=ma(c,22);
if cond1 then aa1:ma22;
else bb1:ma22;
partline(c<=ref(CLOSE,22),ma22, COLORGREEN),linethick3;
partline(c>ref(CLOSE,22),ma22,COLORred),linethick3;

cond2:=c<=ref(CLOSE,51);
ma51:=(ma(c,30)+ma(c,72))/2;
if cond2 then aa2:ma51;
else bb2:ma51;
partline(c<=ref(CLOSE,51),ma51, COLORGREEN),linethick4;
partline(c>ref(CLOSE,51),ma51,COLORred),linethick4;

variable:duo=0,kong=0;

if c<=ref(CLOSE,10) and c<=ref(CLOSE,22) and c<=ref(CLOSE,51) then kong:=kong+1;

if c>ref(CLOSE,10) and c>ref(CLOSE,22) and c>ref(CLOSE,51)  then duo:=duo+1;

drawtext(cross(kong=1,0.5),c*1.01,\'空\');
drawtext(cross(duo=1,0.5),c*0.99,\'多\');


--  作者:曹晓东
--  发布时间:2017/3/8 13:36:54
--  
还有一点不对,就是三个条件同时满足才出现,现在是只要有一个条件满足就出现了。用and连接是不是不能达到同时满足的效果。“c<=ref(CLOSE,10)and c<=ref(CLOSE,22)and c<=ref(CLOSE,51)”  这一句
--  作者:jinzhe
--  发布时间:2017/3/8 13:50:47
--  
and就是同时满足的意思
--  作者:曹晓东
--  发布时间:2017/3/8 14:04:50
--  

cond:=c<=ref(CLOSE,10);
ma10:=ma(c,10);
if cond then aa:ma10;

else bb:ma10;
partline(c<=ref(CLOSE,10),ma10, COLORGREEN),linethick2;
partline(c>ref(CLOSE,10),ma10,COLORred),linethick2;

cond1:=c<=ref(CLOSE,22);
ma22:=ma(c,22);
if cond1 then aa1:ma22;
else bb1:ma22;
partline(c<=ref(CLOSE,22),ma22, COLORGREEN),linethick3;
partline(c>ref(CLOSE,22),ma22,COLORred),linethick3;

cond2:=c<=ref(CLOSE,51);
ma51:=(ma(c,30)+ma(c,72))/2;
if cond2 then aa2:ma51;
else bb2:ma51;
partline(c<=ref(CLOSE,51),ma51, COLORGREEN),linethick4;
partline(c>ref(CLOSE,51),ma51,COLORred),linethick4;

variable:i=0,w=0;
kong:=c<ref(CLOSE,10)and c<ref(CLOSE,22)and c<ref(CLOSE,51);
duo:=c>ref(CLOSE,10)and c>ref(CLOSE,22)and c>ref(CLOSE,51);
if kong then begin
i:=i+1;
w:=0;
end
if duo then begin
w:=w+1;
i:=0;
end
drawtext(cross(i,0.5),c*1.001,\'空\');
drawtext(cross(w,0.5),c*0.999,\'多\');

 

 

多可以实现,只出现一个而且是三个条件同时满足的   但空实现不了   会因为其中一个条件发生变化就出现一次。


--  作者:jinzhe
--  发布时间:2017/3/8 14:06:40
--  
drawtext(cross(i=1,0.5),c*1.001,\'空\');
drawtext(cross(w=1,0.5),c*0.999,\'多\');
--  作者:曹晓东
--  发布时间:2017/3/8 14:12:29
--  
一样的   没有变化  
--  作者:jinzhe
--  发布时间:2017/3/8 14:14:30
--  
你把调试信息发出来,我要看到“只有一个条件成立但是出信号了”