请教老师,情形一:有两个策略A和B,图表上都持有同一合约的1手仓位,账户上实际仓位只有1手,是策略A建立的,因为策略B的图表持仓是历史信号。现在同时跑两个策略,如果策略B先满足了平仓条件,会把策略A建立的账户持仓平掉吗?如果不平,是怎样区分不同策略的账户持仓的?
情形二:一个策略图表持仓1手,但这是历史信号,没有实际发单建仓。实际账户有该合约的手工持仓,现在开始跑策略,达到平仓条件后,会把手工建的仓给平掉吗?如果不能,是怎样区分策略建的仓位和手工仓位的?
情形一:如果策略B先满足了平仓条件,会把策略A建立的账户持仓平掉。另外,当A策略也出现了平仓信号的时候,如果设置了自动开平的的交易规则,虽然账户没有对应的仓位了,但系统会自动反方向开仓。如果没有设置自动开平的交易规则,则A策略出现平仓信号时,会提示出错。
情形二:达到平仓条件后,也会把手工建的仓给平掉。
TB的图表信号,其实是虚拟信号,不一定保证与账户信号一一对应,因此,系统也提供了头寸监控器,当账户持仓与虚拟信号不匹配的时候,可以使用头寸监控器进行同步。
当然,用户可以完全用A函数下单,交易信号也依据账户持仓数据,这样能保证账户持仓与A函数下单的信号完全匹配,但这种方式目前还不完善,不能将账户持仓信号在图表上标出,而且无法读取昨仓。关于这方面,后面的版本会进一步完善,敬请期待。
谢谢老师解答,我的策略是正反手,还有判断是否持有多仓或空仓下单,这样就对交易有影响了吧,同品种的多策略,除了再开新账户还有其他好方法吗?如果开多个账户,资金太分散了,每个账户还要留出多余保证金。
TB的策略是虚拟信号,完全可以在一个账户运行单个品种的多个策略,不需要开多个物理账户。如果出现信号下单不成交,可以配合头寸监控器,保证信号和持仓的一致
谢谢老师耐心解答啊,表达能力不好,要老师费心了。就是说,策略单元A出信号,策略单元B出信号,都是独立的。比如,策略代码里有,buy(0,open)平掉所有并反手,还有判断marketposition,决定是否下单,虚拟信号的产生都是彼此独立的,实盘只是跟对应虚信号对接的?
还是说, 实盘中,A策略能平掉B策略仓位,那么按照判断marketposition,决定是否下单,是不是会有影响呢? 还有平掉所有并反手,是不是A反手时,也会平掉B的持仓呢?
语言表达能力不好,要老师费心了。
虚拟信号是这样的,只是执行信号产生的买卖动作,不会根据账户持仓进行判断,也不理会不同策略单元的其他策略的信号情况,marketposition仅仅是本策略的头寸方向,跟账户和其他策略没有任何联系。
举个例子,策略A 一个语句bug(1,open)执行,那么系统就做一个买入开仓1手的动作(当然可能根据交易规则后台变成看买入平仓),同时marketposition被置为1,如果实盘中,买入开仓没有成交,被手动撤单了,这个跟策略没有关系。
进一步假设,这个账户只做a策略,因为没有成交,头寸监控器会显示头寸不匹配,因为信号有1手多单,但账户没有1手多单,这时候可以通过头寸监控器进行同步,同步时,头寸监控器会买入1手,如果成交了,这个时候再查询头寸监控器,就显示匹配了
不管成交不成交,匹配不匹配,策略A发出买入1手信号后,都是marketposition=1,CurrentContracts=1,这就是虚拟信号的含义
非常感谢老师的解答。