[PEL] 复制代码 INPUT:cw(1,1,100,1);
VARIABLE:kc:=0;//表示开仓百分比。所有开仓手数 请用kc% 替换,来实现开仓量的控制
VARIABLE:mark:=0;
if kc=0 then kc:=cw;
IF SPPC1 OR SPPC2 OR SPPC3 THEN BEGIN
收盘平多:SELL(1,0,MARKET);
收盘平空:SELLSHORT(1,0,MARKET);
END
IF (JXZY OR JXZY1) AND BUYCD<>1 THEN BEGIN
SELL(1,0,MARKETR);
END
IF (JXZY2 OR JXZY3) AND SELLCD<>1 THEN BEGIN
SELLSHORT(1,0,MARKETR);
END
IF DZS and avgenterprice<>0 AND HOLDING>0 AND BUYCD<>1 THEN BEGIN
SELL(1,0,LIMITR,C);
END
IF KZS and avgenterprice<>0 AND HOLDING<0 AND SELLCD<>1 THEN BEGIN
SELLSHORT(1,0,LIMITR,C);
END
//这里不区分是平多的盈亏 还是平空的盈亏
//利用NUMPROFIT函数获取后台运行记录里的盈亏记录数据 来判断连亏或连赢的情况
2lk:NUMPROFIT(1)<0 and NUMPROFIT(2)<0;
2ly:NUMPROFIT(1)>0 and NUMPROFIT(2)>0;
3ly:NUMPROFIT(1)>0 and NUMPROFIT(2)>0 and NUMPROFIT(3)>0;
4lk:NUMPROFIT(1)<0 and NUMPROFIT(2)<0 and NUMPROFIT(3)<0 and NUMPROFIT(4)<0;
5lk:NUMPROFIT(1)<0 and NUMPROFIT(2)<0 and NUMPROFIT(3)<0 and NUMPROFIT(4)<0 and NUMPROFIT(5)<0 ;
// 暂以多头为例
//3-2-3
if 2lk and NUMPROFIT(3)>0 and holding=0 and kc=2*cw and mark=0 then
begin
kc:=3*cw;
end
//1-2
if 2lk and holding=0 and kc=cw and mark=0 then
begin
kc:=2*cw;
end
//2-3
if 4lk and holding=0 and kc=2*cw and mark=0 then
begin
kc:=3*cw;
end
//2-1
if NUMPROFIT(1)>0 and NUMPROFIT(2)<0 and NUMPROFIT(3)<0 and holding=0 and kc=2*cw and mark=0 then
begin
kc:=cw;
end
//3-2
if NUMPROFIT(1)>0 and holding=0 and kc=3*cw and mark=0 then
begin
kc:=2*cw;
end
//3-2-1
if 2ly and holding=0 and kc=2*cw and mark=0 then
begin
kc:=cw;
end
//4连亏之后
if 5lk then mark:=1;//5连亏后标记下
//3-2
if mark=1 and 2ly and kc=3*cw then
begin
kc:=2*cw;
end
//3-2-1
if 3ly and kc=2*cw and mark then
begin
kc:=1*cw;
mark:=0;
end
//3-2-3
if 2lk and kc=2*cw and mark then
begin
kc:=3*cw;
mark:=0;
end
IF (BUYCD )AND TYPEBAR(1,2)<>0 THEN BEGIN
BUY(HOLDING=0,KC,LIMITR,O);
END
IF (SELLCD)AND TYPEBAR(1,4)<>0 THEN BEGIN
BUYSHORT(HOLDING=0,KC,LIMITR,O);
END
IF (BUYCD1 )AND TYPEBAR(1,2)<>0 THEN BEGIN
BUY(HOLDING=0,KC,MARKET);
END
IF (SELLCD1)AND TYPEBAR(1,4)<>0 THEN BEGIN
BUYSHORT(HOLDING=0,KC,MARKET);
END
我考虑了下 你这里有可能出现因为代码顺序出错的可能性。 就是仓位调整代码在平仓语句之前,那么本根K平仓导致的仓位变化的效果 对后面相同K触发的开仓语句的执行是不奏效的。按照上面方式 把平仓语句全部放到仓位调整的语句前面去,开仓语句放到最后面。就是代码其实没变,但是调整了顺序。 |