图表交易时正常,系统测试时则出现很多品种开不了仓的现象?求教。
我是想把海龟那个单品种4个头寸上限的规则加进去测试一下。结果图表交易时一切正常,系统测试时则出现很多品种开不了仓。
我把测试日期加长了些,有些品种就又有数据了,而有些品种依然没有。
开多时,去掉头寸=0这个条件就正常,不去就只有部分能开仓这怎么回事?图标上一点问题没有啊?如银行,测试显示一仓没开,去图表上看却正常。
如果公式有问题,为啥保险在测试时就正常呢?实在不解。。
测试市场是二级行业指数。
INPUT:M(50,20,300,30),N(1.25,1,3,0.3),D(30,15,50,5),atr倍数(2,0,10,1),单笔风险(0.01,0,0.03,0.005);
VARIABLE:头寸=0;
MID:MA(CLOSE,M);//布林中轨
UPPER:MID + N*STD(CLOSE,M);//布林上轨
LOWER:=MID - N*STD(CLOSE,M);//布林下轨
HC30:=REF(HHV(C,D),1);//30周期收盘价高点
LC30:=REF(LLV(C,D),1);//30周期收盘价低点
CYC:BARSLAST(holding=0)+1,NOdraw;//开仓至今的周期数
atr:=ma(tr,20);
//仓位管理
资金:=cash(0)+avgenterprice*holding;
风险资金:=资金*单笔风险,nodraw;
止损价差:=c-upper,NODRAW;
算数股数:=风险资金/止损价差,nodraw;
股数:=intpart(算数股数/100)*100,nodraw;
//交易系统
a0:头寸,nodraw;
开多条件:=c>HC30 AND c>UPPER;
if HOLDING=0 and 头寸=0 and 股数>0 and 开多条件 then begin {问题出在这里,头寸=0去掉就正常,虽然和holding=0意思重复了,可是按理说这里应该0也是对的啊?}
开多:BUY(开多条件,股数,LIMITR,C);
头寸:=头寸+1;
end
加仓条件:=c>ENTERPRICE+0.5*atr,NODRAW;//(o-atr倍数*atr-enterprice)*entervol>0;
if HOLDING>0 and 头寸<4 and 股数>0 and 开多条件 and 加仓条件 then begin
加仓:buy(开多条件 and 加仓条件,股数,LIMITR,C);
头寸:=头寸+1;
end
aa:=open-atr倍数*atr;
多头移动止损:hhv(aa,cyc),colorgreen;
平多条件:=low<多头移动止损 ;
if HOLDING>0 and 平多条件 then begin
平多:SELL(平多条件,0,stopR,多头移动止损);
头寸:=0;
end
a:头寸,nodraw;
总收益率:returnrate,noaxis,colorgray;
年化收益率:annualreturnrate,nodraw,colorgray;
持仓百分比:(holding*close/asset)*100,nodraw,colorgray;