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手。 |