【问题标题】:Netting transactions in quantstratquantstrat 中的净额交易
【发布时间】:2019-01-01 10:59:17
【问题描述】:

假设我有一个包含多个规则的策略,该策略在同一时间戳上针对同一交易品种生成多个订单。例如,在 2012 年 5 月 23 日,一条规则可能会购买 10 股 IBM,而另一条规则可能会卖出 5 股 IBM。在生产中,一个合理的系统会使用净额结算并执行一份买入 5 股的订单,而不是一份买入 10 股的订单和另一份卖出 5 股的订单。

有没有办法在quantstrat 中获得这种行为?根据我的实验,quantstrat 不会进行净额结算,例如,会为两个相反的订单增加交易费用,就像执行了两个单独的订单一样。

如果quantstrat 无法净订单,那么在回测中使用自定义TxnFees 函数应该仍然可以获得所需的PnL。如果这是正确的方法,那么如何定义一个自定义函数来净交易费用?

【问题讨论】:

    标签: r quantstrat


    【解决方案1】:

    “合理的系统”可能不会做这样的事情。对于激进订单,我对分时数据同时执行的经验基本上为零。

    在条形数据上,是的,内部净额结算是有意义的,并且将由生产订单管理系统处理。或者,例如,将静止的内部限价订单与其他信号内在化,要求对方提出激进订单,或净持仓。有非平凡规模的投资者使用柱状数据吗?

    这似乎忽略了 quantstrat 的用途。您正在寻找(在研究中)一些能够做出良好预测的策略,并通过编写回测来评估这些预测的质量。

    回测不是现实。

    此外,网络会完全混淆任何判断您的信号过程是否具有预测能力的能力。

    blogger 中的账户 将自动计算损益,因此在不收取费用的情况下,它的结果与您的订单净额相同。因此,我认为您不需要单独的 TxnFees 函数来了解净额结算和预付费的可能影响。

    【讨论】:

    • 您提出了一个很好的观点,即这可能仅与条形数据相关。也许,我不清楚,但您错过了我的问题的要点:正确计算费用,这就是我考虑自定义 TxnFees 函数的原因。没有理由像quantstrat 这样的“工业级”工具不能正确计算例如进行日常交易的策略的费用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多