仓位:=cash(0)/10000;
if(jd=0,cw=仓位*0.5,DRAWNULL),NODRAW;
if(jd=1,cw=仓位*0.3,DRAWNULL),NODRAW;
if(jd=2,cw=仓位*0.2,DRAWNULL),NODRAW;
JD=XX 我判定当前第几次开仓意思
本意是每万元开1单, 但是开3次。 分别是 0.5 ,0.3 ,0.2
例如 5万元可以开5手。
那么 5*0.5 = 2.5
5*0.3 = 1.5
5*0.2 = 1.0
总计等于 2+1+1 =4 开4手
但是我上面这写法 第一次开是对的,后面2次都是统计当下盈利状况 也就是如果盈利变多了后。。。 第二次第三次开仓数目比第一次多了。
我怎么限定?
获取jd=0时的仓位,
然后jd=1时的仓位就是 jd=0时的仓位*0.3/0.5
然后jd=2时的仓位就是 jd=0时的仓位*0.2/0.5
获取jd=0时的仓位,
然后jd=1时的仓位就是 jd=0时的仓位*0.3/0.5
然后jd=2时的仓位就是 jd=0时的仓位*0.2/0.5
我试着这么写
VARIABLE:hh=0;
CW:=5; {默认下单系数5}
我试着给HH在不同阶段赋值
hh:=if(jk=0,0.5,0.4),NODRAW;
hh:=if(jk=1,0.3,0.4),NODRAW;
hh:=if(jk=2,0.2,0.4),NODRAW;
if REF(KK,1) and num=0 then BEGIN
buyshort(JK<KC,CW*HH,limitr,open); // 这里我通过 CW*HH 实现控制
jk:=jk+1; // 记数JK
end;
以上这样我思考是 我把JK不同位置时候给 HH赋予不同系数那么就实现了, 但实际中 JK=0 HH=0.5 JK=1时候 HH=0.2 JK=2时候HH=0.4
它怎么赋值的不对头呢 ?
这不科学啊
为啥这么写法就对了
if jk=0 then hh:=0.5;
if jk=1 then hh:=0.3;
if jk=2 then hh:=0.2;
KO完成。。 IF() 反而错误呢