2015-02-11 1 views
2

проницательный pair_trade.R демо замечательного quanstrat пакета (обновлен минут назад через SVN) с входными параметрами: SD <- 1 ; N <-10 дает следующее сообщение об ошибке:Ошибка в демке pair_trade.R в quantsrat

[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 

Я не вижу никакого явного упоминания о TxnQty или TxnFees в коде, и, конечно, демо, кажется, бежит без ошибок для исходного набора параметров SD <- 2 ; N <- 20.

Я что-то пропустил или это ошибка?

+0

Это похоже на [bug # 5808] (https://r-forge.r-project.org/tracker/index.php?func=detail&aid=5808&group_id=316&atid=1269). –

+0

Да, действительно. Предлагаемый патч избавляется от ошибки. Благодаря! –

ответ

0

Проблема такая же проблема, о которой сообщалось в bug #5808, которая была исправлена ​​в r1681 on R-Forge.

Проблема заключалась в том, что до транзакций не вызывали match.fun(TxnFees), что заставляло положение пересекать ноль. Таким образом, была бы ошибка, если TxnFees была символьной строкой, представляющей имя функции, и транзакция заставила положение пересечь ноль.