IF HOLDING>0 THEN BEGIN   //若持有多单
 IF TMP>0 THEN BEGIN      //且TMP>0
  SELL(1,HOLDING,LIMITR,CLOSE);   //平多单
  BUYSHORT(1,1,LIMITR,CLOSE);    //开空单
 END
END
改成?
IF HOLDING>0 THEN BEGIN   //若持有多单
 IF TMP>0 THEN BEGIN      //且TMP>0
  SELL(1,HOLDING,LIMITR,CLOSE);   //平多单
  BUYSHORT(1,1,LIMITR,CLOSE);    //开空单
SELLSHORT(1,0,LIMITR,CLOSE);
  BUY(1,1,LIMITR,CLOSE);
 END
这样的?
所谓的112266就是:
连亏一次开1手,连亏两次开2手,连亏三次开6手
连赢一次开1手,连赢两次开2手,连赢三次开6手
吗?
前面的代码不变,后面的这样改
tmp:=-k;
variable:shoushu=1;
variable:n=0,m=0;
if holding=0 then begin   //若持仓为0
 if tmp<=0 then           //且tmp<=0
  buy(1,1,limitr,close);  //开多单
end
if holding=0 then begin   //若持仓为0
 if tmp>0 then            //且tmp>0
  buyshort(1,1,limitr,close);  //开空单 
end
if holding>0 and tmp>0 then begin   //若持有多单
      
  sell(1,holding,limitr,close);   //平多单
  
  if numprofit(1)>0 then begin
   buyshort(1,shoushu,limitr,close);    //开空单
   n:=n+1;
   m:=0;
  end
  
  if numprofit(1)<0 then begin
   buyshort(1,shoushu,limitr,close);
   n:=0;
   m:=m+1;
  end
  
end
if holding<0 and tmp<0 then begin    //若持有空单
     
  sellshort(1,holding,limitr,close);  //平空单
  
if numprofit(1)>0 then begin
   buy(1,shoushu,limitr,close);    //开空单
   n:=n+1;
   m:=0;
  end
  
  if numprofit(1)<0 then begin
   buy(1,shoushu,limitr,close);
   n:=0;
   m:=m+1;
  end
end
if n=1 or m=1 then shoushu:=1;
if n=2 or m=2 then shoushu:=2;
if n>=3 or m>=3 then shoushu:=6;
我的意思是:
连亏一次开1手,连亏两次开2手,连亏三次开6手
赢都开1手。
| 我的意思是: 连亏一次开1手,连亏两次开2手,连亏三次开6手 只要是赢都开1手。 |