可以把加仓手数单独定义成一个全局变量:
GLOBALVARIABLE:ss:=1;
if 加仓条件 then
begin
tbuy(1,ss,mkt);
ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16
end
没有逐步加上去,是一下子开到17手的,这个怎么回事?
if 加仓条件 then
begin
tbuy(1,ss,mkt);
ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16
end
这个加仓条件必须严格,也就是说这个条件触发了,下单必须是一定会触发的。如果你这里tbuy里面还有单独写一个开仓条件,那可能就会导致ss直接就增加到了最大值。不过你这里增加到了17是怎么回事,是有其他改变手数的操作了吧。
最好可以提供下你加仓部分的代码给我看下。
很简单的开仓条件,就上根k线的阴阳:openlong:=REF(C>O,1);
openshort:=REF(C<O,1);
//后台下单
if openlong then
begin
tbuy(1,ss,mkt);
ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16
end
if openshort then
begin
tbuy(1,ss,mkt);
ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16
end
那这样吧。
GLOBALVARIABLE:ss:=1;
openlong:=REF(C>O,1);
openshort:=REF(C<O,1);
//后台下单
if openlong then
begin
tbuy(1,ss,mkt);
ss:=if(tENTERVOL<=8,tENTERVOL*2,16); //加仓手数递增,最多不超过16
end
if openshort then
begin
tbuy(1,ss,mkt);
ss:=if(tENTERVOL<=8,tENTERVOL*2,16); //加仓手数递增,最多不超过16
end
1.

此主题相关图片如下:temp.png

我修改后的是从1手开始的。你可以再确认下。就是6楼的那个代码。
2.ss:=if(tENTERVOL<=23,tENTERVOL*2,16); //加仓手数递增,最多不超过16
这里改成23即可。