if l<=tENTERPRICE-z*s and tENTERBARS>0 and extgbdata(stklabel+'nn1')=1 and extgbdata(stklabel+'dcs')=0 then begin
tsell(1,extgbdata(stklabel+'ss15'),mkt);
extgbdataset(stklabel+'nn1',0);
extgbdataset(stklabel+'ss15',0);
extgbdataset(stklabel+'dcs',1);
end
if l<=tENTERPRICE-z*s and tENTERBARS>0 and extgbdata(stklabel+'nn1')=2 and extgbdata(stklabel+'dcs')=0 then begin
tsell(1,extgbdata(stklabel+'ss15')+extgbdata(stklabel+'ss152'),mkt);
extgbdataset(stklabel+'nn1',0);
extgbdataset(stklabel+'ss15',0);
extgbdataset(stklabel+'ss152',0);
extgbdataset(stklabel+'dcs',1);
end
其中extgbdata(stklabel+'nn1')=1是开第一次仓时的变量,extgbdata(stklabel+'nn1')=2 是加仓一次后的变量,总共只加一次仓。extgbdata(stklabel+'ss15')是第一次开仓时的仓量,extgbdata(stklabel+'ss152')加仓的仓量。这样写是否可以实现如果只加一次仓,就只平第一次开仓的仓量,如果加了一次仓,就平第一次与第二次相加的仓量。并且同时不要与其他的策略冲突,不要平了其他策略的仓量?
extgbdata(stklabel+'ss15')<>0
extgbdata(stklabel+'ss15')+extgbdata(stklabel+'ss152')<>0
平仓再加这两个条件,避免为0全平了
为0就是全平,平掉所有的当前交易合约持仓,所以要避免这种情况