以文本方式查看主题

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

--  作者:曹晓东
--  发布时间:2016/10/18 22:48:25
--  信号过滤
variable:bj=0;
a1:=(REF(O,1) + REF(C,1)) / 2;
a2:=(H + L + C) / 3;
a3:=MAX(MAX(a1,a2),H);
a4:=MIN(MIN(a1,a2),L);
a5:=IF(a1 < a2,a3 - a4 + a2 - a1,a3 - a4);
a6:=IF(a1 > a2,a3 - a4 + a1 - a2,a3 - a4);
a7:=a5 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a8:=a6 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
主力净买资金:=(a7 - a8) * 2.5;
a9:=主力净买资金;

bb1:=c<ref(c,1);
bb2:=c>ref(o,1);

aa:=ref(a9,2)>0;
aa1:=ref(a9,2)-ref(a9,1)>ref(a9,2)/2;
aa2:=ref(a9,2)-ref(a9,1)<ref(a9,2)/2;
aa3:=if(aa,aa1,aa2);
cd1:=bb1 and aa3;
cd2:=bb2 and aa3;
if cd1 then bj:=1;
if cd2 then bj:=2;
dd1:=c>MAX(ref(c,1),ref(o,1),ref(c,2),ref(o,2));
dd2:=c<min(ref(c,1),ref(o,1),ref(c,2),ref(o,2));

cc1:drawtext(cross(bj=1,0.5) and dd2,h*1.0001,\'空\');
cc2:drawtext(cross(bj=2,0.5) and dd1,l*0.9999,\'多\');




帮忙再加一个过滤信号,cc1和cc2交替出现,不想让它连续出“多” 或者连续出“空”。
谢谢!

--  作者:jinzhe
--  发布时间:2016/10/19 9:04:01
--  
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=141135
--  作者:曹晓东
--  发布时间:2016/10/19 13:27:10
--  
我在你上次帮我改的里面有多加了两个指标,然后就变了   麻烦再帮忙改一下   谢谢
--  作者:jinzhe
--  发布时间:2016/10/19 13:56:01
--  
variable:bj=0;
a1:=(REF(O,1) + REF(C,1)) / 2;
a2:=(H + L + C) / 3;
a3:=MAX(MAX(a1,a2),H);
a4:=MIN(MIN(a1,a2),L);
a5:=IF(a1 < a2,a3 - a4 + a2 - a1,a3 - a4);
a6:=IF(a1 > a2,a3 - a4 + a1 - a2,a3 - a4);
a7:=a5 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a8:=a6 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
主力净买资金:=(a7 - a8) * 2.5;
a9:=主力净买资金;

bb1:=c<ref(c,1);
bb2:=c>ref(o,1);

aa:=ref(a9,2)>0;
aa1:=ref(a9,2)-ref(a9,1)>ref(a9,2)/2;
aa2:=ref(a9,2)-ref(a9,1)<ref(a9,2)/2;
aa3:=if(aa,aa1,aa2);
cd1:=bb1 and aa3;
cd2:=bb2 and aa3;
dd1:=c>MAX(ref(c,1),ref(o,1),ref(c,2),ref(o,2));
dd2:=c<min(ref(c,1),ref(o,1),ref(c,2),ref(o,2));
if dd1 then bj:=1;
if dd2 then bj:=2;

cc1:drawtext(cross(bj=2,0.5) and dd2,h*1.0001,\'空\');
cc2:drawtext(cross(bj=1,0.5) and dd1,l*0.9999,\'多\');