以文本方式查看主题

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

--  作者:bob
--  发布时间:2012/12/10 13:50:51
--  如何过滤信号?

老师,我现在编的这个程序想实现半小时和5分钟都符合条件的前提下,开多单两手。但是如何过滤只在第一次符合时发出信号?

MIN30M1:=STKINDI(\'IF00\',\'myma.m1\',0,4);
MA20:=MA(CLOSE,20);

MIN30REFM1:=STKINDI(\'IF00\',\'myma.REFm1\',0,4);

DAYC:=STKINDI(\'IF00\',\'myma.C1\',0,6);
MIN30C:=STKINDI(\'IF00\',\'myma.C1\',0,4);

DK:=MIN30M1>MIN30REFM1 AND MIN30C>MIN30M1 AND MA20>REF(MA20,1) AND EVERY(C>MA20,2);

IF DK THEN BEGIN
    BUY(DK,2,THISCLOSE);
END


--  作者:bob
--  发布时间:2012/12/10 13:56:44
--  补充~~~

对了 还漏了一个 我有提前定义指标MYMA

M1:MA(CLOSE,20);
REFM1:REF(M1,1);
C1:CLOSE;


--  作者:jinzhe
--  发布时间:2012/12/10 14:04:50
--  
dk条件再加一个 holding=0
--  作者:bob
--  发布时间:2012/12/10 16:39:10
--  
我加了,可是信号不对啊,有好多信号都消失了,什么情况?
--  作者:jinzhe
--  发布时间:2012/12/10 16:59:24
--  

看错了,是要过滤掉第一次,这样的话弄个全局变量来记录信号出现的次数

 

variable:n=0;

 

if 条件 then n:=n+1;

 

if n>1 and  条件 then buy();