关于建仓数量总是大于可开仓数量的问题,困扰很久,迫切向大神求教!
目前我的两种关于建仓手数的写法
写法1
ss = IntPart( Portfolio_CurrentEquity / (close *shul*MarginRatio)) ;//通过当前组合权益、收盘价,计算可以开仓手数
写法2
ss = IntPart( Portfolio__CurrentCapital/ (close*(1+0.0015) *shul*MarginRatio)) +IntPart((Portfolio_CurrentEquity-Portfolio_CurrentCapital)/ (close *(1+0.0015*2)*shul*MarginRatio)) ;
我的困难是,无论哪种写法,当不使用杠杆的情况下,当我有持仓需要全部反手(包括可用资金在内,最大建仓)的时候,总是报出建仓数量总是大于可开仓数量的问题,最少会超1手,最多数十手。
目前我用“shul”=101替代了合约乘数100,才能正常运行。这里,希望大神们提示一下,合约乘数用什么正确函数代码?另外成交佣金费率的代码是什么?我也找不到。目前只能直接写0.0015。
另外,反手做单时候,费率等于算了两次?感觉哪里还是不对。
总之,以上两种写法,如果shul用正确合约乘数100(但我不知道代码)替代,就报错了。问题出在哪里呢?希望大神们指点!
上面的截图,我始终设的是100%,应该没有未赋值情况
marginratio你设多少就是多少
你输出你的SS就知道手数错了多少
反过来算下保证金就知道了
\"直接调用的系统给出的,与实际模拟账户数值始终一致\" ,我建议先看下你里面设的值,截图出来
MarginRatio 没有赋值,直接调用的系统给出的,与实际模拟账户数值始终一致
应该与实际保证金率不符
保证金率设成和实际账户一样
保证金一直是100%,从不用杠杆
这个是历史回测策略