 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- FireScript
|
本帖最后由 技术009 于 2022-11-8 14:49 编辑
input:zj(20000,1,1000000,1);
SS:10*INTPART(zj/(c*10));//根据资金量计算可下的张数
未成交:TISREMAINEX(0,'','');
if 未成交=0 and TACCOUNT(28)+SS*c<=100000 and TBUYHOLDINGEX('','',2)=0 and ss<>0 then tbuy(1,ss,mkt);
这样试下。
这里有个地方要非常注意下。就是实盘柜台里 下单的单位是不一样的,可能不同券商之间都不一样。价格100块钱的可转债,最低持仓成本是1000 都一样,但是不同柜台对2个市场处理不一样,下单量应该一个是10,一个是1的倍数,具体你可以手工下不能成交的单试下,然后根据结果调整下上面计算手数的代码。 我上面按照10的倍数处理的。
另外 这种协调多个品种的下单,只能通过限制了下单时候确保当前没有任何开平操作的未成交单来实现,否则这个资金量是控制不好的。 原因很简单,我现在开仓了当前这个品种,并且成交后资金就达到上限了,但是我这个单子成交回报回来是需要时间的,这时候程序运行到下一个品种的时候,因为前面发的单子没成交,资金占用没更新,我依然 会判断当前能下单,这种情况下 就是等于多下了。所以只能直接限制了 当前没有未成交单时候进行下单操作。
|
|