quantsrat 中的 pair_trade.R 演示错误

Error in the pair_trade.R demo in quantsrat

具有输入参数的 quanstrat 软件包(几分钟前通过 SVN 更新)的富有洞察力的 pair_trade.R 演示提供了以下错误:

[1] "2009-01-26 00:00:00 DIA -500 @ 76.1735958352934"
Error in `/.default`(TxnFees, abs(TxnQty)) :
  non-numeric argument to binary operator

我的sessionInfo()如下:

R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin13.4.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] quantstrat_0.9.1669           foreach_1.4.2
[3] blotter_0.9.1666              PerformanceAnalytics_1.4.3541
[5] FinancialInstrument_1.2.0     quantmod_0.4-3
[7] TTR_0.22-0                    xts_0.9-7
[9] zoo_1.7-11
loaded via a namespace (and not attached):
[1] codetools_0.2-9 grid_3.1.2      iterators_1.0.7 lattice_0.20-29

我没有在代码中看到任何明确提及 TxnQtyTxnFees,当然演示似乎 运行 没有错误的原始参数集 SD <- 2 ; N <- 20.

我是不是遗漏了什么或者这是一个错误?

此问题与 bug #5808, which has been fixed in r1681 on R-Forge 中报告的问题相同。

问题是 match.fun(TxnFees) 没有在导致头寸过零的交易之前被调用。因此,如果 TxnFees 是表示函数名称的字符串,并且交易导致仓位过零,则会出现错误。