下面是我的一个多头排列的交易模型,在文华财经里面是自动过滤的,金字塔里面满足开仓条件,会不断发出同方向的买入或者卖出开仓信号,这个应该怎么处理。
资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
ma3:=ma(c,3);
ma5:=ma(c,5);
ma8:=ma(c,8);
ma13:=ma(c,13);
dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;
if dt then begin
sellshort(holding<0,holding,0);
buy(dt,10%,0),tfilter;
end;
if kt then begin
sell(holding>0,holding,0);
buyshort(kt,10%,0),tfilter;
end;
if dt then begin
sellshort(holding<0,holding,0);
buy(dt and NOT(TYPE(1)=1),10%,0),tfilter;
end;
if kt then begin
sell(holding>0,holding,0);
buyshort(kt and NOT(TYPE(1)=3),10%,0),tfilter;
end;
对不起!当时手误,参见代码中蓝色部分
另外,tfilter过滤交易信号,用于交易系统公式ENTERLONG, EXITLONG, ENTERSHORT, 在这里无效
资产:ASSET,LINETHICK0;
可用现金:CASH(0),LINETHICK0;
持仓:HOLDING,LINETHICK0;
ma3:=ma(c,3);
ma5:=ma(c,5);
ma8:=ma(c,8);
ma13:=ma(c,13);
dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;
if dt then begin
sellshort(holding<0,holding,0);
buy(dt and NOT(TYPE(1)=1),10%,0);
end;
if kt then begin
sell(holding>0,holding,0);
buyshort(kt and NOT(TYPE(1)=3),10%,0);
end;
dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;
谢谢!
仅过滤几个信号,也可以用
dt1:=FILTER(dt,N);{过滤信号后N个周期的信号}
buy(dt1 ,10%,0);
dt:=c>ma3 and ma3>ma5 and ma5>ma8 and ma8>ma13,0;
kt:= c<ma3 and ma3<ma5 and ma5<ma8 and ma8<ma13,0;
谢谢!
加0是 从你的代码拷贝过来的,我没注意,可去掉。