RSV:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
SELLSHORT((CROSS(K,D) AND HOLDING<0),HOLDING,MARKET),TFILTER;
SELL((CROSS(D,K) AND HOLDING>0),HOLDING,MARKET),TFILTER;
BUY((CROSS(K,D) AND HOLDING=1),1,MARKET),TFILTER;
BUYSHORT((CROSS(D,K) AND HOLDING=1),1,MARKET),TFILTER;
我的模型是这个,其实是从设计指南上抄来的。为什么这个不能测试?错在哪里?
1.TFILTER; 只能用于ENTERLONG之类的系统.
请用以下进行测试
RSV:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
{开多}ENTERLONG:CROSS(K,D) ,TFILTER;
{平多}EXITLONG:CROSS(D,K) ,TFILTER;
{开空}ENTERSHORT:CROSS(D,K) ,TFILTER ;
{平空}EXITSHORT:CROSS(K,D) ,TFILTER;
1.tfilter不能与buy,sell等混用;
2.你的开仓条件不对,需要holding=1才能开仓,而交易测试的默认是不持仓的。
明白了。就是说TFILTER; 是旧交易系统用的。我现在把它删除,改成下面这样。
RSV:=(CLOSE-LLV(LOW,26))/(HHV(HIGH,26)-LLV(LOW,26))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
SELLSHORT((CROSS(K,D) AND HOLDING<0),0,MARKET);
SELL((CROSS(D,K) AND HOLDING>0),0,MARKET);
BUY((CROSS(K,D) AND HOLDING=1),1,MARKET);
BUYSHORT((CROSS(D,K) AND HOLDING=1),1,MARKET);
但照样不行,还要请老师指点。