利用多框架的话每个框架之间是相互独立的,并不影响
后天没有虚拟持仓的概念,操作的就是真实账户的持仓。所以会有这个可能的
我现在改用不同的自定义变量名来存储各个策略的tholding值了,还有什么会相互干扰吗?比如不同策略内相同变量名会干扰吗?
你这个方式不对。tholding就是一个量。当然会互想影响。
一个水池中的水,3个人即放水,又抽水。那你说,我要是放10升,抽20升。会怎样。
tholding就是这个水池的水量。
你几个策略交易同一个品种,在没特别需求时,不就是或的关系,谁触发谁就下单。那要是触发1次开仓,后面连续触发4次平仓,这个时候就会把其他几个策略开的仓的持仓平了。
你要是需要谁开的谁处理,需要用全局变量记录,每个策略开的仓位。并把这个全局变量作为平仓条件之一
下面这种写法可以吗,不同的策略,lcb_holding_I的命名不一样,平仓时要用orderNum还是tholding?
orderNum:=100;
VARIABLE:lcb_holding_I:=0;
//多头仓位平仓
if lcb_holding_I>0 and ..... then begin
TSELL(1,tholding,mkt);
lcb_holding_I:=0;
end
//空头仓位平仓
if lcb_holding_I<0 and ..... then begin
TSELLSHORT(1,tholding,mkt);
lcb_holding_I:=0;
end
//开多
if lcb_holding_I=0 and .... then begin
TBUY(1,orderNum,mkt);
lcb_holding_I:=1;
end
//开空
if lcb_holding_I=0 and .... then begin
TBUYSHORT(1,orderNum,mkt);
lcb_holding_I:=-1;
end
不对,我的意思是。你开仓用固定手数。
如果每次开2手,
每开一次,就让全局变量也加一次(+2)。平仓就减一次(-2)。
如果全局变量为0,那就不能在平仓了。这样就能做到谁开的谁平。
注意开空和开多要分别用两个全局变量记录,不能共用一个