平空没问题。现在就是开空的问题。
SELLSHORT(空头平仓条件1,HOLDING,market);
panduan:= (-1*空头最大可持仓手数)-(-1*HOLDING)>(ROUND(每次开仓手数/6)); //可开仓手数小于 每次开仓手数的6分之1, 返回1.否则返回0;
if panduan and HOLDING<=0 then 开仓:=BUYSHORT( 空头开仓条件1,每次开仓手数,MARKET);
这个条件限定了。如果 可开仓手数小于 每次开仓手数的6分之一,是不开仓的啊。。
所以现在不知道为什么有1手,2手的开仓。
每次开仓手数:ROUND((asset*0.01*每次开仓仓位百分比)/c);
空头最大可持仓手数:ROUND(((asset*0.01*最大持仓仓位百分比)/C*-1));
panduan:= (-1*空头最大可持仓手数)-(-1*HOLDING)>(ROUND(每次开仓手数/6));
把这3句解释一下,-1是干嘛的
空头持仓
HOLDING 是负数,乘上-1是为了把
空头持仓 变成正数
每次开仓手数:ROUND((asset*0.01*每次开仓仓位百分比)/c); 每次开仓仓位百分比 * 总资金/收盘价,获得 每次开仓的手数。
空头最大可持仓手数:ROUND(((asset*0.01*最大持仓仓位百分比)/C*-1)); 最大持仓仓位百分比* 总资金/收盘价。获取最大可持仓手数。
panduan:= (-1*空头最大可持仓手数)-(-1*HOLDING)>(ROUND(每次开仓手数/6)); /可开仓手数小于 每次开仓手数的6分之1, 返回1.否则返回0;
if panduan and HOLDING<=0 then 开仓:=BUYSHORT( 空头开仓条件1,每次开仓手数,MARKET); 这个条件限定了。如果 可开仓手数小于 每次开仓手数的6分之一,是不开仓的。
如果 可开仓手数 大于 每次开仓手数的6分之一,开仓。
:ROUND((asset*0.01*每次开仓仓位百分比)/c);
这个开仓数量的计算原理是什么?