老师,请求帮助检查一下,要求是当平仓出现亏损时,下次开仓为前仓单的2倍开仓,
现在连续六次亏损都是按2倍的量开仓的,当平仓到64时还亏损时,下次开仓应该为124手,开仓手数dd显示为124手,但k线图上实际开仓为100手或其它数字,为什么不按开仓手数dd下单,
下面代码可加载到螺纹钢1605合约,3分钟k线图,调出3月2日01.57分钟k线,下次开仓dd1显示为124手,实际开了100手,查一下,为什么不按dd1开仓,
variable:a1=0;
INPUT:ss(1,1,10,1);
手数:=ss;
//交易条件
MA1:MA(CLOSE,60);
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件
//********************************************************************************日内第一次开仓,
N:=todaybar;
BKN:=COUNT(CROSS(c,MA1),N);
SKN:=COUNT(CROSS(MA1,c),N);
BKN1:=BKN=1 and CROSS(C,MA1);//当日内日未出现过BK信号并且CROSS(C,MA1),第一次开仓
SKN1:=SKN=1 and CROSS(MA1,C);
//多头开仓
IF BKN1 THEN BEGIN//
开多1:BUY(1,手数,MARKETr);
a1:=0; //当日第一次开仓赋值0
END
//空头开仓
IF SKN1 THEN BEGIN //
开空1:BUYSHORT(1,手数,MARKETr);
a1:=0; //当日第一次开仓赋值0
END
//*************************************************************************************平空
if 平空开多条件 and holding<0 then begin
取得持仓量:=ABS(holding),NODRAW;//取得开空手数,
取平空持仓量: 取得持仓量,NODRAW;//取得开空手数,
SELLSHORT(1,holding,MARKETr);
end
a1:=NUMPROFIT(1),NODRAW;//取本次平仓盈亏值
//*****************************************************************************************开多
if 平空开多条件 then begin
S1:取得持仓量,NODRAW;//取得开空手数,
YK1:a1,NODRAW;//本次平仓盈亏值,
TJA0:= YK1 = 0 ; //前一仓单手数
TJA1:= YK1 > 0 ; //下次开仓为N手,
TJA2:= YK1 < 0 ; //前一仓单手数+1手
DD:=IF(TJA0,手数,IF(TJA1,S1,IF(TJA2,S1*2,NODRAW)));
DD20:DD,NODRAW;
BUY(holding=0,DD,MARKETr);
DD21:DD,NODRAW;
end
//*****************************************************************************平多
if 平多开空条件 and holding>0 then begin
取得持仓量1:=holding,NODRAW;//取得开空手数
取平多持仓量1: 取得持仓量1,NODRAW;//取得开空手数
SELL(1,holding,MARKETr);
end
a1:=NUMPROFIT(1),NODRAW;//取本次平仓盈亏值
//***********************************************************************************************开空
if 平多开空条件 then begin
S2: 取得持仓量1,NODRAW;//取得开多手数
YK2:a1,NODRAW;//本次平仓盈亏值,
TJA0:= YK2 = 0 ; //前一仓单手数
TJA1:= YK2 > 0 ; //下次开仓为N手,
TJA2:= YK2 < 0 ; //前一仓单手数+1手
DD1:=IF(TJA0,手数,IF(TJA1,S2,IF(TJA2,S2*2,NODRAW)));
DD10:DD1,NODRAW;
BUYSHORT(holding=0,DD1,MARKETr);
DD11:DD1,NODRAW;
end
//*********************************************************************************************收盘淸仓
if time=closetime(0) then begin
多単清仓:sell (1,0,marketr);
空単清仓:sellshort(1,0,marketr);
end
是的虚拟资金不够开了,谢谢!
请老师帮我看一下,这样写法结构对不对
请用户出示下专业版帐号