开拓者期货期权程序化系统交易论坛

标题: BuyToCover数量为0的时候为啥不是实际持仓? [打印本页]

作者: m2land    时间: 2019-8-5 15:50:29     标题: BuyToCover数量为0的时候为啥不是实际持仓?

策略是一个加减仓的策略,在持续的开仓过程中,有一些单没有成交。比如连续开仓1手,2手,3手,最有一个3手没有成交,一直挂单。最后使用BuyToCover(0,myExitPrice)平仓,为什么超级图表上显示的是用理论上开仓量来平仓而不是用真正开仓成功的开仓量来平仓?也就是说超级图表上显示平了6手,而实际上只有3手可以平。
作者: 小米    时间: 2019-8-5 15:54:30

是这个逻辑的。
buytocover是以图表信号的数量来进行下单 的。并不能得知帐户的真实持仓情况。。
在程序化交易中,要尽可能保证帐户完全按信号进行开平仓交易。
作者: m2land    时间: 2019-8-5 16:19:45

可以在代码中尽可能保证帐户完全按信号进行开平仓交,但是总是有万一的。而且一旦出现这个万一,似乎平仓指令就被拒绝了,因为下单的手数不对。对于自动化程序,这个是不能接受的。 怎么保证即使出现这样的误差,也不会导致整个平仓无法执行呢?
作者: 小米    时间: 2019-8-5 16:29:33

m2land 发表于 2019-8-5 16:19
可以在代码中尽可能保证帐户完全按信号进行开平仓交,但是总是有万一的。而且一旦出现这个万一,似乎平仓指 ...

再强调一下,buytocover是不能读取帐户持仓的。所以如果开仓信号有没成交的情况,自然会影响到后续的平仓。
首先需要尽可能保证信号都成交,如果没有及时成交的,可以使用补救措施让持仓与信号一致。
如果确实不能保证,一定要按帐户的实际持仓量来平仓,那么可以选择a_sendorder的帐户函数来编写策略。
作者: m2land    时间: 2019-8-5 17:38:27

开仓信号没有成交补救有示范没?




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2