假设我有一个具有多个规则的策略,它在相同的时间戳上对相同的符号生成多个订单。例如,在2012-05-23,一条规则可以购买10股IBM股票,而另一条规则可以卖出5股IBM股票。在生产中,一个合理的系统应该使用净额结算并执行一个订单来购买5股,而不是一个订单来购买10股,另一个订单来卖出5股。
有没有办法在quantstrat中实现这种行为?从我的实验来看,quantstrat不做净额结算,例如,将为两个相反的订单添加交易费用,就像执行了两个单独的订单一样。
如果quantstrat不能获得净订单,那么仍然可以通过使用自定义TxnFees函数在回测中获得所需的PnL。如果这是正确的方法,那么如何定义一个自定义函数来获得交易费用呢?
发布于 2018-07-25 05:16:14
一个“合理的系统”可能不会做这样的事情。我的经验是,对于激进的订单,同时执行tick数据的经验基本上为零。
对于条形图数据,是的,内部网络将是有意义的,并将由生产订单管理系统处理。或者,例如,针对其他信号内在化休息的内部限价指令,要求在另一边获得激进的指令,或获得头寸。是否有非平凡规模的投资者使用条形图数据?
这似乎忽略了quantstrat的作用。您希望(在研究中)找出一些做出良好预测的策略,并通过编写回溯测试来评估这些预测的质量。
反向测试是不现实的。
此外,网络将完全混淆任何找出你的信号处理是否具有预测能力的能力。
在blotter中的帐户将自动净额损益,因此在没有费用的情况下,它将具有与您的订单净额结算相同的结果。因此,我认为您不需要单独的TxnFees函数来了解净额结算、预付费的可能影响。
https://stackoverflow.com/questions/51505088
复制相似问题