过滤连续信号,用了FILTER(KD,10)不起作用,不知为什么
KD这个不是完整开仓条件把。
或者说可能是存在KD满足,但不开仓的某种情况,比如说还要满足holding=0。
试了把下面的加入到系统自带的指标也不行。比如均线交易系统。
FILTER(kd2 ,20);
FILTER(kk ,10 );
你完整代码怎么写的呢?我看下你代码吧。这个函数的效果我是试过的,是可用的。
可我在金字塔软件里的均线系统加上该句也不起作用。在均线系统里试最简单的了,也不会有其他错误的干扰,如果用其他的自编指标还怀疑是编写错误
m:14;ss:1;
TR1 := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),M);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
PDM:= SUM(IF(HD>0 AND HD>LD,HD,0),M);
MDM:= SUM(IF(LD>0 AND LD>HD,LD,0),M);
PDI:= PDM*100/TR1;
MDI:= MDM*100/TR1;
手数:=ss;
//交易条件
开多平空条件:=CROSS(PDI,MDI);//开多平空条件
开空平多条件:=CROSS(MDI,PDI);//开空平多条件
//交易系统
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
//FILTER(CROSS(PDI,MDI) ,20);
//FILTER(CROSS(MDI,PDI) ,10 );
//注意交易系统先开后平的原则
FILTER本身对信号根本不会有影响的,你必须加到条件里面去才行。如下:
平空:SELLSHORT(开多平空条件 and FILTER(开多平空条件,20),手数,MARKET);
平多:SELL(开空平多条件 and FILTER(开空平多条件,10 ),手数,MARKET);
开多:BUY(开多平空条件 and and FILTER(开多平空条件,20),手数,MARKET);
开空:BUYSHORT(开空平多条件 and FILTER(开空平多条件,10 ),手数,MARKET);